/* Lovarda Pegazus — Celestial style: constellations, moon phases, gold on midnight navy */

:root{
  --navy: #0c0f20;
  --navy-2: #141935;
  --navy-3: #1c2247;
  --amber: #d6a24c;
  --amber-light: #f2cb83;
  --smoke: #8d8f9c;
  --smoke-light: #c7c8d1;
  --white: #f4f1e8;
  --ink: #171a2b;
  --line: rgba(214,162,76,.28);
  --radius: 2px;
  --font-display: Georgia, "Iowan Old Style", "Palatino Linotype", serif;
  --font-body: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --ease: cubic-bezier(.22,.7,.2,1);
}

*{box-sizing:border-box}
html,body{overflow-x:clip}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-display);margin:0 0 .5em;line-height:1.1;font-weight:400}
p{margin:0 0 1em}
ul{margin:0;padding:0}
button{font-family:inherit}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
.visually-hidden{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* ---------- Icon sprite ---------- */
.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;vertical-align:middle}

/* ---------- Grain overlay ---------- */
.grain{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;opacity:.045;mix-blend-mode:overlay;z-index:999}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(12,15,32,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
  color:var(--white);
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:76px}
.logo{display:flex;align-items:center;gap:10px;color:var(--white)}
.logo svg{width:44px;height:44px;flex:none}
.logo .wordmark{font-family:var(--font-display);font-size:1.3rem;letter-spacing:.04em;color:var(--white)}
.logo .wordmark small{display:block;font-family:var(--font-body);font-size:.55rem;letter-spacing:.3em;text-transform:uppercase;color:var(--amber-light)}

.main-nav{display:flex;align-items:center;gap:28px}
.main-nav ul{display:flex;gap:26px;list-style:none}
.main-nav a{font-size:.92rem;letter-spacing:.02em;position:relative;padding:6px 0;color:var(--smoke-light)}
.main-nav a:hover,.main-nav a.active{color:var(--amber-light)}
.main-nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--amber);transition:width .3s var(--ease)}
.main-nav a:hover::after{width:100%}

.header-actions{display:flex;align-items:center;gap:16px}
.cart-link{position:relative;display:flex;align-items:center;gap:6px;color:var(--white);border:1px solid var(--line);padding:9px 14px;border-radius:var(--radius)}
.cart-link:hover{border-color:var(--amber)}
.cart-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;background:var(--amber);color:var(--navy);font-size:.72rem;border-radius:50%;font-weight:700}
.cart-count.bump{animation:bump .4s var(--ease)}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.4)}100%{transform:scale(1)}}

.menu-toggle{display:none;background:none;border:1px solid var(--line);color:var(--white);width:44px;height:44px;border-radius:var(--radius);align-items:center;justify-content:center}

@media (max-width:860px){
  .main-nav{position:fixed;top:76px;right:0;height:calc(100vh - 76px);width:min(78vw,320px);background:var(--navy-2);flex-direction:column;align-items:flex-start;padding:30px 24px;gap:28px;
    transform:translateX(100%);visibility:hidden;transition:transform .35s var(--ease),visibility .35s;border-left:1px solid var(--line)}
  .main-nav.open{transform:translateX(0);visibility:visible}
  .main-nav ul{flex-direction:column;gap:22px}
  .menu-toggle{display:flex}
}

/* ---------- Buttons ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 26px;border:1px solid var(--amber);border-radius:var(--radius);
  font-size:.92rem;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;overflow:hidden;
  background:transparent;color:var(--amber-light);isolation:isolate;min-height:44px;
}
.btn span{position:relative;z-index:1}
.btn::before{content:"";position:absolute;inset:0;left:-100%;width:100%;background:var(--amber);transition:left .35s var(--ease);z-index:0}
.btn:hover::before{left:0}
.btn:hover{color:var(--navy)}
.btn-primary{background:var(--amber);color:var(--navy)}
.btn-primary::before{background:var(--amber-light)}
.btn-primary:hover{color:var(--navy)}
.btn-ghost{border-color:var(--smoke)}
.btn-ghost:hover{color:var(--navy)}
.btn-ghost::before{background:var(--smoke-light)}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ---------- Hero ---------- */
.hero{background:var(--navy);color:var(--white);position:relative;padding:48px 0 70px;overflow:hidden}
.hero .container{position:relative}
.hero-frame{
  border:10px solid var(--amber);
  outline:1px solid var(--line);outline-offset:-20px;
  padding:clamp(28px,6vw,70px) clamp(20px,5vw,56px);
  position:relative;isolation:isolate;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;
  background:linear-gradient(180deg,var(--navy-2),var(--navy));
  overflow:hidden;
}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3;mix-blend-mode:luminosity;filter:grayscale(.3) sepia(.3) contrast(1.1);z-index:0}
.hero-copy{position:relative;z-index:2}
.hero-eyebrow{display:flex;align-items:center;gap:10px;color:var(--amber-light);letter-spacing:.3em;text-transform:uppercase;font-size:.72rem;margin-bottom:18px}
.hero-eyebrow svg{width:16px;height:16px}
.hero h1{
  font-size:clamp(2.3rem,5.6vw,4.4rem);color:var(--white);margin-bottom:.4em;
}
.hero h1 .wipe{display:block;clip-path:inset(0 100% 0 0);animation:wipe 1.1s var(--ease) .15s forwards}
.hero h1 .wipe:nth-child(2){animation-delay:.42s}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
@media (prefers-reduced-motion:reduce){.hero h1 .wipe{animation:none;clip-path:inset(0 0 0 0)}}
.hero p.lead{color:var(--smoke-light);max-width:40ch;font-size:1.05rem}
.hero-ctas{display:flex;gap:16px;margin-top:28px;flex-wrap:wrap}
.hero-art{position:relative;z-index:2;aspect-ratio:1/1}
.hero-art svg{width:100%;height:100%}
.hero-art .twinkle{animation:twinkle 3.4s ease-in-out infinite}
.hero-art .twinkle:nth-child(odd){animation-delay:1.1s}
.hero-art .twinkle:nth-child(3n){animation-delay:2.1s}
@keyframes twinkle{0%,100%{opacity:.35}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.hero-art .twinkle{animation:none;opacity:.85}}
@media (max-width:860px){
  .hero-frame{grid-template-columns:1fr;border-width:6px;padding:28px 18px}
  .hero-art{max-width:260px;margin:0 auto}
}

/* ---------- Sections ---------- */
section{padding:84px 0}
.section-head{max-width:620px;margin:0 auto 48px}
.section-head.center{text-align:center;margin-left:auto;margin-right:auto}
.section-head .kicker{display:block;color:var(--amber);text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;margin-bottom:12px}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.on-dark{background:var(--navy);color:var(--white)}
.on-dark .section-head .kicker{color:var(--amber-light)}
.on-dark h2{color:var(--white)}
.on-dark p{color:var(--smoke-light)}
.about-grid .section-head .kicker{color:#8a5a14}
.about-grid .btn-ghost{color:#8a5a14}

.divider{display:block;width:100%;height:auto;margin:0 auto}
.divider-wrap{padding:36px 0;background:var(--navy)}

/* ---------- Reveal ---------- */
.reveal{opacity:1;transform:none}
.reveal.js-hidden{opacity:0;transform:translateY(26px)}
.reveal.in-view{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
@media (prefers-reduced-motion:reduce){
  .reveal.js-hidden{opacity:1;transform:none}
}

/* ---------- Cards / grid ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
@media (max-width:860px){.grid-3{grid-template-columns:1fr 1fr}.grid-2{grid-template-columns:1fr}}
@media (max-width:620px){.grid-3{grid-template-columns:1fr}}

.card{
  background:var(--navy-2);color:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.card:hover{transform:translateY(-6px);box-shadow:0 22px 40px -20px rgba(0,0,0,.5)}
.card .media{aspect-ratio:4/3;overflow:hidden;background:var(--navy-3)}
.card .media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.card:hover .media img{transform:scale(1.07)}
.card .body{padding:22px}
.card h3{font-size:1.2rem;margin-bottom:.3em;color:var(--white)}
.card .meta{color:var(--smoke-light);font-size:.85rem;margin-bottom:10px}
.card .price{color:var(--amber-light);font-size:1.1rem;font-family:var(--font-display)}
.card .actions{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:10px}

/* ---------- Product strip (home) ---------- */
.strip-scroll{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;margin:0 -20px;padding-left:20px;padding-right:20px}
.strip-scroll .card{min-width:270px;scroll-snap-align:start;flex:none}
.strip-scroll::-webkit-scrollbar{height:6px}
.strip-scroll::-webkit-scrollbar-thumb{background:var(--amber);border-radius:4px}

/* ---------- Catalog grid ---------- */
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:28px}

/* ---------- Matcher (signature feature) ---------- */
.matcher{background:var(--navy);color:var(--white);position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.matcher-panel{background:var(--navy-2);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,4vw,44px);position:relative}
.matcher-form{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}
@media (max-width:760px){.matcher-form{grid-template-columns:1fr}}
.field-group{display:flex;flex-direction:column;gap:8px}
.field-group label{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--amber-light)}
select,input,textarea{
  background:var(--navy);border:1px solid var(--line);color:var(--white);padding:12px 14px;border-radius:var(--radius);
  font-family:inherit;font-size:.95rem;accent-color:var(--amber);min-height:44px;
}
select:focus,input:focus,textarea:focus{border-color:var(--amber)}
textarea{min-height:110px;resize:vertical}
.matcher-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.horse-card{border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:var(--navy);display:flex;gap:14px;align-items:flex-start}
.horse-card svg{width:52px;height:52px;flex:none;color:var(--amber)}
.horse-card h4{margin:0 0 4px;font-family:var(--font-display);font-size:1.1rem;color:var(--amber-light)}
.horse-card p{margin:0 0 8px;font-size:.88rem;color:var(--smoke-light)}
.horse-card a{color:var(--amber);font-size:.85rem;text-decoration:underline}
.matcher-empty{color:var(--smoke-light);font-style:italic}

/* ---------- Continuous ambient element ---------- */
.ambient-star{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--amber-light);opacity:.8;animation:drift 9s linear infinite;pointer-events:none}
@keyframes drift{0%{transform:translate(0,0);opacity:0}10%{opacity:.9}90%{opacity:.9}100%{transform:translate(40px,-60px);opacity:0}}
@media (prefers-reduced-motion:reduce){.ambient-star{animation:none;display:none}}

/* ---------- Badges / seal ---------- */
.seal{width:140px;height:140px}

/* ---------- Forms ---------- */
form .field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
form .field label{font-size:.85rem;color:var(--ink);font-weight:600}
.on-dark form .field label{color:var(--smoke-light)}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:620px){form .row{grid-template-columns:1fr}}
.hp-field{position:absolute !important;left:-9999px;top:-9999px;opacity:0}
.form-msg{margin-top:14px;padding:12px 16px;border-radius:var(--radius);font-size:.92rem;display:none}
.form-msg.show{display:block}
.form-msg.ok{background:rgba(214,162,76,.15);border:1px solid var(--amber);color:var(--amber-light)}
.form-msg.err{background:rgba(200,70,70,.12);border:1px solid #c84646;color:#e79a9a}
.field-error{color:#e2645a;font-size:.8rem}

/* light sections */
.light{background:var(--white);color:var(--ink)}
.light select,.light input,.light textarea{background:#fff;border:1px solid #d8d4c6;color:var(--ink)}
.light .field-group label{color:#8a6a28}

/* ---------- Page header (inner pages) ---------- */
.page-head{background:var(--navy);color:var(--white);padding:58px 0 46px;border-bottom:1px solid var(--line)}
.page-head h1{color:var(--white);font-size:clamp(2rem,4vw,2.8rem)}
.breadcrumb{color:var(--smoke-light);font-size:.85rem;margin-bottom:14px}
.breadcrumb a{color:var(--amber-light)}

/* ---------- Legal content ---------- */
.legal{max-width:720px;margin:0 auto;padding:64px 0}
.legal h2{font-size:1.4rem;margin-top:1.6em}
.legal p,.legal li{color:var(--ink);font-size:.98rem}
.legal ul{padding-left:1.2em;margin-bottom:1em}
.legal ul li{margin-bottom:.4em}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line);padding:18px 0}
.faq-item summary{cursor:pointer;font-family:var(--font-display);font-size:1.1rem;color:var(--white);list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--amber);font-size:1.4rem}
.faq-item[open] summary::after{content:"\2212"}
.faq-item p{color:var(--smoke-light);margin-top:12px}

/* ---------- Cart page ---------- */
.cart-table{width:100%;border-collapse:collapse;margin-bottom:30px}
.cart-table th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--smoke);border-bottom:1px solid var(--line);padding:10px 8px}
.cart-table td{padding:14px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.cart-item-name{font-family:var(--font-display);font-size:1.05rem}
.qty-btn{width:30px;height:30px;border:1px solid var(--line);background:none;color:var(--ink);border-radius:var(--radius);cursor:pointer}
.cart-summary{display:flex;justify-content:flex-end;margin-bottom:40px}
.cart-summary .box{min-width:260px;text-align:right}
.cart-summary .total{font-family:var(--font-display);font-size:1.5rem;color:#8a6a28}
.cart-empty{text-align:center;padding:60px 0;color:var(--smoke)}
.remove-btn{background:none;border:none;color:#a33;cursor:pointer;text-decoration:underline;font-size:.82rem}

/* ---------- About ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
@media (max-width:860px){.about-grid{grid-template-columns:1fr}}
.layered{position:relative}
.layered img{border-radius:var(--radius);width:100%;aspect-ratio:4/5;object-fit:cover;filter:sepia(.15) saturate(1.05)}
.layered .frame-svg{position:absolute;inset:-14px;width:calc(100% + 28px);height:calc(100% + 28px);pointer-events:none}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);color:var(--smoke-light);padding:64px 0 32px;border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;margin-bottom:40px}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.footer-grid{grid-template-columns:1fr}}
.footer-grid h4{color:var(--amber-light);font-family:var(--font-body);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;margin-bottom:16px}
.footer-grid ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-grid a:hover{color:var(--amber-light)}
.footer-brand .logo{color:var(--white);margin-bottom:14px}
.newsletter-form{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.newsletter-form input{flex:1;min-width:160px}
.footer-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.82rem;color:var(--smoke)}

/* ---------- Cookie banner ---------- */
.cookie-banner{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;max-width:640px;margin:0 auto;
  background:var(--navy-2);border:1px solid var(--amber);border-radius:var(--radius);padding:22px;color:var(--white);
  box-shadow:0 20px 50px -20px rgba(0,0,0,.6);transform:translateY(130%);transition:transform .5s var(--ease);
}
.cookie-banner.show{transform:translateY(0)}
.cookie-banner p{font-size:.88rem;color:var(--smoke-light);margin-bottom:14px}
.cookie-actions{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- 404 ---------- */
.not-found{min-height:60vh;display:flex;align-items:center;justify-content:center;background:var(--navy);color:var(--white);text-align:center}
.not-found h1{font-size:clamp(3rem,10vw,7rem);color:var(--amber-light)}

/* ---------- Skip link ---------- */
.skip-link{position:absolute;left:-9999px;background:var(--amber);color:var(--navy);padding:10px 16px;z-index:1001}
.skip-link:focus{left:10px;top:10px}
