/* =========================================================
   COMPSYS SOLUTIONS — Design tokens
   ========================================================= */
:root{
	--bg:#FFFFFF;
	--surface:#F4F6FB;
	--surface-dark:#0A1330;
	--ink:#10204A;
	--ink-secondary:#4B5468;
	--accent:#F02222;
	--accent-strong:#D81A1F;
	--navy:#142776;
	--graphite:#545454;
	--white:#FFFFFF;

	--font-heading:'Space Grotesk', sans-serif;
	--font-body:'Plus Jakarta Sans', sans-serif;

	--space-xs:8px;
	--space-sm:16px;
	--space-md:32px;
	--space-lg:64px;
	--space-xl:96px;

	--radius-sm:8px;
	--radius-md:16px;
	--radius-pill:999px;

	--container:1240px;
	--shadow-navy: 0 20px 40px -18px rgba(10,19,48,.35);
	--shadow-navy-sm: 0 10px 24px -12px rgba(10,19,48,.28);
	--ease: cubic-bezier(.16,.84,.44,1);
}

/* =========================================================
   Reset
   ========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;max-width:100%;overflow-x:hidden;}
body{
	margin:0;
	background:var(--bg);
	color:var(--ink);
	font-family:var(--font-body);
	font-weight:400;
	font-size:16px;
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden;
	max-width:100%;
	position:relative;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;font-size:1rem;}

:where(h1,h2,h3,h4,h5,h6){
	font-family:var(--font-heading);
	font-weight:700;
	line-height:1.08;
	margin:0;
	color:var(--ink);
	letter-spacing:-0.01em;
}
:where(p){margin:0;}

.container{
	width:100%;
	max-width:var(--container);
	margin:0 auto;
	padding:0 24px;
}

.eyebrow{
	display:inline-flex;
	align-items:center;
	gap:8px;
	font-family:var(--font-heading);
	font-size:13px;
	font-weight:600;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:var(--accent-strong);
}
.eyebrow::before{
	content:'';
	width:22px;height:2px;
	background:var(--accent-strong);
	border-radius:2px;
}
.eyebrow.on-dark{color:#FF8A8A;}
.eyebrow.on-dark::before{background:#FF8A8A;}

.section{padding:var(--space-xl) 0;}
.section-head{max-width:640px;margin-bottom:var(--space-md);}
.section-head h2{font-size:clamp(28px,4vw,44px);margin-top:14px;}
.section-head p{margin-top:14px;color:var(--ink-secondary);font-size:1.05rem;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

.bg-surface{background:var(--surface);}

/* =========================================================
   Buttons
   ========================================================= */
.btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	padding:16px 30px;
	border-radius:var(--radius-pill);
	font-family:var(--font-heading);
	font-weight:600;
	font-size:15px;
	border:2px solid transparent;
	transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease);
	white-space:nowrap;
}
.btn-primary{
	background:var(--accent-strong);
	color:#fff;
	box-shadow:var(--shadow-navy-sm);
}
.btn-primary:hover{
	transform:translateY(-3px);
	box-shadow:0 16px 30px -10px rgba(216,26,31,.55);
}
.btn-outline{
	background:transparent;
	border-color:rgba(16,32,74,.2);
	color:var(--ink);
}
.btn-outline:hover{border-color:var(--navy);background:rgba(20,39,118,.05);}
.btn-outline.on-dark{border-color:rgba(255,255,255,.35);color:#fff;}
.btn-outline.on-dark:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.btn-whatsapp{
	background:#25D366;
	color:#fff;
}
.btn-whatsapp:hover{transform:translateY(-3px);box-shadow:0 16px 30px -10px rgba(37,211,102,.55);}
.btn-sm{padding:11px 22px;font-size:13px;}

/* =========================================================
   Header
   ========================================================= */
.site-header{
	position:fixed;
	top:0;left:0;right:0;
	z-index:100;
	padding:18px 0;
	transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
.site-header.is-scrolled{
	background:rgba(255,255,255,.9);
	backdrop-filter:blur(12px);
	padding:12px 0;
	box-shadow:0 10px 30px -20px rgba(10,19,48,.4);
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.site-logo{display:inline-flex;align-items:center;}
.site-logo img{
	height:64px;
	width:auto;
	transition:height .3s var(--ease), filter .3s var(--ease);
	filter:drop-shadow(0 2px 6px rgba(0,0,0,.5)) drop-shadow(0 0 18px rgba(0,0,0,.25));
}
.site-header.is-scrolled .site-logo img{
	height:60px;
	filter:drop-shadow(0 1px 3px rgba(10,19,48,.25));
}

.primary-nav{display:flex;align-items:center;gap:32px;}
.primary-nav a{
	font-family:var(--font-heading);
	font-weight:600;
	font-size:14.5px;
	color:#fff;
	text-shadow:0 1px 4px rgba(0,0,0,.35);
	position:relative;
	padding:6px 0;
	transition:color .35s var(--ease), text-shadow .35s var(--ease);
}
.primary-nav a::after{
	content:'';
	position:absolute;left:0;bottom:0;
	width:0;height:2px;
	background:var(--accent);
	transition:width .3s var(--ease);
}
.primary-nav a:hover::after{width:100%;}
.site-header.is-scrolled .primary-nav a{color:var(--ink);text-shadow:none;}
.site-header.is-scrolled .primary-nav a::after{background:var(--accent-strong);}

.header-actions{display:flex;align-items:center;gap:14px;}
.header-actions .btn-outline{
	border-color:rgba(255,255,255,.55);
	color:#fff;
}
.header-actions .btn-outline:hover{border-color:#fff;background:rgba(255,255,255,.14);}
.site-header.is-scrolled .header-actions .btn-outline{
	border-color:rgba(16,32,74,.2);
	color:var(--ink);
}
.site-header.is-scrolled .header-actions .btn-outline:hover{border-color:var(--navy);background:rgba(20,39,118,.05);}
.nav-toggle{
	display:none;
	width:44px;height:44px;
	border-radius:var(--radius-pill);
	border:1.5px solid rgba(16,32,74,.15);
	background:#fff;
	align-items:center;justify-content:center;
	flex-direction:column;
	gap:5px;
}
.nav-toggle span{width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease), opacity .3s var(--ease);}
.nav-toggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-active span:nth-child(2){opacity:0;}
.nav-toggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* =========================================================
   Hero
   ========================================================= */
.hero{
	position:relative;
	min-height:100vh;
	display:flex;
	align-items:center;
	padding:150px 0 var(--space-lg);
	background:var(--surface-dark);
	overflow:hidden;
	color:#fff;
}
.hero::before{
	content:'';
	position:absolute;inset:0;
	background-image:url('../img/hero-building.jpg');
	background-size:cover;
	background-position:center;
	opacity:.28;
	filter:grayscale(30%);
	z-index:0;
}
.hero::after{
	content:'';
	position:absolute;inset:0;
	background:
		radial-gradient(circle at 85% 15%, rgba(240,34,34,.28), transparent 45%),
		linear-gradient(180deg, rgba(10,19,48,.55) 0%, rgba(10,19,48,.88) 55%, #0A1330 100%),
		linear-gradient(120deg, #0A1330 20%, #142776 100%);
	z-index:0;
}
.hero .container{position:relative;z-index:2;}
.hero-grid{
	display:grid;
	grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
	gap:var(--space-lg);
	align-items:center;
}
.hero-copy,.hero-carousel{min-width:0;}
.hero-copy h1{
	font-size:clamp(34px,4.6vw,60px);
	color:#fff;
	margin-top:16px;
}
.hero-copy h1 em{
	font-style:normal;
	color:var(--accent);
	background:linear-gradient(180deg, transparent 62%, rgba(240,34,34,.35) 62%);
}
.hero-copy p{
	margin-top:20px;
	max-width:520px;
	font-size:1.1rem;
	color:rgba(255,255,255,.78);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:36px;}
.hero-stats{display:flex;gap:var(--space-md);margin-top:var(--space-lg);}
.hero-stats div strong{display:block;font-family:var(--font-heading);font-size:30px;color:#fff;}
.hero-stats div span{font-size:13px;color:rgba(255,255,255,.6);}

/* Hero services carousel */
.hero-carousel{position:relative;}
.hero-carousel-viewport{overflow:hidden;border-radius:var(--radius-md);}
.hero-carousel-track{display:flex;transition:transform .6s var(--ease);}
.hero-slide{
	flex:0 0 100%;
	background:rgba(255,255,255,.06);
	border:1px solid rgba(255,255,255,.14);
	backdrop-filter:blur(10px);
	border-radius:var(--radius-md);
	padding:32px;
	min-height:280px;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
}
.hero-slide .slide-icon{
	width:56px;height:56px;
	border-radius:14px;
	background:linear-gradient(135deg, var(--accent-strong), #8f0f12);
	display:flex;align-items:center;justify-content:center;
	box-shadow:0 10px 24px -8px rgba(240,34,34,.5);
}
.hero-slide .slide-icon svg{width:28px;height:28px;stroke:#fff;}
.hero-slide h3{color:#fff;font-size:22px;margin-top:20px;}
.hero-slide p{color:rgba(255,255,255,.68);margin-top:10px;font-size:14.5px;line-height:1.55;}
.hero-slide .slide-tag{
	align-self:flex-start;
	margin-top:18px;
	font-size:11.5px;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:var(--accent);
	background:rgba(240,34,34,.14);
	padding:6px 14px;
	border-radius:var(--radius-pill);
}
.hero-carousel-nav{display:flex;align-items:center;justify-content:space-between;margin-top:20px;}
.hero-carousel-dots{display:flex;gap:8px;}
.hero-carousel-dots button{
	width:8px;height:8px;border-radius:50%;
	background:rgba(255,255,255,.3);border:none;padding:0;
	transition:all .3s var(--ease);
}
.hero-carousel-dots button.is-active{width:26px;border-radius:5px;background:var(--accent);}
.hero-carousel-arrows{display:flex;gap:10px;}
.hero-carousel-arrows button{
	width:38px;height:38px;border-radius:50%;
	border:1px solid rgba(255,255,255,.25);
	background:rgba(255,255,255,.06);
	color:#fff;
	display:flex;align-items:center;justify-content:center;
	transition:background .3s var(--ease), transform .3s var(--ease);
}
.hero-carousel-arrows button:hover{background:var(--accent-strong);border-color:var(--accent-strong);transform:scale(1.06);}

/* Online buy emphasis strip */
.buy-online-strip{
	position:relative;z-index:2;
	margin-top:var(--space-lg);
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:24px;
	flex-wrap:wrap;
	background:linear-gradient(90deg, rgba(240,34,34,.16), rgba(240,34,34,.04));
	border:1px solid rgba(240,34,34,.35);
	border-radius:var(--radius-md);
	padding:22px 28px;
}
.buy-online-strip .buy-copy{display:flex;align-items:center;gap:16px;}
.buy-online-strip .buy-copy .pulse-dot{
	width:12px;height:12px;border-radius:50%;background:var(--accent);
	box-shadow:0 0 0 0 rgba(240,34,34,.6);
	animation:pulseDot 1.8s infinite;
	flex-shrink:0;
}
.buy-online-strip strong{font-family:var(--font-heading);color:#fff;font-size:17px;}
.buy-online-strip span{color:rgba(255,255,255,.7);font-size:14px;}
@keyframes pulseDot{
	0%{box-shadow:0 0 0 0 rgba(240,34,34,.55);}
	70%{box-shadow:0 0 0 14px rgba(240,34,34,0);}
	100%{box-shadow:0 0 0 0 rgba(240,34,34,0);}
}

/* =========================================================
   Trust marquee (brands / clients)
   ========================================================= */
.marquee-wrap{
	padding:38px 0;
	background:var(--bg);
	border-bottom:1px solid rgba(16,32,74,.08);
	overflow:hidden;
}
.marquee-label{
	text-align:center;
	font-size:12.5px;
	font-weight:700;
	letter-spacing:.12em;
	text-transform:uppercase;
	color:var(--ink-secondary);
	margin-bottom:22px;
}
.marquee-track{
	display:flex;
	width:max-content;
	gap:64px;
	animation:marqueeScroll 32s linear infinite;
	align-items:center;
}
.marquee-track img{height:34px;width:auto;object-fit:contain;filter:grayscale(100%);opacity:.55;transition:opacity .3s, filter .3s;}
.marquee-track img:hover{filter:grayscale(0%);opacity:1;}
@keyframes marqueeScroll{
	0%{transform:translateX(0);}
	100%{transform:translateX(-50%);}
}

/* =========================================================
   Servicios — bento grid
   ========================================================= */
.services-grid{
	display:grid;
	grid-template-columns:repeat(4, minmax(0,1fr));
	gap:20px;
}
.service-card{
	position:relative;
	background:var(--surface);
	border-radius:var(--radius-md);
	padding:20px 20px 24px;
	grid-column:span 2;
	display:flex;
	flex-direction:column;
	transition:transform .4s var(--ease), box-shadow .4s var(--ease), background .4s var(--ease);
	overflow:hidden;
}
.service-card::after{
	content:'';
	position:absolute;right:-30px;bottom:-30px;
	width:120px;height:120px;
	background:radial-gradient(circle, rgba(240,34,34,.12), transparent 70%);
	opacity:0;
	transition:opacity .4s var(--ease);
	pointer-events:none;
}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-navy-sm);background:#fff;}
.service-card:hover::after{opacity:1;}

/* image thumbnail (regular cards) */
.service-media{
	border-radius:12px;
	overflow:hidden;
	margin:-20px -20px 0;
	aspect-ratio:4/3;
	position:relative;
}
.service-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.service-card:hover .service-media img{transform:scale(1.06);}
.service-card .service-icon{
	margin-top:-32px;
	margin-left:4px;
	position:relative;
	z-index:2;
	border:3px solid var(--bg);
}

.service-body{display:flex;flex-direction:column;flex:1;padding-top:14px;}

/* featured cards: full-bleed photo background */
.service-card.is-featured{
	grid-column:span 2;
	color:#fff;
	min-height:320px;
	justify-content:flex-end;
	padding:24px;
}
.service-media-bg{
	position:absolute;inset:0;
	background-size:cover;
	background-position:center;
	transition:transform .6s var(--ease);
	z-index:0;
}
.service-card.is-featured:hover .service-media-bg{transform:scale(1.06);}
.service-media-scrim{
	position:absolute;inset:0;
	background:
		linear-gradient(180deg, rgba(10,19,48,.62) 0%, rgba(10,19,48,.7) 30%, rgba(10,19,48,.93) 68%, #0A1330 100%),
		linear-gradient(90deg, rgba(10,19,48,.5) 0%, rgba(10,19,48,.15) 45%, transparent 70%);
	z-index:1;
}
.service-card.is-featured .service-icon,
.service-card.is-featured .service-body{position:relative;z-index:2;}
.service-card.is-featured .service-icon{margin-top:0;margin-left:0;margin-bottom:16px;border:none;background:rgba(255,255,255,.14);backdrop-filter:blur(4px);}
.service-card.is-featured .service-icon svg{stroke:#fff;}
.service-card.is-featured .service-body{padding-top:0;}
.service-card.is-featured h3{color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.45);}
.service-card.is-featured p{color:rgba(255,255,255,.85);text-shadow:0 1px 6px rgba(0,0,0,.4);}

.service-card:nth-child(n){grid-column:span 2;}
@media (min-width:900px){
	.service-card{grid-column:span 2;}
	.service-card:nth-child(1),.service-card:nth-child(2){grid-column:span 2;}
}
.service-icon{
	width:54px;height:54px;
	border-radius:14px;
	background:#fff;
	box-shadow:var(--shadow-navy-sm);
	display:flex;align-items:center;justify-content:center;
	flex-shrink:0;
}
.service-icon svg{width:26px;height:26px;stroke:var(--accent-strong);}
.service-card h3{font-size:19px;margin-bottom:8px;margin-top:14px;}
.service-card p{color:var(--ink-secondary);font-size:14.5px;line-height:1.6;flex:1;}
.service-card .service-link{
	margin-top:16px;
	display:inline-flex;align-items:center;gap:6px;
	font-family:var(--font-heading);font-weight:600;font-size:13.5px;
	color:var(--accent-strong);
}
.service-card.is-featured .service-link{color:var(--accent);}
.service-card .service-link svg{width:14px;height:14px;transition:transform .3s var(--ease);}
.service-card:hover .service-link svg{transform:translateX(4px);}

/* =========================================================
   Beneficios
   ========================================================= */
.benefits-layout{
	display:grid;
	grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
	gap:var(--space-lg);
	align-items:center;
}
.benefits-visual{
	position:relative;
	background:linear-gradient(160deg, var(--navy), var(--surface-dark));
	border-radius:24px;
	padding:44px 36px;
	color:#fff;
	overflow:hidden;
}
.benefits-visual::before{
	content:'';
	position:absolute;top:-40px;right:-40px;
	width:200px;height:200px;
	border:60px solid rgba(255,255,255,.06);
	border-radius:50%;
}
.benefits-visual .quote-mark{font-family:var(--font-heading);font-size:64px;color:var(--accent);line-height:1;}
.benefits-visual p{font-size:1.25rem;line-height:1.5;margin-top:10px;position:relative;z-index:1;}
.benefits-visual .quote-source{margin-top:24px;font-size:13.5px;color:rgba(255,255,255,.65);position:relative;z-index:1;}
.benefits-list{display:grid;gap:22px;}
.benefit-item{display:flex;gap:18px;align-items:flex-start;}
.benefit-item .benefit-icon{
	flex-shrink:0;
	width:46px;height:46px;
	border-radius:12px;
	background:rgba(240,34,34,.1);
	display:flex;align-items:center;justify-content:center;
}
.benefit-item .benefit-icon svg{width:22px;height:22px;stroke:var(--accent-strong);}
.benefit-item h4{font-size:16.5px;margin-bottom:4px;}
.benefit-item p{color:var(--ink-secondary);font-size:14.5px;line-height:1.55;}

/* =========================================================
   Proceso — timeline
   ========================================================= */
.process-timeline{
	display:grid;
	grid-template-columns:repeat(4, minmax(0,1fr));
	gap:24px;
	position:relative;
}
.process-timeline::before{
	content:'';
	position:absolute;
	top:27px;left:6%;right:6%;
	height:2px;
	background:repeating-linear-gradient(90deg, rgba(16,32,74,.18) 0 10px, transparent 10px 18px);
	z-index:0;
}
.process-step{position:relative;z-index:1;}
.process-step .step-number{
	width:56px;height:56px;
	border-radius:50%;
	background:var(--bg);
	border:2px solid var(--navy);
	color:var(--navy);
	font-family:var(--font-heading);font-weight:700;font-size:20px;
	display:flex;align-items:center;justify-content:center;
	margin-bottom:22px;
	transition:background .35s var(--ease), color .35s var(--ease);
}
.process-step:hover .step-number{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;}
.process-step h3{font-size:18px;margin-bottom:8px;}
.process-step p{color:var(--ink-secondary);font-size:14.5px;line-height:1.55;}

/* =========================================================
   FAQ
   ========================================================= */
.faq-list{max-width:840px;margin:0 auto;}
.faq-item{
	border-bottom:1px solid rgba(16,32,74,.12);
}
.faq-question{
	width:100%;
	display:flex;align-items:center;justify-content:space-between;
	gap:20px;
	padding:24px 4px;
	background:none;border:none;text-align:left;
	font-family:var(--font-heading);font-size:17px;font-weight:600;color:var(--ink);
}
.faq-question .faq-icon{
	flex-shrink:0;
	width:32px;height:32px;
	border-radius:50%;
	border:1.5px solid rgba(16,32,74,.2);
	display:flex;align-items:center;justify-content:center;
	position:relative;
}
.faq-question .faq-icon::before,.faq-question .faq-icon::after{
	content:'';position:absolute;background:var(--ink);border-radius:2px;
	transition:transform .35s var(--ease), opacity .35s var(--ease);
}
.faq-question .faq-icon::before{width:12px;height:2px;}
.faq-question .faq-icon::after{width:2px;height:12px;}
.faq-item.is-open .faq-question .faq-icon{background:var(--accent-strong);border-color:var(--accent-strong);}
.faq-item.is-open .faq-question .faq-icon::before,.faq-item.is-open .faq-question .faq-icon::after{background:#fff;}
.faq-item.is-open .faq-question .faq-icon::after{transform:rotate(90deg) scaleY(0);opacity:0;}
.faq-answer-wrap{
	max-height:0;
	overflow:hidden;
	transition:max-height .4s var(--ease);
}
.faq-answer-inner{overflow:hidden;}
.faq-answer{padding:0 4px 24px;color:var(--ink-secondary);font-size:15px;line-height:1.65;max-width:680px;}

/* =========================================================
   CTA final
   ========================================================= */
.cta-final{
	position:relative;
	background:linear-gradient(135deg, var(--surface-dark), var(--navy));
	color:#fff;
	border-radius:28px;
	padding:var(--space-xl) var(--space-lg);
	text-align:center;
	overflow:hidden;
}
.cta-final::before{
	content:'';position:absolute;inset:0;
	background:radial-gradient(circle at 20% 20%, rgba(240,34,34,.25), transparent 45%);
}
.cta-final .container{position:relative;z-index:1;padding:0;max-width:680px;}
.cta-final h2{color:#fff;font-size:clamp(28px,4vw,42px);}
.cta-final p{color:rgba(255,255,255,.75);margin-top:16px;font-size:1.05rem;}
.cta-final .hero-actions{justify-content:center;margin-top:32px;}

/* =========================================================
   Contacto
   ========================================================= */
.contact-layout{
	display:grid;
	grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
	gap:var(--space-lg);
}
.contact-info-card{
	background:var(--surface);
	border-radius:var(--radius-md);
	padding:36px;
}
.contact-info-item{display:flex;gap:16px;align-items:flex-start;margin-bottom:26px;}
.contact-info-item:last-child{margin-bottom:0;}
.contact-info-item .contact-icon{
	width:44px;height:44px;border-radius:12px;
	background:#fff;box-shadow:var(--shadow-navy-sm);
	display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.contact-info-item .contact-icon svg{width:20px;height:20px;stroke:var(--accent-strong);}
.contact-info-item h4{font-size:14.5px;color:var(--ink-secondary);font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em;}
.contact-info-item p, .contact-info-item a{font-size:16px;font-weight:600;font-family:var(--font-heading);}

.contact-form{background:#fff;border:1px solid rgba(16,32,74,.1);border-radius:var(--radius-md);padding:36px;box-shadow:var(--shadow-navy-sm);}
.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;}
.form-field{margin-bottom:18px;}
.form-field label{display:block;font-size:13px;font-weight:600;color:var(--ink-secondary);margin-bottom:8px;}
.form-field input,.form-field select,.form-field textarea{
	width:100%;
	padding:14px 16px;
	border-radius:10px;
	border:1.5px solid rgba(16,32,74,.15);
	background:var(--surface);
	color:var(--ink);
	transition:border-color .3s var(--ease), background .3s var(--ease);
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
	outline:none;
	border-color:var(--navy);
	background:#fff;
}
.form-field textarea{resize:vertical;min-height:120px;}
.form-status{
	margin-top:16px;
	padding:14px 16px;
	border-radius:10px;
	font-size:14px;
	font-weight:600;
	display:none;
}
.form-status.is-visible{display:block;}
.form-status.is-success{background:rgba(37,211,102,.12);color:#0e8a45;}
.form-status.is-error{background:rgba(240,34,34,.1);color:var(--accent-strong);}
.form-submit{width:100%;justify-content:center;margin-top:6px;}
.form-submit[disabled]{opacity:.7;pointer-events:none;}

/* =========================================================
   Footer
   ========================================================= */
.site-footer{background:var(--surface-dark);color:rgba(255,255,255,.7);padding:var(--space-lg) 0 var(--space-sm);}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr);gap:var(--space-md);padding-bottom:var(--space-lg);border-bottom:1px solid rgba(255,255,255,.1);}
.footer-brand img{height:52px;width:auto;margin-bottom:18px;}
.footer-brand p{font-size:14.5px;line-height:1.6;max-width:280px;color:rgba(255,255,255,.6);}
.footer-col h5{font-family:var(--font-heading);color:#fff;font-size:14.5px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:18px;}
.footer-col ul li{margin-bottom:12px;}
.footer-col a{font-size:14.5px;color:rgba(255,255,255,.65);transition:color .3s;}
.footer-col a:hover{color:#fff;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:24px;font-size:13px;color:rgba(255,255,255,.45);}

/* =========================================================
   WhatsApp floating button
   ========================================================= */
.whatsapp-float{
	position:fixed;
	right:24px;bottom:24px;
	z-index:200;
	width:60px;height:60px;
	border-radius:50%;
	background:#25D366;
	display:flex;align-items:center;justify-content:center;
	box-shadow:0 14px 30px -8px rgba(37,211,102,.6);
	transition:transform .35s var(--ease);
}
.whatsapp-float:hover{transform:scale(1.08);}
.whatsapp-float svg{width:30px;height:30px;fill:#fff;}
.whatsapp-float::before{
	content:'';
	position:absolute;inset:0;
	border-radius:50%;
	background:#25D366;
	animation:waPulse 2.4s infinite;
	z-index:-1;
}
@keyframes waPulse{
	0%{transform:scale(1);opacity:.55;}
	100%{transform:scale(1.7);opacity:0;}
}

/* =========================================================
   Scroll reveal
   ========================================================= */
.reveal{opacity:0;transform:translateY(28px);}
html.js .reveal{transition:none;}
html:not(.js) .reveal{opacity:1;transform:none;}
.reveal.is-visible{opacity:1;transform:none;}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1080px){
	.hero-grid{grid-template-columns:minmax(0,1fr);}
	.hero-copy p{max-width:640px;}
	.benefits-layout{grid-template-columns:minmax(0,1fr);}
	.contact-layout{grid-template-columns:minmax(0,1fr);}
	.services-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
	.service-card,.service-card.is-featured{grid-column:span 2;}
	.process-timeline{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:40px;}
	.process-timeline::before{display:none;}
	.footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
}
@media (max-width:760px){
	.primary-nav{
		position:fixed;top:0;right:0;bottom:0;
		width:min(320px, 82vw);
		background:#fff;
		flex-direction:column;
		align-items:flex-start;
		justify-content:flex-start;
		padding:110px 32px 32px;
		gap:26px;
		transform:translateX(100%);
		transition:transform .45s var(--ease);
		box-shadow:-20px 0 50px -20px rgba(10,19,48,.35);
	}
	.primary-nav.is-open{transform:translateX(0);}
	.primary-nav a{color:var(--ink) !important;text-shadow:none !important;}
	.primary-nav a::after{background:var(--accent-strong) !important;}
	.nav-toggle{display:flex;}
	.header-actions .btn-outline{display:none;}
	.services-grid{grid-template-columns:minmax(0,1fr);}
	.service-card{grid-column:span 1 !important;}
	.form-row{grid-template-columns:minmax(0,1fr);}
	.process-timeline{grid-template-columns:minmax(0,1fr);}
	.footer-grid{grid-template-columns:minmax(0,1fr);}
	.hero{padding-top:120px;}
	.buy-online-strip{flex-direction:column;align-items:flex-start;}
	.whatsapp-float{right:16px;bottom:16px;width:54px;height:54px;}
}

@media (prefers-reduced-motion: reduce){
	*{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
	.reveal{opacity:1 !important;transform:none !important;}
}
