/* Bomberitos: floating navigation and a playful, restrained motion system. */
:root{--ease-bomberitos:cubic-bezier(.16,1,.3,1)}
html{scroll-padding-top:130px}
.site-header{position:fixed;inset:22px 3% auto;max-width:1440px;margin:auto;height:88px;padding:10px 14px 10px 20px;gap:18px;border:1px solid #ffffffa8;border-radius:24px;background:rgba(255,255,255,.96);box-shadow:0 14px 45px #06112a18;z-index:30;transition:box-shadow .35s,background .35s,transform .35s;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header.scrolled{background:rgba(255,255,255,.94);box-shadow:0 8px 34px #06112a24;transform:translateY(-10px)}
.site-header .brand{gap:11px}.site-header .brand img{width:64px;height:64px;transition:transform .4s var(--ease-bomberitos)}.site-header .brand:hover img{transform:rotate(-7deg)}.site-header .brand span{font-size:19px;display:block}.site-header .brand small{font-size:9px;letter-spacing:.12em;color:#6b7283}
.site-header nav{background:#edf0f5;border-radius:100px;padding:5px;gap:0;align-items:center}.site-header nav>a{position:relative;padding:11px 15px;border-radius:100px;font-size:13px;white-space:nowrap;transition:background .25s,color .25s,box-shadow .25s}.site-header nav>a:hover{color:var(--navy);background:#fff9}.site-header nav>a[aria-current="location"]{background:var(--navy);color:white;box-shadow:0 3px 8px #101f4520}.nav-number,.mobile-contact{display:none!important}
.site-header .header-contact{border-radius:17px;background:var(--red);padding:10px 10px 10px 20px;font-size:14px;gap:19px;white-space:nowrap}.header-contact>span{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:var(--yellow);color:var(--navy);transition:transform .3s var(--ease-bomberitos)}.header-contact:hover>span{transform:rotate(45deg)}
.hero{padding-top:140px;padding-bottom:28px;min-height:820px;gap:0;background:var(--navy);overflow:hidden}.hero-copy{padding-top:26px;padding-bottom:22px}.hero-photo{margin:0 28px 0 0;border-radius:30px 30px 110px 30px;isolation:isolate}.hero-photo>img{transition:transform 1s var(--ease-bomberitos)}.hero-photo:hover>img{transform:scale(1.035)}.hero .sticker{right:22px;top:26px;border:2px dashed var(--navy);outline:7px solid var(--yellow);box-shadow:0 12px 35px #0002}.hero .photo-label{bottom:45px}.title-line{display:block;overflow:hidden;padding-bottom:.075em;margin-bottom:-.075em}.title-line>span,.title-line>em{display:block}.hero h1{font-size:clamp(74px,7.6vw,112px)}.hero .button{border-radius:100px}.hero .button>span{transition:transform .3s}.hero .button:hover>span{transform:translate(3px,-3px)}
.ribbon{position:relative}.ribbon b{transition:transform .65s var(--ease-bomberitos)}.ribbon:hover b{transform:rotate(180deg)}
.card{transition:transform .4s var(--ease-bomberitos),box-shadow .4s;border-radius:18px}.card-image{overflow:hidden}.card-image img{transition:transform .7s var(--ease-bomberitos)}.card .button{border-radius:12px}.card .button>span{transition:transform .3s}.card .button:hover>span{transform:translate(3px,-3px)}.gallery figure img{transition:transform .6s var(--ease-bomberitos),box-shadow .6s;border-radius:15px}.gallery figure{transition:transform .5s var(--ease-bomberitos)}.floating{transition:transform .3s var(--ease-bomberitos),box-shadow .3s}.floating:hover{transform:translateY(-5px) rotate(-8deg);box-shadow:0 10px 25px #0003}.button:active{transform:scale(.97)}
@media(hover:hover) and (pointer:fine){.card:hover{transform:translateY(-9px);box-shadow:0 22px 40px #101f4512}.card:hover .card-image img{transform:scale(1.045)}.gallery figure:hover{transform:translateY(-7px) rotate(-1.5deg)}.gallery figure:nth-child(even):hover{transform:translateY(-7px) rotate(1.5deg)}.gallery figure:hover img{box-shadow:0 20px 35px #101f4520}}
@media(prefers-reduced-motion:no-preference){
 .site-header{animation:header-arrive .75s var(--ease-bomberitos) both}
 .hero .eyebrow{animation:soft-arrive .8s .1s var(--ease-bomberitos) both}
 .title-line>*{animation:title-arrive 1s var(--ease-bomberitos) both}.title-line:nth-child(1)>*{animation-delay:.15s}.title-line:nth-child(2)>*{animation-delay:.25s}.title-line:nth-child(3)>*{animation-delay:.35s}
 .hero-copy>p:not(.eyebrow),.hero-copy>.button,.hero-copy>.text-link,.hero-foot{animation:soft-arrive .9s .45s var(--ease-bomberitos) both}
 .hero-photo{animation:photo-arrive 1.15s .1s var(--ease-bomberitos) both}.hero .sticker{animation:sticker-arrive 1.1s .65s var(--ease-bomberitos) both}
 .reveal.is-visible{animation:section-arrive .8s var(--reveal-delay,0ms) var(--ease-bomberitos) both}
 details[open]>p,details[open]>.text-link{animation:soft-arrive .3s var(--ease-bomberitos) both}
}
@keyframes title-arrive{from{transform:translateY(110%) rotate(3deg)}to{transform:translateY(0) rotate(0)}}
@keyframes soft-arrive{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@keyframes header-arrive{from{opacity:0;translate:0 -20px}to{opacity:1;translate:0 0}}
@keyframes photo-arrive{from{opacity:0;transform:translateX(35px) scale(.97)}to{opacity:1;transform:none}}
@keyframes sticker-arrive{from{opacity:0;transform:scale(.65) rotate(-25deg)}to{opacity:1;transform:scale(1) rotate(12deg)}}
@keyframes section-arrive{from{opacity:.15;translate:0 30px}to{opacity:1;translate:0 0}}
@media(max-width:1200px) and (min-width:961px){.site-header .brand span{display:none}.site-header nav>a{padding:11px 13px}.site-header{inset-inline:2%}.hero h1{font-size:86px}}
@media(max-width:960px){
 .site-header{inset:16px 4% auto;height:78px;padding:8px 12px;border-radius:22px}.site-header .brand img{width:56px;height:56px}.site-header .brand span{font-size:18px}.site-header .header-contact{margin-left:auto;padding:8px 8px 8px 15px;font-size:13px}.site-header .menu{display:flex;align-items:center;gap:12px;justify-content:center;padding:13px 15px;border:0;border-radius:15px;background:var(--navy);color:white;cursor:pointer;min-height:48px;font-size:14px}.menu-lines{width:18px;display:grid;gap:5px}.menu-lines i{height:2px;width:18px;display:block;background:currentColor;transition:transform .25s}.menu[aria-expanded="true"] .menu-lines i:first-child{transform:translateY(3.5px) rotate(45deg)}.menu[aria-expanded="true"] .menu-lines i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
 .site-header nav{display:none;position:absolute;inset:calc(100% + 10px) 0 auto;background:#fff;padding:15px;border:1px solid #e2e7ef;border-radius:22px;box-shadow:0 25px 45px #09132d30;max-height:calc(100dvh - 125px);overflow-y:auto}.site-header nav.open{display:grid;gap:5px;animation:soft-arrive .3s var(--ease-bomberitos)}.site-header nav>a{padding:15px 18px;border-radius:12px;font-size:20px;white-space:normal}.site-header .nav-number{display:inline-block!important;font-size:12px;margin-right:20px;color:#8a91a1}.site-header nav>a[aria-current="location"] .nav-number{color:var(--yellow)}.site-header nav>a.mobile-contact{display:block!important;background:var(--yellow);color:var(--navy);font-size:15px;margin-top:8px}.hero{padding-top:125px;min-height:760px}.hero-photo{margin-right:20px;border-radius:25px 25px 70px 25px}.hero-copy{padding-top:25px}.hero h1{font-size:76px}
}
@media(max-width:760px){
 html{scroll-padding-top:112px}.site-header{inset:12px 12px auto;height:74px;padding:8px 10px;gap:8px;border-radius:20px}.site-header.scrolled{transform:translateY(-5px)}.site-header .brand{gap:8px}.site-header .brand img{width:50px;height:50px}.site-header .brand span{font-size:16px}.site-header .brand small{font-size:8px;letter-spacing:.07em}.site-header .header-contact{display:none}.site-header .menu{margin-left:auto;padding:12px;min-width:48px}.menu-label{display:none}.hero{padding-top:108px;padding-bottom:20px;min-height:0}.hero-copy{padding:25px 7% 30px}.hero h1{font-size:clamp(64px,18.5vw,100px)}.hero-photo{height:430px;margin:0 16px;border-radius:24px 24px 80px 24px}.hero .sticker{width:98px;height:98px;right:22px;top:25px;font-size:25px}.hero .photo-label{left:24px;bottom:32px}.hero-foot{margin-top:28px}.hero .button{padding:16px 22px}.site-header nav>a{font-size:19px}.site-header .brand small{max-width:150px}.card{border-radius:18px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1!important;translate:none!important}}

/* Full-width photographic cover and the Bomberitos photo wall. */
.hero{position:relative;display:flex;align-items:center;isolation:isolate;min-height:850px;max-height:none;padding:160px 0 55px}
.hero .hero-photo{position:absolute;inset:0;width:100%;height:100%;margin:0;border-radius:0;z-index:0;animation:none;pointer-events:none}
.hero .hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 44%;opacity:.48;transform:none;transition:none}
.hero .hero-photo:after{inset:0;background:linear-gradient(90deg,rgba(9,22,52,.83) 0%,rgba(9,22,52,.43) 48%,rgba(9,22,52,.08) 100%)}
.hero .hero-copy{position:relative;z-index:2;width:min(790px,70%);padding:25px 0 20px;margin-left:7%}
.hero h1{font-size:clamp(84px,8vw,126px);text-shadow:0 4px 28px #06112a25}
.hero .hero-copy>p:not(.eyebrow){color:#f0f3f9;font-size:19px}
.hero .hero-foot{max-width:525px;color:#edf1fa}
.moments.section{max-width:none;background:var(--navy);color:#fff;padding:80px 3% 65px}
.moments .section-heading{display:block;text-align:center;margin:0 auto 55px;max-width:1500px}
.moments .eyebrow{color:var(--yellow);letter-spacing:.22em;font-size:13px;padding-bottom:17px;border-bottom:2px solid var(--red);margin-bottom:30px}
.moments h2{font-size:clamp(48px,5vw,76px)}
.moments h2 em{color:var(--yellow)}
.gallery-intro{color:#c6cede;font-size:18px;line-height:1.7;margin-top:25px}
.moments .gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:1700px;margin:auto;align-items:stretch}
.moments .gallery figure,.moments .gallery figure:nth-child(even){position:relative;margin:0;aspect-ratio:3/4;overflow:hidden;border-radius:4px;background:#1d3158;transform:none;isolation:isolate}
.moments .gallery figure:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(6,17,42,.92));z-index:1;pointer-events:none}
.moments .gallery figure img{height:100%;width:100%;object-fit:cover;border-radius:0;box-shadow:none;transition:transform .7s var(--ease-bomberitos)}
.moments .gallery figcaption{position:absolute;bottom:0;left:0;right:0;padding:25px 22px;z-index:2;margin:0;border-bottom:4px solid var(--red)}
.moments .gallery figure:nth-child(even) figcaption{border-color:var(--yellow)}
.moments .gallery figcaption span{display:block;color:var(--yellow);font-size:11px;font-weight:700;letter-spacing:.17em;margin-bottom:8px}
.moments .gallery figcaption strong{display:block;color:#fff;font-size:clamp(17px,1.5vw,24px);line-height:1.3;font-weight:700}
.moments .gallery-footer{text-align:center;margin-top:37px}.moments .gallery-footer .text-link{color:var(--yellow)}
@media(hover:hover) and (pointer:fine){.moments .gallery figure:hover,.moments .gallery figure:nth-child(even):hover{transform:none}.moments .gallery figure:hover img{transform:scale(1.055);box-shadow:none}}
@media(max-width:1000px){.hero .hero-copy{width:78%}.moments .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.moments .gallery figcaption strong{font-size:23px}}
@media(max-width:760px){.hero{min-height:760px;padding:130px 0 45px}.hero .hero-copy{width:86%;margin:0 7%;padding:20px 0}.hero h1{font-size:clamp(62px,18vw,100px)}.hero .hero-photo{margin:0;height:100%;border-radius:0}.hero .hero-photo>img{object-position:58% center;opacity:.4}.hero .hero-photo:after{background:linear-gradient(90deg,#09163485,#09163435)}.hero .hero-copy>p:not(.eyebrow){font-size:17px}.hero .hero-foot{font-size:10px}.moments.section{padding:60px 5% 50px}.moments .section-heading{margin-bottom:35px}.moments .eyebrow{font-size:10px;letter-spacing:.14em}.moments h2{font-size:48px}.gallery-intro{font-size:16px}.moments .gallery{gap:12px}.moments .gallery figure{aspect-ratio:3/4.7}.moments .gallery figcaption{padding:15px 12px}.moments .gallery figcaption strong{font-size:16px}.moments .gallery figcaption span{font-size:9px;letter-spacing:.09em}}
@media(max-width:360px){.moments .gallery{grid-template-columns:1fr}.moments .gallery figure{aspect-ratio:3/4}.moments .gallery figcaption strong{font-size:22px}}
@media(prefers-reduced-motion:reduce){.moments .gallery figure img{transition:none}.moments .gallery figure:hover img{transform:none}}

/* Client revision: full brand name and clear service hierarchy. */
.site-header .brand .brand-name{display:block;font-size:19px;line-height:1.15}
.site-header .brand .brand-prefix,footer .brand .brand-prefix{display:block;margin:0 0 3px;font-size:11px;line-height:1.15;letter-spacing:.21em;font-weight:800;color:var(--red)}
footer .brand .brand-prefix{color:var(--yellow)}
.card .card-body .service-number{font-size:11px;min-height:0;margin:0 0 16px;font-weight:700;letter-spacing:.12em;color:var(--muted)}
.card .card-body .service-title{font-size:clamp(40px,4vw,60px);font-weight:800;line-height:.98;margin:0 0 19px;padding:0 0 20px;border-bottom:5px solid var(--red);color:var(--navy)}
.winter .card-body .service-title{border-color:var(--navy)}
.sport .card-body .service-title{border-color:var(--yellow)}
.card .card-body .service-tagline{min-height:0;font-weight:700;font-size:17px;line-height:1.4;color:var(--navy);margin:0 0 13px}
@media(min-width:961px) and (max-width:1200px){.site-header nav>a{padding:11px 9px;font-size:12px}.site-header .header-contact{padding-left:12px;gap:9px;font-size:12px}.site-header{gap:10px}.site-header .brand{gap:7px}.site-header .brand .brand-name{font-size:16px}.site-header .brand img{width:50px;height:50px}}
@media(max-width:760px){.site-header .brand .brand-name{font-size:16px}.site-header .brand .brand-prefix{font-size:10px}.card .card-body .service-title{font-size:52px}.hero .button{font-size:14px;gap:12px;padding-inline:18px}}

/* Registration remains directly accessible on mobile. */
@media(max-width:760px){.site-header .header-contact{display:flex;white-space:normal;line-height:1.2;text-align:center;padding:10px;min-height:44px;max-width:112px;font-size:12px;margin-left:auto}.site-header .header-contact>span{display:none}.site-header .menu{margin-left:0;min-width:42px;min-height:44px}.site-header .brand span{font-size:13px}.site-header .brand img{width:40px;height:40px}.site-header .brand{gap:6px}.site-header{gap:6px}}
@media(max-width:360px){.site-header .brand img{width:32px;height:32px}.site-header .header-contact{font-size:11px;max-width:96px;padding:8px}.site-header .brand span{font-size:12px}}
