@font-face{font-family:"Bodoni";src:url(fonts/bodoni-moda-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Bodoni";src:url(fonts/bodoni-moda-latin-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Inst";src:url(fonts/instrument-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inst";src:url(fonts/instrument-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}

:root{--navy:#0f1726;--navy2:#18233a;--chalk:#f6f2ea;--sand:#e9e0d0;--gold:#c38a4a;--gold2:#e2ad6c;--ink:#1b2333;--muted:#667086;
--d:"Bodoni",Didot,Georgia,serif;--b:"Inst",system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--chalk);color:var(--ink);font:400 17px/1.6 var(--b);overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--d);font-weight:800;line-height:1.02;letter-spacing:-.01em}
h2{font-size:clamp(2.3rem,6.2vw,4.4rem);margin-bottom:1.2rem;color:var(--navy)}
em{font-family:var(--d);font-style:italic;font-weight:500;color:var(--gold)}
.eyebrow{font:600 .76rem var(--b);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:.9rem}
.small{font-size:.86rem;color:var(--muted)}
section{padding:clamp(4.5rem,10vw,8rem) clamp(1.2rem,5vw,4rem)}

/* header */
.bar{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(1.2rem,5vw,4rem);color:var(--chalk);transition:background .35s,padding .35s}
.bar.solid{background:rgba(15,23,38,.94);padding-block:.65rem}
.logo{display:flex;align-items:center;gap:.6rem;font:600 .95rem var(--b);text-decoration:none;letter-spacing:.02em}
.logo span{display:grid;place-items:center;width:36px;height:36px;border:1.5px solid var(--gold);border-radius:50%;font-family:var(--d);font-size:1.15rem;color:var(--gold2)}
nav{display:flex;gap:1.5rem;align-items:center}
nav a{text-decoration:none;font-weight:600;font-size:.92rem;opacity:.85}
nav a:hover{opacity:1;color:var(--gold2)}
.nav-cta{background:var(--gold);color:var(--navy)!important;opacity:1!important;padding:.55rem 1.1rem;border-radius:99px}
@media(max-width:820px){nav a:not(.nav-cta){display:none}.logo{font-size:.82rem}}
@media(max-width:400px){.logo{font-size:0}.logo span{font-size:1.15rem}}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;background:var(--navy);color:var(--chalk);overflow:hidden;padding-bottom:clamp(4rem,10vh,7rem)}
.hero-photo{position:absolute;inset:0}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:30% 30%;filter:grayscale(1) contrast(1.1);opacity:.7;animation:gallop 20s ease-in-out infinite alternate}
@keyframes gallop{from{transform:scale(1.05) translateX(0)}to{transform:scale(1.15) translateX(-3%)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,23,38,.6),rgba(15,23,38,.1) 35%,rgba(15,23,38,.92) 85%)}
.hero-in{position:relative;z-index:1;max-width:880px}
.kicker{display:flex;align-items:center;gap:.6rem;font:600 .78rem var(--b);letter-spacing:.16em;text-transform:uppercase;color:var(--gold2);margin-bottom:1.1rem}
.dot{width:8px;height:8px;border-radius:50%;background:var(--gold2);box-shadow:0 0 0 0 rgba(226,173,108,.7);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(226,173,108,0)}}
.hero h1{font-size:clamp(2.8rem,9vw,6.6rem);color:var(--chalk)}
.hero h1 em{display:block;color:var(--gold2)}
.lead{max-width:38ch;margin:1.2rem 0 2rem;font-size:clamp(1.02rem,2.3vw,1.25rem);color:#d6d9e0}
.btns{display:flex;flex-wrap:wrap;gap:.8rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 1.6rem;border-radius:99px;font-weight:600;text-decoration:none;transition:background .25s,color .25s,transform .2s}
.btn.gold{background:var(--gold);color:var(--navy)}
.btn.gold:hover{background:var(--gold2)}
.btn.ghost{border:1.5px solid rgba(246,242,234,.5)}
.btn.ghost:hover{background:var(--chalk);color:var(--navy)}
.btn:active{transform:scale(.97)}
.hero-badge{position:absolute;z-index:1;right:clamp(1rem,5vw,4rem);top:clamp(6rem,16vh,9rem);width:clamp(96px,14vw,150px);aspect-ratio:1;display:grid;place-items:center}
.hero-badge svg{position:absolute;inset:0;animation:spin 24s linear infinite}
.hero-badge text{font:600 10.5px var(--b);letter-spacing:2.6px;fill:var(--gold2)}
.hero-badge b{font-family:var(--d);font-size:clamp(1.2rem,2.2vw,1.7rem);color:var(--chalk)}
@keyframes spin{to{transform:rotate(360deg)}}
.js .hero-in>*{opacity:0;transform:translateY(26px);animation:up .9s cubic-bezier(.2,.7,.2,1) forwards}
.js .hero-in>*:nth-child(2){animation-delay:.12s}.js .hero-in>*:nth-child(3){animation-delay:.28s}.js .hero-in>*:nth-child(4){animation-delay:.4s}
@keyframes up{to{opacity:1;transform:none}}

/* news */
.news{padding-block:0;margin-top:-2.2rem;position:relative;z-index:2}
.news-in{max-width:980px;margin:0 auto;background:var(--chalk);border:1px solid var(--sand);border-left:5px solid var(--gold);border-radius:6px;padding:1.3rem 1.5rem;box-shadow:0 24px 50px -30px rgba(15,23,38,.5)}
.tag{display:inline-block;font:600 .72rem var(--b);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.3rem}
.news a{font-weight:600;overflow-wrap:anywhere}

/* numbers */
.numbers{display:grid;grid-template-columns:repeat(2,1fr);gap:2.4rem 1.5rem;max-width:1150px;margin:0 auto}
@media(min-width:860px){.numbers{grid-template-columns:repeat(4,1fr)}}
.num b{display:block;font-family:var(--d);font-weight:800;font-size:clamp(2.6rem,6vw,3.8rem);color:var(--navy);line-height:1;border-bottom:1px solid var(--gold);padding-bottom:.5rem;margin-bottom:.6rem}
.num span{font-size:.92rem;color:var(--muted)}

/* finder */
.finder{background:var(--navy);color:var(--chalk)}
.finder h2{color:var(--chalk)}
.finder-head,.finder-box{max-width:1050px;margin:0 auto}
.finder-box{display:grid;gap:2rem;background:var(--navy2);border-radius:20px;padding:clamp(1.4rem,4vw,2.6rem)}
@media(min-width:880px){.finder-box{grid-template-columns:1fr 1fr 1.4fr;align-items:start}}
.q{font-family:var(--d);font-style:italic;font-weight:500;font-size:1.35rem;color:var(--gold2);margin-bottom:.8rem}
.opts{display:flex;flex-wrap:wrap;gap:.5rem}
.opts button{font:600 .95rem var(--b);color:var(--chalk);background:transparent;border:1.5px solid rgba(246,242,234,.25);padding:.7rem 1.1rem;border-radius:99px;cursor:pointer;transition:background .25s,border-color .25s,color .25s}
.opts button:hover{border-color:var(--gold)}
.opts button[aria-pressed=true]{background:var(--chalk);color:var(--navy);border-color:var(--chalk)}
.result{background:var(--chalk);color:var(--ink);border-radius:14px;padding:1.6rem;transition:transform .35s}
.result.flip{animation:flip .45s cubic-bezier(.2,.7,.2,1)}
@keyframes flip{from{opacity:.2;transform:translateY(10px) scale(.98)}}
.r-name{font-family:var(--d);font-weight:800;font-size:1.7rem;line-height:1.1;color:var(--navy)}
.r-price{font-family:var(--d);font-style:italic;font-size:2.4rem;color:var(--gold);margin:.3rem 0 .6rem}
.r-text{color:var(--muted);margin-bottom:1.2rem}

/* lessons */
.lessons{display:grid;gap:clamp(2rem,5vw,5rem);max-width:1250px;margin:0 auto;align-items:center}
@media(min-width:900px){.lessons{grid-template-columns:1fr 1.1fr}}
.lesson-photo{border-radius:999px 999px 8px 8px;overflow:hidden;aspect-ratio:4/5}
.lesson-photo img{width:100%;height:100%;object-fit:cover}
.duo img{filter:grayscale(calc(1 - var(--p,1)*1.5))}
.lit{font-family:var(--d);font-style:italic;font-weight:500;font-size:clamp(1.4rem,3vw,2rem);line-height:1.3;color:var(--navy);margin-bottom:1.6rem}
.lit .w{opacity:.2;transition:opacity .35s}.lit .w.on{opacity:1}
.hours{border-top:1px solid var(--sand);margin-bottom:1rem}
.hours div{display:grid;grid-template-columns:5rem 1fr;padding:.8rem 0;border-bottom:1px solid var(--sand)}
.hours dt{font-weight:600}
.hours dd{color:var(--muted)}

/* teachers */
.teachers{background:var(--sand)}
.teachers>.eyebrow{max-width:1150px;margin:0 auto 1.5rem}
.t-grid{max-width:1150px;margin:0 auto;display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.teacher{background:var(--chalk);border-radius:16px;padding:1.8rem;position:relative;transition:transform .3s,box-shadow .3s}
.teacher:hover{transform:translateY(-6px);box-shadow:0 24px 50px -30px rgba(15,23,38,.5)}
.teacher h3{font-size:1.7rem;color:var(--navy)}
.role{font:600 .8rem var(--b);letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:.4rem 0 .8rem}
.teacher p:last-child{color:var(--muted);font-size:.95rem}
.featured{background:var(--navy);color:var(--chalk)}
.featured h3{color:var(--chalk)}
.featured p:last-child{color:#c9cdd6}
.rosette{position:absolute;top:-14px;right:18px;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle,var(--gold2) 0 38%,var(--gold) 39% 52%,var(--gold2) 53% 62%,var(--gold) 63%);box-shadow:0 6px 14px rgba(0,0,0,.25);animation:sway 3s ease-in-out infinite;transform-origin:50% 0}
.rosette::after{content:"";position:absolute;left:12px;top:38px;width:22px;height:26px;background:linear-gradient(90deg,var(--gold) 50%,var(--gold2) 50%);clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%);z-index:-1}
@keyframes sway{50%{transform:rotate(6deg)}}

/* prices */
.p-head{max-width:1150px;margin:0 auto 2.4rem}
.p-cols{max-width:1150px;margin:0 auto;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.p-col h3{font-size:1.35rem;color:var(--navy);margin:1.2rem 0 .4rem}
.p-col h3:first-child{margin-top:0}
.p-col ul{list-style:none}
.p-col li{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px dashed #d4c8b4}
.p-col li span{color:var(--muted);font-size:.95rem}
.p-col li b{font-family:var(--d);font-weight:800;font-size:1.2rem;color:var(--navy);white-space:nowrap}
.discounts{background:var(--navy);color:var(--chalk);border-radius:16px;padding:1.8rem;align-self:start}
.discounts h3{color:var(--gold2)}
.discounts p{padding:.5rem 0}
.discounts p b{font-family:var(--d);font-size:1.6rem;color:var(--gold2);margin-right:.4rem}
.discounts .small{color:#b7bcc8}

/* horses */
.horses{background:var(--navy);color:var(--chalk);padding-inline:0}
.horses h2{color:var(--chalk)}
.h-head{padding:0 clamp(1.2rem,5vw,4rem);max-width:1250px;margin:0 auto 2rem}
.h-head .small{color:#9aa1b0}
.h-strip{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 clamp(1.2rem,5vw,4rem) 1.2rem;scrollbar-width:thin;scrollbar-color:var(--gold) transparent}
.horse{flex:none;width:min(80vw,300px);scroll-snap-align:start;background:var(--navy2);border:1px solid rgba(246,242,234,.08);border-radius:16px;padding:1.6rem;transition:transform .3s,border-color .3s}
.horse:hover{transform:translateY(-6px);border-color:var(--gold)}
.h-meta{font:600 .74rem var(--b);letter-spacing:.12em;text-transform:uppercase;color:var(--gold2);margin-bottom:.6rem}
.horse h3{font-size:1.9rem;margin-bottom:.6rem}
.horse p:last-child{color:#c2c7d1;font-size:.95rem}

/* place */
.place{display:grid;gap:1.5rem;max-width:1250px;margin:0 auto;grid-template-columns:1fr}
@media(min-width:900px){.place{grid-template-columns:1.1fr 1fr;grid-template-areas:"p1 t" "p2 t"}.p1{grid-area:p1}.place-text{grid-area:t;align-self:center;padding-left:2rem}.p2{grid-area:p2}}
.place figure{overflow:hidden;border-radius:10px}
.p1 img{width:100%;aspect-ratio:4/3;object-fit:cover;transform:scale(calc(1.12 - var(--p,0)*.12))}
.p2 img{width:100%;aspect-ratio:16/9;object-fit:cover}
.place-text p{margin-bottom:1rem}

/* contact */
.contact{background:var(--sand)}
.c-in{max-width:1150px;margin:0 auto}
.c-grid{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));margin-top:1rem}
.c-card{background:var(--chalk);border-radius:16px;padding:1.6rem;display:flex;flex-direction:column;gap:.5rem}
.c-label{font:600 .74rem var(--b);letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.c-big{font-family:var(--d);font-weight:800;font-size:clamp(2rem,6vw,2.6rem);color:var(--navy);text-decoration:none}
.c-mid{font-family:var(--d);font-weight:800;font-size:1.6rem;color:var(--navy);text-decoration:none}
.c-mail{font-weight:600;overflow-wrap:anywhere;font-size:.95rem}
.c-name{font-weight:600}
.c-map{font-weight:600;color:var(--navy)}
.tip{margin-top:2rem;font-family:var(--d);font-style:italic;font-weight:500;font-size:1.15rem;color:var(--navy)}
footer{background:var(--navy);color:#9aa1b0;text-align:center;font-size:.85rem;padding:2rem 1.2rem 6.5rem}

/* dock */
.dock{position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));z-index:30;display:flex;gap:.3rem;padding:.3rem;background:var(--navy);border:1px solid rgba(195,138,74,.4);border-radius:99px;box-shadow:0 12px 40px rgba(0,0,0,.4);transform:translate(-50%,170%);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.dock.show{transform:translate(-50%,0)}
.dock a{min-height:48px;display:flex;align-items:center;padding:0 1.4rem;border-radius:99px;font-weight:600;text-decoration:none;color:var(--chalk);white-space:nowrap}
.dock a:first-child{background:var(--gold);color:var(--navy)}

.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal,.js .hero-in>*{opacity:1;transform:none}html{scroll-behavior:auto}}
@media(max-width:700px){.hero{padding-top:12rem;min-height:auto}.hero-badge{top:5rem;width:92px}.hero h1{font-size:clamp(2.5rem,11vw,3.4rem)}.news{margin-top:-1.4rem}}
