:root{--green:#123d2a;--deep:#0b291d;--lime:#d9f36a;--paper:#f2f0e9;--ink:#17221b;--muted:#8b938b;--display:"Barlow Condensed",Impact,sans-serif;--body:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.announcement{height:35px;background:var(--lime);display:flex;align-items:center;justify-content:center;gap:9px;font-size:9px;font-weight:800;letter-spacing:.12em}.announcement a{margin-left:13px;text-decoration:underline;text-underline-offset:3px}.live-dot,.eyebrow span{width:7px;height:7px;display:inline-block;border-radius:50%;background:#377a4d}.site-header{height:83px;padding:0 7.3%;display:flex;align-items:center;justify-content:space-between;background:#fff}.brand{display:flex;align-items:center;gap:11px}.crest{width:38px;height:44px;background:var(--green);clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%);color:var(--lime);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--display);line-height:.9}.crest span{font-size:10px;font-weight:800}.crest b{font-size:19px}.brand-name{font-family:var(--display);font-size:20px;line-height:.92;font-weight:800;letter-spacing:.03em}.brand-name small{display:block;font-family:var(--body);font-size:8px;letter-spacing:.16em;font-weight:700;margin-top:6px}.main-nav{display:flex;gap:34px}.main-nav a,.header-cta{font-size:10px;font-weight:800;letter-spacing:.1em}.main-nav a:hover,.text-link:hover{color:#6c8428}.header-cta{background:var(--green);color:white;padding:14px 18px}.header-cta span{color:var(--lime);margin-left:10px}.menu-toggle{display:none}.hero{min-height:535px;height:min(650px,69vw);max-height:700px;background:var(--green);position:relative;overflow:hidden;color:white;display:flex;align-items:center;padding:0 11.8%}.hero-photo{position:absolute;inset:0 0 0 36%;overflow:hidden;background:radial-gradient(ellipse at 78% 19%,rgba(236,244,176,.8) 0,rgba(236,244,176,.16) 2%,transparent 18%),linear-gradient(90deg,#123d2a 0%,rgba(18,61,42,.86) 14%,rgba(18,61,42,.08) 52%),linear-gradient(180deg,rgba(12,36,25,.05),rgba(12,36,25,.45)),repeating-linear-gradient(0deg,transparent 0 44px,rgba(225,249,202,.055) 45px 46px),linear-gradient(160deg,#385841 0%,#78905b 30%,#52753c 60%,#233e2b 100%)}.hero-photo:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(100deg,transparent 0 84px,rgba(225,247,198,.055) 86px 128px);transform:perspective(330px) rotateX(47deg) scale(1.8);transform-origin:bottom}.stadium-lights{position:absolute;left:25%;right:-8%;top:8%;height:27%;background:radial-gradient(ellipse at 15% 55%,rgba(255,255,216,.9) 0 2px,rgba(255,255,216,.5) 3px,transparent 65px),radial-gradient(ellipse at 55% 15%,rgba(255,255,216,.75) 0 2px,rgba(255,255,216,.35) 3px,transparent 55px),radial-gradient(ellipse at 82% 60%,rgba(255,255,216,.9) 0 2px,rgba(255,255,216,.45) 3px,transparent 70px)}.pitch-lines{position:absolute;left:22%;right:-9%;bottom:-27%;height:58%;border:1px solid rgba(233,247,222,.3);border-radius:50% 50% 0 0;box-shadow:0 -40px 0 -39px rgba(233,247,222,.3),0 -85px 0 -84px rgba(233,247,222,.27)}.hero-ball{position:absolute;right:20%;bottom:23%;font-size:60px;color:#f8f5df;text-shadow:0 10px 26px #14271a;filter:drop-shadow(0 2px 1px #253923)}.hero-content{position:relative;z-index:2;margin-top:-25px}.eyebrow{font-size:9px;letter-spacing:.19em;font-weight:800;display:flex;align-items:center;gap:9px;margin:0 0 21px}.hero .eyebrow{color:#dbe6d7}.hero .eyebrow span,.club-band .eyebrow span,.squad .eyebrow span,.join .eyebrow span{background:var(--lime)}h1,h2{font-family:var(--display);font-weight:800;letter-spacing:-.025em;line-height:.83;margin:0}h1{font-size:clamp(72px,9vw,125px)}h1 em,h2 em{font-style:normal;color:var(--lime)}.hero-lede{font-size:14px;color:#d8e1d6;margin:26px 0 30px}.hero-actions{display:flex;align-items:center;gap:27px}.button{height:47px;padding:0 19px;display:inline-flex;align-items:center;gap:26px;font-size:9px;font-weight:800;letter-spacing:.1em}.button-lime{background:var(--lime);color:var(--deep)}.button-lime span{font-size:15px}.text-link{font-size:9px;font-weight:800;letter-spacing:.11em}.text-link span{margin-left:7px}.hero-score{position:absolute;right:7.4%;bottom:0;width:250px;padding:18px 21px 15px;background:var(--lime);color:var(--deep);z-index:3}.score-label,.score-caption{font-size:8px;font-weight:800;letter-spacing:.11em}.score-label b{opacity:.52}.score-teams{display:flex;align-items:center;justify-content:space-between;padding:10px 0 5px;font-family:var(--display);font-weight:700}.score-teams span{font-size:14px}.score-teams strong{font-size:34px}.score-teams i{font-size:23px;font-style:normal;opacity:.5}.score-caption{opacity:.7}.score-caption span{padding-left:4px}.hero-stamp{position:absolute;right:15%;top:13%;width:86px;height:86px;border:1px solid rgba(220,241,187,.7);border-radius:50%;display:grid;place-items:center;text-align:center;color:var(--lime);font-size:8px;font-weight:800;letter-spacing:.16em;transform:rotate(11deg)}.stamp-star{position:absolute;font-size:16px;right:-7px;top:2px;color:white}.ticker{overflow:hidden;background:var(--deep);color:white;height:52px;display:flex;align-items:center}.ticker-track{display:flex;align-items:center;justify-content:space-around;min-width:100%;gap:42px;white-space:nowrap;font-family:var(--display);font-size:18px;letter-spacing:.13em;font-weight:700}.ticker i{font-style:normal;color:var(--lime);font-size:15px}.section{padding:88px 11.8%}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:29px}.eyebrow.dark{color:#727b71;margin-bottom:15px}.section h2,.club-copy h2,.squad h2,.join h2{font-size:59px}.section h2 em,.club-copy h2 em,.squad h2 em{color:var(--green)}.dark-link{color:var(--green);padding-bottom:6px}.match-list{border-top:1px solid #d8dad1}.match-card{display:flex;align-items:center;padding:19px 18px;border-bottom:1px solid #d8dad1;min-height:91px;gap:24px}.match-featured{background:#fff}.match-date{width:43px;display:flex;flex-direction:column;align-items:center;color:#757d73;font-size:8px;font-weight:800;letter-spacing:.1em}.match-date b{font-family:var(--display);font-size:34px;line-height:.95;color:var(--green);letter-spacing:0}.match-info{flex:1}.match-teams{display:flex;align-items:center;gap:13px;font-size:12px}.match-teams span{font-size:8px;color:#9ca398;font-weight:800}.match-meta{display:block;margin-top:8px;color:#7c857a;font-size:9px;font-weight:600}.match-badge{font-size:8px;letter-spacing:.12em;font-weight:800;background:#e5eadc;color:#43613f;padding:8px 10px}.match-featured .match-badge{background:var(--lime);color:var(--deep)}.home-ground{display:flex;align-items:center;gap:13px;padding:21px 17px;background:#e6e8de;font-size:8px;letter-spacing:.11em;font-weight:700;color:#727a70}.home-ground b{display:block;color:var(--green);font-size:10px;margin-top:5px}.ground-icon{font-size:23px;color:var(--green)}.home-ground a{margin-left:auto;color:var(--green);font-weight:800}.club-band{background:var(--green);color:white;display:grid;grid-template-columns:1fr 1fr;min-height:420px}.club-art{background:linear-gradient(145deg,#d9f36a,#a8d748);color:var(--green);position:relative;display:grid;place-items:center;overflow:hidden}.club-art:before,.club-art:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(18,61,42,.15);border-radius:50%}.club-art:after{width:300px;height:300px}.big-crest{position:relative;z-index:1;width:145px;height:172px;clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%);background:var(--green);color:var(--lime);display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:var(--display)}.big-crest span{font-size:30px}.big-crest b{font-size:80px;line-height:.8}.big-crest small{font:700 7px var(--body);letter-spacing:.12em;margin-top:9px}.art-caption{position:absolute;left:8%;bottom:8%;font-size:8px;line-height:1.6;letter-spacing:.13em;font-weight:800}.club-copy{padding:77px 11% 70px}.club-copy .eyebrow{color:#c9d5c6}.club-copy h2{font-size:64px}.club-copy>p:not(.eyebrow){font-size:13px;line-height:1.8;color:#c4cec3;max-width:355px;margin:23px 0 28px}.button-outline{border:1px solid #8fa191;color:white}.button-outline span{color:var(--lime);font-size:15px}.results{padding-top:80px;padding-bottom:85px}.league-tag{background:#e5e8df;padding:10px 12px;color:#65715e;font-size:8px;letter-spacing:.1em;font-weight:800}.results-card{background:#fff;max-width:670px}.results-top{display:flex;justify-content:space-between;padding:17px 19px;background:var(--green);color:white;font-size:8px;font-weight:800;letter-spacing:.14em}.results-top span+span{color:#c4d3c2}.results-top b{color:var(--lime);margin-left:6px}.standings{padding:8px 19px 12px}.table-head,.table-row{display:grid;grid-template-columns:48px 1fr 48px 55px 48px;align-items:center;min-height:42px;border-bottom:1px solid #edf0e8;font-size:9px}.table-head{color:#939b90;font-size:8px;font-weight:800;letter-spacing:.1em}.table-row{font-weight:700}.table-row>span:first-child{color:#91998f}.table-row b{color:var(--green);font-size:12px}.table-row.highlight{background:#f0f5e3;color:var(--green)}.table-row.highlight span:first-child{color:#719044}.table-note{color:#959d91;font-size:7px;font-weight:700;letter-spacing:.11em;padding:0 19px 15px}.squad{background:var(--deep);color:white;padding:77px 11.8% 0}.squad-inner{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center}.squad .eyebrow{color:#c3d0c1}.squad h2{font-size:57px}.squad-intro{color:#b7c2b6;font-size:12px;line-height:1.7;max-width:245px;margin-top:21px}.player-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.player-card{min-width:0}.player-visual{height:177px;background:linear-gradient(145deg,#d9f36a,#a9c878);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#17472d}.player-visual:after{content:"";position:absolute;width:125px;height:170px;border-radius:55% 55% 0 0;background:rgba(18,61,42,.15);bottom:-95px}.player-tone-1{background:linear-gradient(145deg,#d7ded0,#96aa92)}.player-tone-2{background:linear-gradient(145deg,#a8d5ba,#54896b)}.player-tone-3{background:linear-gradient(145deg,#d4e58c,#8ba252)}.player-number{position:absolute;top:10px;left:12px;font-family:var(--display);font-size:15px;font-weight:800}.player-silhouette{font-size:65px;opacity:.78;text-shadow:0 8px 9px rgba(15,54,34,.16)}.player-position{position:absolute;bottom:9px;left:10px;z-index:2;font-size:7px;font-weight:800;letter-spacing:.1em}.player-name{display:flex;justify-content:space-between;gap:3px;padding:10px 0;font-size:8px;font-weight:800;letter-spacing:.07em}.player-name span{color:var(--lime)}.squad-footer{border-top:1px solid rgba(255,255,255,.17);margin-top:52px;padding:17px 0;display:flex;align-items:center;gap:11px;font-size:8px;font-weight:800;letter-spacing:.11em;color:#c3cdbf}.squad-footer span,.squad-footer b{color:var(--lime)}.join{background:var(--green);color:white;text-align:center;padding:88px 20px 92px;position:relative;overflow:hidden}.join:before,.join:after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(220,240,180,.11);border-radius:50%;top:20px;left:-170px}.join:after{left:auto;right:-180px}.join .eyebrow{justify-content:center;color:#c1d0c0}.join h2{font-size:clamp(55px,7vw,84px);line-height:.88}.join h2 em{color:var(--lime)}.join>p:not(.eyebrow){font-size:12px;color:#c2cec1;margin:19px 0 25px}.join-spark{position:absolute;right:19%;top:25%;color:var(--lime);font-size:29px}.footer{min-height:83px;padding:18px 7.3%;display:flex;align-items:center;justify-content:space-between;background:#fff}.footer-brand .crest{width:32px;height:38px}.footer-brand .brand-name{font-size:16px}.footer>span{font-size:8px;font-weight:700;letter-spacing:.08em;color:#7f887e}.footer>span b{color:var(--green)}
@media(max-width:800px){.site-header{padding:0 5%;height:72px}.main-nav{gap:17px}.main-nav a,.header-cta{font-size:8px}.header-cta{padding:12px}.hero{padding:0 8%;min-height:500px}.hero-photo{left:21%}.hero-score{right:5%}.hero-stamp{right:10%}.section{padding:70px 8%}.club-copy{padding-left:8%;padding-right:7%}.club-copy h2{font-size:56px}.squad{padding-left:8%;padding-right:8%}.squad-inner{grid-template-columns:1fr;gap:25px}.squad-intro{max-width:none;margin-top:13px}.player-visual{height:200px}}
@media(max-width:600px){.announcement{font-size:8px;height:32px}.site-header{height:68px}.brand-name{font-size:18px}.header-cta{display:none}.menu-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:0;padding:9px}.menu-toggle span{width:23px;height:2px;background:var(--green);transition:.2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.main-nav{display:none;position:absolute;z-index:10;top:100px;left:0;right:0;background:#fff;padding:22px 7%;box-shadow:0 12px 18px #102a191c;flex-direction:column;gap:20px}.main-nav.nav-open{display:flex}.main-nav a{font-size:11px}.hero{min-height:560px;height:calc(100svh - 100px);max-height:700px;align-items:flex-start;padding:91px 7% 0}.hero-content{margin:0}.hero-photo{inset:23% -23% 0 0;background:radial-gradient(ellipse at 75% 16%,rgba(236,244,176,.8) 0,rgba(236,244,176,.13) 2%,transparent 18%),linear-gradient(180deg,#123d2a 0%,rgba(18,61,42,.62) 27%,rgba(18,61,42,.08) 85%),repeating-linear-gradient(0deg,transparent 0 39px,rgba(225,249,202,.055) 40px 41px),linear-gradient(160deg,#385841,#78905b 40%,#52753c 75%,#233e2b)}.hero h1{font-size:82px}.hero-lede{font-size:12px;margin:19px 0 22px}.hero-actions{gap:18px}.button{padding:0 14px;gap:13px;font-size:8px;height:43px}.hero-score{right:0;width:205px;padding:13px 16px}.score-teams strong{font-size:30px}.hero-stamp{right:8%;top:30%;width:67px;height:67px;font-size:7px}.hero-ball{right:21%;bottom:20%;font-size:44px}.ticker{height:45px}.ticker-track{font-size:15px;gap:25px}.section{padding:58px 6%}.section-heading{align-items:end;gap:12px}.section h2,.squad h2{font-size:48px}.section-heading .text-link,.league-tag{font-size:7px;white-space:nowrap}.match-card{padding:15px 7px;gap:12px;min-height:83px}.match-teams{gap:6px;font-size:9px}.match-teams span{font-size:7px}.match-meta{font-size:8px}.match-badge{font-size:7px;padding:7px 6px}.home-ground{padding:16px 10px;font-size:7px;gap:9px}.home-ground b{font-size:8px}.home-ground a{font-size:7px;white-space:nowrap}.club-band{grid-template-columns:1fr}.club-art{min-height:270px}.big-crest{transform:scale(.8)}.club-copy{padding:50px 8% 54px}.club-copy h2{font-size:57px}.club-copy>p:not(.eyebrow){font-size:12px}.results{padding-top:60px;padding-bottom:60px}.results-top{padding:14px}.standings{padding-left:12px;padding-right:12px}.table-head,.table-row{grid-template-columns:33px 1fr 32px 37px 35px;font-size:8px}.table-head{font-size:7px}.table-note{font-size:6px;padding-left:12px}.squad{padding:55px 6% 0}.squad h2{font-size:49px}.player-grid{grid-template-columns:repeat(2,1fr);gap:15px}.player-visual{height:185px}.player-name{font-size:9px}.squad-footer{margin-top:34px;font-size:7px}.join{padding:70px 15px 75px}.join h2{font-size:59px}.join-spark{right:9%;top:15%;font-size:22px}.footer{padding:16px 5%;flex-wrap:wrap;gap:16px}.footer-brand{width:100%}.footer>span{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Identidad visual del C.F. Valdeolmos: azul marino y amarillo del cartel del club. */
:root{--green:#00429b;--deep:#001f5b;--lime:#ffe000;--paper:#f5f7fc;--ink:#001d4e;--muted:#5c6f93}
.live-dot,.eyebrow span{background:#0058b8}.main-nav a:hover,.text-link:hover{color:#b48e00}
.official-crest{display:block;width:42px;height:52px;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(0,31,91,.16))}.footer-brand .official-crest{width:34px;height:42px}
.hero-photo{background:radial-gradient(ellipse at 78% 19%,rgba(255,241,108,.9) 0,rgba(255,224,0,.16) 2%,transparent 18%),linear-gradient(90deg,#00429b 0%,rgba(0,66,155,.86) 14%,rgba(0,66,155,.08) 52%),linear-gradient(180deg,rgba(0,27,77,.05),rgba(0,27,77,.49)),repeating-linear-gradient(0deg,transparent 0 44px,rgba(233,241,255,.08) 45px 46px),linear-gradient(160deg,#00347f 0%,#0874c5 30%,#004aa6 60%,#001f5b 100%)}
.hero-photo:before{background:repeating-linear-gradient(100deg,transparent 0 84px,rgba(255,235,64,.075) 86px 128px)}.pitch-lines{border-color:rgba(255,255,255,.35);box-shadow:0 -40px 0 -39px rgba(255,255,255,.3),0 -85px 0 -84px rgba(255,255,255,.27)}.hero-ball{color:#ffe000;text-shadow:0 10px 26px #001f5b;filter:drop-shadow(0 2px 1px #001842)}
.hero .eyebrow{color:#e2edff}.hero-lede{color:#d9e8ff}.hero-stamp{border-color:rgba(255,224,0,.8)}
.club-art{background:linear-gradient(145deg,#ffe000,#f7be00);color:#00347f}.club-art:before,.club-art:after{border-color:rgba(0,66,155,.22)}.big-crest{width:178px;height:235px;background:none;clip-path:none}.big-crest img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 9px 7px rgba(0,31,91,.26))}
.club-copy .eyebrow,.squad .eyebrow,.join .eyebrow{color:#d7e6ff}.club-copy>p:not(.eyebrow),.squad-intro,.join>p:not(.eyebrow){color:#d7e6ff}.button-outline{border-color:#9cc5ff}.results-top span+span{color:#d7e6ff}.results-card{box-shadow:0 8px 25px rgba(0,31,91,.08)}.table-row.highlight{background:#fff8bf;color:#00347f}.table-row.highlight span:first-child{color:#0058b8}.match-badge{background:#e2eaff;color:#00347f}.home-ground{background:#e9effb;color:#506384}
.player-visual,.player-tone-1,.player-tone-2,.player-tone-3{background:linear-gradient(145deg,#ffe000,#0a6fca);color:#002d70}.player-tone-1{background:linear-gradient(145deg,#d7e9ff,#1661af)}.player-tone-2{background:linear-gradient(145deg,#ffe000,#0052af)}.player-tone-3{background:linear-gradient(145deg,#f8cb00,#003b88)}.player-visual:after{background:rgba(0,31,91,.2)}.squad-footer{color:#d7e6ff}.join:before,.join:after{border-color:rgba(255,224,0,.18)}
@media(max-width:600px){.hero-photo{background:radial-gradient(ellipse at 75% 16%,rgba(255,241,108,.9) 0,rgba(255,224,0,.16) 2%,transparent 18%),linear-gradient(180deg,#00429b 0%,rgba(0,66,155,.62) 27%,rgba(0,66,155,.08) 85%),repeating-linear-gradient(0deg,transparent 0 39px,rgba(233,241,255,.08) 40px 41px),linear-gradient(160deg,#00347f,#0874c5 40%,#004aa6 75%,#001f5b)}.big-crest{width:160px;height:210px;transform:none}.official-crest{width:38px;height:46px}.footer-brand .official-crest{width:32px;height:39px}}

/* Portada y plantilla del C.F. Valdeolmos. */
.eyebrow [data-founded],.eyebrow [data-town]{display:inline;width:auto;height:auto;border-radius:0;background:transparent!important}
.hero-photo{inset:0;background:linear-gradient(90deg,rgba(0,0,0,.9) 0%,rgba(0,12,42,.78) 37%,rgba(0,0,0,.37) 67%,rgba(0,0,0,.12) 100%),linear-gradient(0deg,rgba(0,0,0,.48),transparent 55%),url("assets/campo-valdeolmos.jpeg") center 58%/cover no-repeat}.hero-photo:before{display:none}.stadium-lights,.pitch-lines,.hero-ball{display:none}
.player-grid{width:100%;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:14px;align-items:start}
@media(max-width:600px){.hero-photo{inset:0;background-position:57% center}.player-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}}

.directions-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 22px;background:#fff;border:1px solid #d6e0f2;border-top:0}.directions-copy{display:flex;flex-direction:column;gap:6px}.directions-label{font-size:8px;letter-spacing:.13em;font-weight:800;color:#607499}.directions-copy strong{font-size:13px;color:var(--green)}.directions-status{font-size:9px;color:#607499}.map-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.map-links[hidden]{display:none}.map-links a{display:inline-flex;align-items:center;gap:9px;padding:11px 12px;background:var(--green);color:#fff;font-size:8px;letter-spacing:.08em;font-weight:800}.map-links a:hover{background:var(--deep)}.map-links a span{color:var(--lime);font-size:13px}@media(max-width:600px){.directions-panel{align-items:flex-start;flex-direction:column;gap:18px;padding:20px 14px}.directions-copy strong{font-size:12px}.map-links{justify-content:flex-start}.map-links a{padding:10px 9px;font-size:7px}}
