/* ============================================================
   KAREN O'NEAL EVENTING — Elegant One-Page Responsive Site
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --gold:#b89f5c;--gold-light:#d4bb7a;--gold-dark:#8a7540;
  --charcoal:#1c1c1c;--dark:#111111;--mid:#3d3d3d;--muted:#6a6a6a;
  --light:#f7f5f0;--white:#ffffff;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Montserrat',system-ui,sans-serif;
  --ease:all 0.35s cubic-bezier(0.4,0,0.2,1);
  --warm-black:#0d0c0b;
  --ease-out-expo:cubic-bezier(0.16,1,0.3,1);
}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--white);color:var(--charcoal);font-size:15px;line-height:1.7;overflow-x:hidden}
/* Utilities */
.container{width:92%;max-width:1180px;margin:0 auto}
.eyebrow{font-size:10px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:14px}
.section-title{font-family:var(--serif);font-size:clamp(2rem,4.5vw,3rem);font-weight:400;line-height:1.2;margin-bottom:20px}
.section-title em{font-style:italic;color:var(--gold)}
.rule{width:50px;height:1px;background:var(--gold);margin:0 auto 42px}
.rule-left{margin-left:0}
.btn{display:inline-block;padding:13px 36px;font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;text-decoration:none;cursor:pointer;border:none;transition:var(--ease)}
.btn-gold{background:var(--gold);color:var(--white)}
.btn-gold:hover{background:var(--gold-dark)}
.btn-ghost{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.6)}
.btn-ghost:hover{background:var(--white);color:var(--charcoal)}
.btn-outline{background:transparent;color:var(--charcoal);border:1px solid var(--charcoal)}
.btn-outline:hover{background:var(--charcoal);color:var(--white)}
.text-link{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px;transition:opacity .2s}
.text-link:hover{opacity:.7}
/* Scroll reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.22s}.d3{transition-delay:.34s}.d4{transition-delay:.46s}
/* ── NAV (from 5) ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1.25rem 0;background:transparent;transition:all 0.5s var(--ease-out-expo)}
.nav.scrolled{background:rgba(13,12,11,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:0.75rem 0;box-shadow:0 1px 0 rgba(184,168,138,0.15)}
.nav-inner{max-width:1400px;margin:0 auto;padding:0 clamp(1.5rem,4vw,3rem);display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:0.75rem;text-decoration:none}
.nav-logo img{height:40px;width:auto;transition:opacity 0.3s}
.nav-logo-text{font-family:var(--serif);font-weight:300;font-size:1.3rem;color:#fff;letter-spacing:0.05em;text-decoration:none}
.nav-links{display:flex;gap:2.5rem;align-items:center}
.nav-links a{font-size:0.7rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.8);transition:color 0.3s;position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--gold);transition:width 0.4s var(--ease-out-expo)}
.nav-links a:hover{color:#fff}
.nav-links a:hover::after{width:100%}
.nav-toggle{display:none;width:28px;height:20px;padding:0;margin:0;border:none;background:transparent;cursor:pointer;position:relative;flex-direction:column;justify-content:space-between;align-items:stretch}
.nav-toggle span{display:block;width:100%;height:2px;background:#fff;transition:all 0.3s;transform-origin:center}
.nav-toggle.active span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.nav-toggle.active span:nth-child(2){opacity:0}
.nav-toggle.active span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;background:rgba(13,12,11,0.98);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;opacity:0;pointer-events:none;transition:opacity 0.4s;z-index:999}
.mobile-menu.active{opacity:1;pointer-events:all}
.mobile-menu a{font-family:var(--serif);font-size:2rem;font-weight:300;color:#fff;letter-spacing:0.05em;opacity:0;transform:translateY(20px);transition:all 0.5s var(--ease-out-expo)}
.mobile-menu.active a{opacity:1;transform:translateY(0)}
.mobile-menu.active a:nth-child(2){transition-delay:0.05s}.mobile-menu.active a:nth-child(3){transition-delay:0.1s}.mobile-menu.active a:nth-child(4){transition-delay:0.15s}.mobile-menu.active a:nth-child(5){transition-delay:0.2s}
@media(max-width:768px){.nav-links{display:none}.nav-toggle{display:flex}}
/* ── HERO (from 5) ── */
.hero{position:relative;height:100vh;min-height:600px;max-height:1100px;overflow:hidden;display:flex;align-items:flex-end;background:var(--warm-black)}
.hero-slideshow{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center 30%;opacity:0;transition:opacity 1.8s ease-in-out;will-change:opacity}
.hero-slide.active{opacity:1}
.hero-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(13,12,11,0.85) 0%,rgba(13,12,11,0.4) 40%,rgba(13,12,11,0.15) 70%,rgba(13,12,11,0.25) 100%)}
.hero-content{position:relative;z-index:2;width:100%;padding:clamp(3rem,8vh,6rem) clamp(2rem,5vw,4rem);max-width:1400px;margin:0 auto}
.hero-content .label{color:var(--gold);margin-bottom:1.25rem}
.hero-content .heading-xl{color:#fff;max-width:700px}
.hero-content .heading-xl em{font-style:italic;color:var(--gold-light)}
.hero-tagline{color:rgba(255,255,255,0.7);font-size:1.05rem;font-weight:300;max-width:500px;margin-top:1.25rem;line-height:1.7}
.hero-cta{display:inline-flex;align-items:center;gap:0.75rem;margin-top:2rem;padding:0.9rem 2.2rem;border:1px solid var(--gold);color:#fff;font-size:0.7rem;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;transition:all 0.4s var(--ease-out-expo)}
.hero-cta:hover{background:var(--gold);color:var(--warm-black)}
.hero-cta svg{width:14px;height:14px;transition:transform 0.3s}
.hero-cta:hover svg{transform:translateX(3px)}
.heading-xl{font-family:var(--serif);font-weight:300;font-size:clamp(2.8rem,6vw,5.5rem);line-height:1.05;letter-spacing:-0.02em}
.label{font-family:var(--sans);font-weight:500;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase}
.hero-indicators{position:absolute;bottom:clamp(2rem,4vh,3rem);right:clamp(2rem,5vw,4rem);z-index:3;display:flex;gap:0.5rem}
.hero-indicator{width:32px;height:2px;background:rgba(255,255,255,0.25);cursor:pointer;transition:background 0.4s}
.hero-indicator.active{background:var(--gold)}
/* ── INTRO STRIP (from 5) ── */
.intro-strip{background:var(--warm-black);padding:3rem 0;border-bottom:1px solid rgba(184,168,138,0.15)}
.intro-strip-inner{display:flex;align-items:center;justify-content:center;gap:clamp(2rem,5vw,5rem);flex-wrap:wrap}
.intro-stat{text-align:center}
.intro-stat-number{font-family:var(--serif);font-size:2.8rem;font-weight:300;color:var(--gold);line-height:1}
.intro-stat-label{font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-top:0.5rem;font-weight:400}
.intro-divider{width:1px;height:40px;background:rgba(184,168,138,0.2)}
@media(max-width:600px){.intro-divider{display:none}.intro-strip-inner{gap:1.5rem}.intro-stat{flex:0 0 40%}}
@media(max-width:768px){.hero-content{padding:0 28px}}
/* ── ABOUT ── */
#about{padding:108px 0;background:var(--white)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.about-content p{font-size:14.5px;color:var(--mid);line-height:1.9;margin-bottom:18px}
.about-cta{margin-top:34px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.photo-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.photo-cell{overflow:hidden;position:relative;aspect-ratio:4/3}
.photo-cell.wide{grid-column:1/-1;aspect-ratio:16/7}
.photo-cell img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;filter:grayscale(15%)}
.photo-cell:hover img{transform:scale(1.05);filter:grayscale(0%)}
/* ── RESULTS ── */
#results{padding:86px 0;background:var(--charcoal)}
#results .section-title{color:var(--white);text-align:center}
.results-wrap{max-height:400px;overflow-y:auto;margin-top:42px;border:1px solid rgba(255,255,255,.07)}
.results-wrap::-webkit-scrollbar{width:4px}
.results-wrap::-webkit-scrollbar-track{background:rgba(255,255,255,.04)}
.results-wrap::-webkit-scrollbar-thumb{background:var(--gold)}
table.rtbl{width:100%;border-collapse:collapse;font-size:12px}
.rtbl thead th{background:rgba(184,159,92,.12);color:var(--gold);font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;padding:14px 18px;text-align:left;position:sticky;top:0;border-bottom:1px solid rgba(184,159,92,.25)}
.rtbl tbody tr{border-bottom:1px solid rgba(255,255,255,.04);transition:background .2s}
.rtbl tbody tr:hover{background:rgba(255,255,255,.04)}
.rtbl td{padding:11px 18px;color:rgba(255,255,255,.7)}
.rtbl td:first-child{color:var(--gold);font-weight:500}
/* ── SERVICES ── */
#services{padding:108px 0;background:var(--light)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.svc-card{background:var(--white);overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.06);transition:var(--ease)}
.svc-card:hover{transform:translateY(-7px);box-shadow:0 18px 48px rgba(0,0,0,.13)}
.svc-img{position:relative;height:260px;overflow:hidden}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;filter:grayscale(25%)}
.svc-card:hover .svc-img img{transform:scale(1.07);filter:grayscale(0%)}
.svc-img::after{content:'';position:absolute;bottom:0;left:0;right:0;height:45%;background:linear-gradient(to top,rgba(15,15,15,.5),transparent)}
.svc-body{padding:32px}
.svc-body h3{font-size:10px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.svc-body p{font-size:13.5px;color:var(--muted);line-height:1.82;margin-bottom:26px}
.svc-link{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--charcoal);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px;transition:color .2s}
.svc-link:hover{color:var(--gold)}
/* ── VIDEOS ── */
#videos{padding:108px 0;background:var(--white)}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.vid-card{background:var(--charcoal);overflow:hidden}
.vid-ratio{position:relative;padding-bottom:56.25%;height:0;background:var(--charcoal)}
.vid-ratio .vid-thumb{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block}
.vid-ratio iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}
.vid-cap{padding:14px 16px;font-size:11px;color:rgba(255,255,255,.5);line-height:1.45;border-top:1px solid rgba(255,255,255,.06)}
/* ── TESTIMONIALS (from 5) ── */
.testimonials{padding:clamp(5rem,10vw,9rem) 0;background:var(--warm-black);position:relative}
.testimonials::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-light),transparent)}
.testimonials-header{text-align:center;margin-bottom:clamp(3rem,6vw,5rem)}
.testimonials-header .label{color:var(--gold);margin-bottom:1rem}
.testimonials-header .heading-lg{color:#fff}
.heading-lg{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,4vw,3.5rem);line-height:1.15;letter-spacing:-0.01em}
.testimonials-carousel{position:relative;overflow:hidden}
.testimonials-track{display:flex;transition:transform 0.7s var(--ease-out-expo)}
.testimonial-slide{min-width:100%;padding:0 clamp(1rem,4vw,3rem)}
.testimonial-inner{max-width:700px;margin:0 auto;text-align:center}
.testimonial-quote{font-family:var(--serif);font-size:clamp(1.15rem,2vw,1.4rem);font-weight:300;font-style:italic;color:rgba(255,255,255,0.85);line-height:1.75;position:relative}
.testimonial-quote::before{content:'\201C';display:block;font-size:4rem;line-height:1;color:var(--gold);font-style:normal;margin-bottom:0.5rem}
.testimonial-author{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2rem}
.testimonial-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid rgba(184,168,138,0.3)}
.testimonial-name{font-family:var(--serif);font-size:1.1rem;font-weight:500;color:var(--gold-light)}
.testimonial-controls{display:flex;justify-content:center;gap:1rem;margin-top:2.5rem}
.testimonial-btn{width:44px;height:44px;border:1px solid rgba(184,168,138,0.3);background:transparent;display:flex;align-items:center;justify-content:center;color:var(--gold-light);transition:all 0.3s}
.testimonial-btn:hover{background:var(--gold);color:var(--warm-black);border-color:var(--gold)}
.testimonial-btn svg{width:16px;height:16px}
/* ── SPONSORS ── */
#sponsors{padding:64px 0;background:var(--charcoal)}
.sp-label{text-align:center;font-size:9px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,.28);margin-bottom:36px}
.sp-logos{display:flex;justify-content:center;align-items:center;gap:60px;flex-wrap:wrap}
.sp-logos img{height:72px;object-fit:contain;opacity:.5;filter:brightness(1.3);transition:opacity .3s}
.sp-logos img:hover{opacity:1}
/* ── CONTACT ── */
#contact{position:relative;padding:108px 0;background:url('img/sunrise-hc.jpg') center/cover no-repeat fixed}
#contact::before{content:'';position:absolute;inset:0;background:rgba(12,12,12,.84)}
#contact .container{position:relative;z-index:1}
.contact-grid{display:grid;grid-template-columns:1fr 1.55fr;gap:80px;align-items:start}
.contact-info .section-title{color:var(--white)}
.contact-logo{height:52px;margin-bottom:26px;opacity:.9}
.contact-info p{color:rgba(255,255,255,.68);font-size:14px;line-height:1.9;margin-bottom:34px}
.socials{display:flex;gap:14px}
.soc-btn{width:44px;height:44px;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);text-decoration:none;font-size:17px;transition:var(--ease)}
.soc-btn:hover{border-color:var(--gold);color:var(--gold);background:rgba(184,159,92,.1)}
.cform{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);padding:48px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.fg{margin-bottom:22px}
.fg label{display:block;font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.fg input,.fg textarea,.fg select{width:100%;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.14);color:var(--white);padding:14px 16px;font-family:var(--sans);font-size:13px;outline:none;transition:border-color .2s;-webkit-appearance:none}
.fg input::placeholder,.fg textarea::placeholder{color:rgba(255,255,255,.28)}
.fg input:focus,.fg textarea:focus{border-color:var(--gold)}
.fg textarea{height:126px;resize:vertical}
.fmsg{display:none;margin-top:16px;padding:12px 18px;font-size:12px;letter-spacing:.5px}
.fmsg.ok{display:block;background:rgba(184,159,92,.15);color:var(--gold);border-left:2px solid var(--gold)}
.fmsg.err{display:block;background:rgba(200,50,50,.12);color:#ff8080;border-left:2px solid #ff8080}
.hp-field{position:absolute;left:-5000px;top:auto;width:1px;height:1px;overflow:hidden}
/* ── FOOTER ── */
#footer{background:var(--dark);padding:48px 0 36px;text-align:center}
.foot-logo{height:44px;margin-bottom:22px;opacity:.5}
.foot-nav{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;margin-bottom:24px}
.foot-nav a{font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.35);text-decoration:none;transition:color .2s}
.foot-nav a:hover{color:var(--gold)}
.foot-copy{font-size:11px;color:rgba(255,255,255,.22);letter-spacing:.5px}
.back-top{display:inline-flex;align-items:center;gap:8px;margin-top:26px;font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.28);text-decoration:none;transition:color .2s}
.back-top:hover{color:var(--gold)}
/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .about-grid{gap:48px}
  .svc-grid{grid-template-columns:1fr 1fr}
  .video-grid{grid-template-columns:1fr 1fr}
  .contact-grid{gap:48px}
}
@media(max-width:768px){
  .nav-inner{padding:0 22px}
  .about-grid{grid-template-columns:1fr}
  .photo-mosaic{order:-1}
  .svc-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}
  .video-grid{grid-template-columns:1fr;max-width:500px;margin:0 auto}
  .contact-grid{grid-template-columns:1fr;gap:40px}
  .cform{padding:28px 20px}
  .frow{grid-template-columns:1fr}
  #contact{background-attachment:scroll}
  .sp-logos{gap:28px}
}
@media(max-width:480px){
  .hero-content .heading-xl{font-size:2.4rem}
  .cform{padding:20px 14px}
}
/* ── VIDEO THUMBNAILS ── */
.vid-thumb{width:100%;height:100%;object-fit:cover;cursor:pointer;transition:transform .5s ease,filter .5s ease;filter:grayscale(30%)}
.vid-card:hover .vid-thumb{transform:scale(1.05);filter:grayscale(0%)}
.vid-play-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:rgba(184,159,92,.88);display:flex;align-items:center;justify-content:center;transition:var(--ease);pointer-events:none;cursor:pointer}
.vid-play-overlay::after{content:'';display:block;width:0;height:0;border-style:solid;border-width:8px 0 8px 14px;border-color:transparent transparent transparent var(--white);margin-left:3px}
.vid-card:hover .vid-play-overlay{background:var(--gold);transform:translate(-50%,-50%) scale(1.12)}
/* ── VIDEO MODAL ── */
.vid-modal{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:2rem;opacity:0;pointer-events:none;transition:opacity .35s}
.vid-modal.active{opacity:1;pointer-events:all}
.vid-modal-inner{width:100%;max-width:920px;position:relative}
.vid-modal-frame{position:relative;padding-bottom:56.25%;height:0}
.vid-modal-frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}
.vid-modal-close{position:absolute;top:-44px;right:0;background:none;border:none;color:var(--white);font-size:32px;cursor:pointer;line-height:1;transition:color .2s;padding:4px 8px}
.vid-modal-close:hover{color:var(--gold)}
/* ── SELECT FIX ── */
.fg select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%23b89f5c' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px;padding-right:36px}
