/* Freedom Storm — hoja de estilos estática, reconstruida a partir del HTML original. */
:root {
  color-scheme: light;
  --background:#f8f9fb; --foreground:#131922; --card:#fff; --muted:#f0f2f5;
  --muted-foreground:#626d7a; --border:#dce1e7; --input:#d1d8e0; --ring:#1d6cec;
  --primary:#155fe8; --primary-foreground:#fff; --secondary:#f4a623; --secondary-foreground:#141922;
  --dark:#10151c; --dark-foreground:#f6f8fb; --dark-muted:#a7b0bc; --dark-border:#2c3541;
  --dark-card:#191f28; --metal:#c0c7cf; --electric:#1669ef; --accent:#ffb12d;
  --font-sans:'Barlow',Arial,sans-serif; --font-display:'Archivo','Barlow',Arial,sans-serif;
  --shadow-glow:0 0 25px rgba(22,105,239,.22); --shadow-card:0 8px 25px rgba(17,24,39,.07);
}
*,*::before,*::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}
html{scroll-behavior:smooth;scroll-padding-top:5.5rem;-webkit-text-size-adjust:100%;tab-size:4}
body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,figure{margin:0}
img,svg,video,canvas{display:block;vertical-align:middle}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:inherit}
button,input,select,textarea{font:inherit;color:inherit;margin:0}
button{cursor:pointer;background:transparent}
button:disabled{cursor:not-allowed;opacity:.55}
input,select,textarea{background-image:none}
textarea{resize:vertical}
summary{display:list-item}
::selection{background:rgba(22,105,239,.22);color:inherit}

.\!px-8{padding-left:2rem !important;padding-right:2rem !important}
.\!py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}
.\!py-4{padding-top:1rem !important;padding-bottom:1rem !important}
.\!text-base{font-size:1rem !important;line-height:1.5rem !important}
.absolute{position:absolute}
.backdrop-blur{backdrop-filter:blur(8px)}
.backdrop-blur-md{backdrop-filter:blur(12px)}
.before\:absolute::before{position:absolute}
.before\:bg-secondary::before{background-color:#f4a623}
.before\:bottom-4::before{bottom:1rem}
.before\:left-7::before{left:1.75rem}
.before\:top-4::before{top:1rem}
.before\:w-px::before{width:1px}
.bg-accent{background-color:#ffb12d}
.bg-background{background-color:#f8f9fb}
.bg-card{background-color:#ffffff}
.bg-dark{background-color:#10151c}
.bg-dark-card{background-color:#191f28}
.bg-dark\/60{background-color:rgba(16,21,28,0.6)}
.bg-dark\/90{background-color:rgba(16,21,28,0.9)}
.bg-electric{background-color:#1669ef}
.bg-hero-overlay{background:linear-gradient(90deg,rgba(7,11,17,.94) 0%,rgba(7,11,17,.78) 42%,rgba(7,11,17,.26) 100%),linear-gradient(0deg,rgba(7,11,17,.68),transparent 65%)}
.bg-metal{background-color:#c0c7cf}
.bg-muted{background-color:#f0f2f5}
.bg-secondary{background-color:#f4a623}
.block{display:block}
.border{border-width:1px}
.border-b{border-bottom-width:1px}
.border-border{border-color:#dce1e7}
.border-dark-border{border-color:#2c3541}
.border-input{border-color:#d1d8e0}
.border-primary{border-color:#155fe8}
.border-secondary{border-color:#f4a623}
.border-t{border-top-width:1px}
.border-t-4{border-top-width:4px}
.cursor-pointer{cursor:pointer}
.duration-300{transition-duration:300ms}
.duration-500{transition-duration:500ms}
.fixed{position:fixed}
.flex{display:flex}
.flex-1{flex:1 1 0%}
.flex-col{flex-direction:column}
.focus\:border-primary:focus{border-color:#155fe8}
.focus\:ring-2:focus{box-shadow:0 0 0 2px var(--ring)}
.focus\:ring-ring\/30:focus{box-shadow:0 0 0 3px rgba(29,108,235,.30)}
.font-black{font-weight:900}
.font-bold{font-weight:700}
.font-display{font-family:'Archivo','Barlow',sans-serif}
.font-extrabold{font-weight:800}
.font-medium{font-weight:500}
.font-semibold{font-weight:600}
.gap-10{gap:2.5rem}
.gap-12{gap:3rem}
.gap-2{gap:0.5rem}
.gap-3{gap:0.75rem}
.gap-4{gap:1rem}
.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}
.grid{display:grid}
.group:hover .group-hover\:scale-\[1\.02\]{transform:scale(1.02)}
.group[open] .group-open\:rotate-180{transform:rotate(180deg)}
.h-1{height:0.25rem}
.h-12{height:3rem}
.h-14{height:3.5rem}
.h-16{height:4rem}
.h-4{height:1rem}
.h-5{height:1.25rem}
.h-6{height:1.5rem}
.h-7{height:1.75rem}
.h-8{height:2rem}
.h-80{height:20rem}
.h-9{height:2.25rem}
.h-full{height:100%}
.hidden{display:none}
.hover\:-translate-y-0\.5:hover{transform:translateY(calc(0.125rem * -1))}
.hover\:-translate-y-1:hover{transform:translateY(calc(0.25rem * -1))}
.hover\:bg-dark-card:hover{background-color:#191f28}
.hover\:bg-primary:hover{background-color:#155fe8}
.hover\:border-primary:hover{border-color:#155fe8}
.hover\:border-secondary:hover{border-color:#f4a623}
.hover\:brightness-105:hover{filter:brightness(1.05)}
.hover\:brightness-110:hover{filter:brightness(1.10)}
.hover\:text-dark-foreground:hover{color:#f6f8fb}
.hover\:text-primary-foreground:hover{color:#ffffff}
.hover\:text-secondary:hover{color:#f4a623}
.inline-block{display:inline-block}
.inline-flex{display:inline-flex}
.inset-0{top:0;right:0;bottom:0;left:0}
.inset-x-0{left:0;right:0}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.leading-\[1\.05\]{line-height:1.05}
.leading-tight{line-height:1.25}
.list-none{list-style:none}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-4xl{max-width:56rem}
.max-w-6xl{max-width:72rem}
.max-w-7xl{max-width:80rem}
.max-w-xl{max-width:36rem}
.max-w-xs{max-width:20rem}
.mb-1{margin-bottom:0.25rem}
.mb-12{margin-bottom:3rem}
.mb-3{margin-bottom:0.75rem}
.mb-4{margin-bottom:1rem}
.mb-5{margin-bottom:1.25rem}
.mb-6{margin-bottom:1.5rem}
.min-h-\[92vh\]{min-height:92vh}
.mt-1{margin-top:0.25rem}
.mt-10{margin-top:2.5rem}
.mt-12{margin-top:3rem}
.mt-2{margin-top:0.5rem}
.mt-3{margin-top:0.75rem}
.mt-4{margin-top:1rem}
.mt-5{margin-top:1.25rem}
.mt-6{margin-top:1.5rem}
.mt-7{margin-top:1.75rem}
.mt-8{margin-top:2rem}
.mx-auto{margin-left:auto;margin-right:auto}
.object-contain{object-fit:contain}
.object-cover{object-fit:cover}
.opacity-20{opacity:.2}
.open\:border-primary[open]{border-color:#155fe8}
.outline-none{outline:2px solid transparent;outline-offset:2px}
.overflow-hidden{overflow:hidden}
.p-2{padding:0.5rem}
.p-6{padding:1.5rem}
.p-7{padding:1.75rem}
.pb-10{padding-bottom:2.5rem}
.pb-16{padding-bottom:4rem}
.place-items-center{place-items:center}
.pt-16{padding-top:4rem}
.pt-24{padding-top:6rem}
.pt-8{padding-top:2rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.py-24{padding-top:6rem;padding-bottom:6rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.relative{position:relative}
.rounded{border-radius:.25rem}
.rounded-2xl{border-radius:1rem}
.rounded-full{border-radius:9999px}
.rounded-lg{border-radius:.5rem}
.rounded-md{border-radius:.375rem}
.rounded-xl{border-radius:.75rem}
.self-start{align-self:flex-start}
.shadow-card{box-shadow:0 8px 25px rgba(17,24,39,.07)}
.shadow-glow{box-shadow:0 0 25px rgba(22,105,239,.22)}
.shrink-0{flex-shrink:0}
.space-y-2 > :not([hidden]) ~ :not([hidden]){margin-top:0.5rem}
.space-y-3 > :not([hidden]) ~ :not([hidden]){margin-top:0.75rem}
.space-y-4 > :not([hidden]) ~ :not([hidden]){margin-top:1rem}
.space-y-5 > :not([hidden]) ~ :not([hidden]){margin-top:1.25rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.text-5xl{font-size:3rem;line-height:1}
.text-accent{color:#ffb12d}
.text-accent-foreground{color:#141922}
.text-center{text-align:center}
.text-dark{color:#10151c}
.text-dark-foreground{color:#f6f8fb}
.text-dark-muted{color:#a7b0bc}
.text-foreground{color:#131922}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-metal{color:#c0c7cf}
.text-muted-foreground{color:#626d7a}
.text-primary{color:#155fe8}
.text-primary-foreground{color:#ffffff}
.text-secondary{color:#f4a623}
.text-secondary-foreground{color:#141922}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-xs{font-size:.75rem;line-height:1rem}
.top-0{top:0}
.tracking-\[0\.25em\]{letter-spacing:0.25em}
.tracking-tight{letter-spacing:-.025em}
.tracking-wide{letter-spacing:.025em}
.tracking-widest{letter-spacing:.1em}
.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter}
.transition-all{transition-property:all}
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke}
.transition-transform{transition-property:transform}
.uppercase{text-transform:uppercase}
.w-12{width:3rem}
.w-14{width:3.5rem}
.w-16{width:4rem}
.w-4{width:1rem}
.w-5{width:1.25rem}
.w-6{width:1.5rem}
.w-7{width:1.75rem}
.w-8{width:2rem}
.w-9{width:2.25rem}
.w-full{width:100%}
.z-10{z-index:10}
.z-50{z-index:50}
@media (min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:768px){.md\:flex-row{flex-direction:row}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:pb-24{padding-bottom:6rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}
@media (min-width:1024px){.lg\:flex{display:flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:hidden{display:none}.lg\:inline-flex{display:inline-flex}}

/* Identidad visual Freedom Storm: metal, azul eléctrico y naranja industrial. */
.slats{background-image:repeating-linear-gradient(180deg,rgba(192,199,207,.13) 0,rgba(192,199,207,.13) 1px,transparent 1px,transparent 7px);background-size:100% 7px}
.bg-hero-overlay{background:linear-gradient(90deg,rgba(7,11,17,.95) 0%,rgba(7,11,17,.82) 42%,rgba(7,11,17,.30) 100%),linear-gradient(0deg,rgba(7,11,17,.72),transparent 70%)}
#inicio{isolation:isolate;padding-top:4rem}
#inicio>.hero-image{z-index:-2}
#inicio>.bg-hero-overlay{z-index:-1}
#inicio:has(.hero-image.image-missing){background:radial-gradient(ellipse at 80% 38%,rgba(22,105,239,.25),transparent 42%),linear-gradient(135deg,#10151c,#161f2b 70%,#0b0f14)}
header{background:rgba(16,21,28,.92);border-color:var(--dark-border)}
header .mx-auto{position:relative}
header nav a{white-space:nowrap}
header nav a:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}
button,a{ -webkit-tap-highlight-color:transparent }
.reveal{opacity:1;transform:none}
.js-reveal .reveal{opacity:0;transform:translateY(14px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.3,1)}
.js-reveal .reveal.is-visible{opacity:1;transform:translateY(0)}
.slats{pointer-events:none}
#trabajos .gallery-photo{position:relative;min-height:20rem;background:linear-gradient(145deg,#10151c,#1c2633);}
#trabajos .gallery-photo img{background:linear-gradient(145deg,#111923,#273443);}
#trabajos .gallery-photo.is-placeholder::before{content:attr(data-placeholder);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;color:#a7b0bc;text-align:center;font:600 .875rem/1.5 var(--font-sans);letter-spacing:.04em;background:repeating-linear-gradient(180deg,rgba(192,199,207,.08) 0,rgba(192,199,207,.08) 2px,transparent 2px,transparent 12px),radial-gradient(circle at center,rgba(22,105,239,.14),transparent 65%)}
#trabajos .gallery-photo.is-placeholder img{position:relative;z-index:0;opacity:.22}
#trabajos .gallery-photo.is-placeholder::before{z-index:1}
#trabajos .gallery-photo.is-placeholder::after{z-index:2;content:'FS';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:900 3rem var(--font-display);color:rgba(244,166,35,.22);pointer-events:none}
.lightbox[hidden]{display:none!important}
.lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem;background:rgba(4,7,11,.94);backdrop-filter:blur(8px)}
.lightbox-close{position:absolute;top:1rem;right:1.25rem;width:3rem;height:3rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;color:white;font-size:2rem;line-height:1;display:grid;place-items:center;background:rgba(255,255,255,.06)}
.lightbox-figure{max-width:min(1100px,94vw);max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:1rem}
.lightbox-figure img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:.6rem;box-shadow:0 20px 80px rgba(0,0,0,.5)}
.lightbox-figure figcaption{color:#eef2f7;text-align:center;font-size:.95rem}
#faq details{transition:border-color .2s ease,box-shadow .2s ease}
#faq summary{gap:1rem;cursor:pointer}
#faq summary::-webkit-details-marker{display:none}
#faq summary svg{transition:transform .25s ease}
#faq details[open]{border-color:var(--primary);box-shadow:0 8px 25px rgba(17,24,39,.06)}
#faq details[open] summary svg{transform:rotate(180deg)}
#contact-form label{color:var(--foreground)}
#contact-form input,#contact-form select,#contact-form textarea{width:100%;border:1px solid var(--input);border-radius:.5rem;background:var(--background);padding:.75rem 1rem;color:var(--foreground);transition:border-color .2s,box-shadow .2s}
#contact-form input:focus,#contact-form select:focus,#contact-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(29,108,235,.14)}
#contact-form select{appearance:auto}
#contact-form label span{display:block;margin-bottom:.25rem}
#contact-form button{min-height:3rem}
footer{border-top:1px solid rgba(255,255,255,.04)}
footer nav a:hover{color:var(--dark-foreground)}
button,summary{touch-action:manipulation}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.js-reveal .reveal{opacity:1;transform:none}}
@media(max-width:767px){
  #inicio{min-height:850px;min-height:92svh}
  #inicio>.bg-hero-overlay{background:linear-gradient(90deg,rgba(7,11,17,.92),rgba(7,11,17,.63)),linear-gradient(0deg,rgba(7,11,17,.78),transparent 75%)}
  header nav.mobile-open{position:absolute;top:100%;left:-1rem;right:-1rem;z-index:60;display:flex!important;flex-direction:column;align-items:stretch;gap:0;padding:.75rem 1rem 1rem;background:#10151c;border-bottom:1px solid #2c3541;box-shadow:0 14px 24px rgba(0,0,0,.22)}
  header nav.mobile-open a{padding:.75rem .25rem;border-bottom:1px solid rgba(255,255,255,.055)}
  header nav.mobile-open a:last-child{border-bottom:0}
  #trabajos .gallery-photo{min-height:17rem}
  .lightbox{padding:1rem}
}
@media(max-width:420px){
  #inicio h1{font-size:2.25rem;line-height:1.05}
  #contacto a.text-2xl{font-size:1.25rem}
}
/* El pseudo-elemento del timeline necesita contenido para dibujar la línea vertical. */
.before\:absolute::before{content:""}
#trabajos .gallery-photo.is-placeholder img{position:relative;z-index:0;opacity:.22}
#trabajos .gallery-photo.is-placeholder::before{z-index:1}
#trabajos .gallery-photo.is-placeholder::after{z-index:2}
