/*
Theme Name: Deltasec
Theme URI: https://deltasec.example
Author: Deltasec
Description: Tema corporatiu de ciberseguretat per a petites i mitjanes empreses.
Version: 2.1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: deltasec
*/

:root {
  color-scheme: light;
  --bg: #f7f8fa;
  --surface: #fff;
  --surface-soft: #eaf1f8;
  --surface-dark: #10243b;
  --glass: rgba(255,255,255,.72);
  --glass-strong: rgba(249,252,255,.92);
  --text: #172433;
  --muted: #5d6b79;
  --accent: #1476d4;
  --accent-hover: #075eae;
  --accent-soft: #e4f1ff;
  --teal: #16a6a1;
  --border: #dce3ea;
  --shadow: 0 18px 48px rgba(22, 43, 66, .09);
  --shadow-hover: 0 24px 56px rgba(22, 43, 66, .15);
  --radius-sm: 12px;
  --radius: 20px;
  --radius-lg: 28px;
  --max: 1160px;
  --ease: cubic-bezier(.2, .75, .25, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; -webkit-text-size-adjust: 100%; }
body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  overflow-x: clip;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.menu-active { overflow: hidden; }
a { color: inherit; text-decoration: none; transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .25s var(--ease), box-shadow .25s var(--ease); }
a:hover { color: var(--accent); }
img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid rgba(20, 118, 212, .55); outline-offset: 4px; }
.container { width: min(100% - 48px, var(--max)); margin-inline: auto; }

/* Navegación */
.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  isolation: isolate;
  background: transparent;
  border-bottom: 1px solid rgba(220,227,234,.8);
  transition: box-shadow .25s ease;
}
.site-header::before {
  position:absolute;
  z-index:-1;
  inset:0;
  background:rgba(255,255,255,.72);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  content:"";
}
.site-header.scrolled { box-shadow: 0 8px 28px rgba(22,43,66,.08); }
.site-header.scrolled::before { background:rgba(255,255,255,.86); }
.nav-wrapper { display:flex; min-height:76px; align-items:center; justify-content:space-between; gap:24px; }
.logo { display:inline-flex; align-items:center; gap:10px; flex:none; color:var(--text); font-size:1.08rem; font-weight:800; letter-spacing:.04em; }
.logo:hover { color:var(--text); }
.logo-text span { color:var(--accent); }
.brand-logo-img { width:auto; height:34px; max-width:40px; object-fit:contain; }
.site-nav { margin-left:auto; }
.menu { display:flex; align-items:center; gap:clamp(14px,2.2vw,28px); margin:0; padding:0; list-style:none; }
.menu a { display:block; padding:9px 0; color:#536171; font-size:.86rem; font-weight:600; white-space:nowrap; }
.menu a:hover, .menu .current-menu-item > a { color:var(--accent); }
.menu a.nav-cta { padding:9px 17px; border:1px solid var(--accent); border-radius:999px; background:var(--accent); color:#fff; }
.menu a.nav-cta:hover { transform:translateY(-1px); background:var(--accent-hover); box-shadow:0 8px 20px rgba(20,118,212,.2); }
.nav-toggle { display:none; width:44px; height:44px; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:50%; background:var(--surface); color:var(--text); cursor:pointer; }
.hamburger-box { position:relative; display:block; width:19px; height:14px; }
.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after { position:absolute; left:0; width:19px; height:2px; border-radius:2px; background:currentColor; transition:transform .2s ease, top .2s ease, opacity .2s ease; }
.hamburger-inner { top:6px; }
.hamburger-inner::before, .hamburger-inner::after { content:""; }
.hamburger-inner::before { top:-6px; }
.hamburger-inner::after { top:6px; }
.nav-toggle[aria-expanded="true"] .hamburger-inner { background:transparent; }
.nav-toggle[aria-expanded="true"] .hamburger-inner::before { top:0; transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] .hamburger-inner::after { top:0; transform:rotate(-45deg); }

/* Tipografía y botones */
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3,h4 { color:var(--text); line-height:1.12; letter-spacing:-.035em; }
h1 { max-width:850px; margin-bottom:22px; font-size:clamp(2.7rem,6.1vw,5.25rem); font-weight:760; }
h2 { margin-bottom:16px; font-size:clamp(2rem,4vw,3.45rem); font-weight:730; }
h3 { margin-bottom:10px; font-size:1.2rem; font-weight:700; }
p { margin-bottom:16px; }
.lead { max-width:700px; color:var(--muted); font-size:clamp(1.05rem,1.65vw,1.27rem); line-height:1.72; }
.eyebrow { display:inline-flex; align-items:center; gap:9px; margin-bottom:14px; color:var(--accent); font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow::before { width:20px; height:2px; border-radius:2px; background:currentColor; content:""; }
.badge-status { display:inline-flex; align-items:center; gap:9px; margin-bottom:23px; padding:8px 13px; border:1px solid rgba(255,255,255,.92); border-radius:999px; background:rgba(255,255,255,.66); backdrop-filter:blur(18px) saturate(165%); -webkit-backdrop-filter:blur(18px) saturate(165%); box-shadow:0 6px 22px rgba(36,77,112,.08),inset 0 1px rgba(255,255,255,.95); color:#48647e; font-size:.82rem; font-weight:650; }
.badge-pulse { width:8px; height:8px; border-radius:50%; background:#19a87c; box-shadow:0 0 0 5px rgba(25,168,124,.12); animation:status-pulse 2.4s ease-out infinite; }
@keyframes status-pulse { 0%,100% { box-shadow:0 0 0 4px rgba(25,168,124,.12); } 50% { box-shadow:0 0 0 8px rgba(25,168,124,0); } }
.buttons { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:28px; }
.btn { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:10px; padding:12px 20px; border:1px solid transparent; border-radius:999px; font-size:.95rem; font-weight:700; line-height:1.2; cursor:pointer; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { border-color:rgba(255,255,255,.42); background:linear-gradient(180deg,#4294f0,#116cc7); color:#fff; box-shadow:0 8px 22px rgba(20,118,212,.2),inset 0 1px rgba(255,255,255,.42); }
.btn-primary:hover { background:var(--accent-hover); color:#fff; box-shadow:0 12px 27px rgba(20,118,212,.27); }
.btn-secondary { border-color:var(--border); background:#fff; color:var(--text); }
.btn-secondary:hover { border-color:#b8cde0; background:#f9fbfd; color:var(--text); }
.btn-block { width:100%; }
.text-link { display:inline-flex; align-items:center; gap:8px; color:var(--accent); font-size:.91rem; font-weight:700; }
.text-link span { transition:transform .2s var(--ease); }
.text-link:hover span { transform:translate(3px,-2px); }

/* Portada */
.hero { position:relative; isolation:isolate; overflow:hidden; padding:clamp(72px,10vw,132px) 0 80px; background:radial-gradient(ellipse at 78% 30%, rgba(76,160,224,.14), transparent 36%), linear-gradient(180deg,#f3f8fc 0%,#f7f8fa 100%); }
.hero::after { position:absolute; z-index:-1; top:12%; right:-140px; width:430px; height:430px; border:1px solid rgba(20,118,212,.08); border-radius:50%; box-shadow:0 0 0 42px rgba(20,118,212,.025),0 0 0 90px rgba(20,118,212,.018); content:""; animation:orbital-drift 36s linear infinite; }
@keyframes orbital-drift { to { transform:rotate(360deg); } }
.hero-container { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(310px,.82fr); align-items:center; gap:clamp(34px,6vw,76px); }
.hero-center-content { max-width:690px; }
.hero-center-content h1 { font-size:clamp(2.8rem,5.7vw,5rem); }
.hero-center-content .lead { max-width:640px; }
.hero-assurances { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:25px; color:#48647e; font-size:.81rem; font-weight:650; }
.hero-assurances span { display:inline-flex; align-items:center; gap:6px; }
.ds-icon { width:22px; height:22px; flex:0 0 auto; }
.hero-assurances .ds-icon { width:16px; height:16px; color:var(--teal); }
.hero-visual { position:relative; perspective:1000px; }
.hero-visual-glow { position:absolute; inset:12%; border-radius:50%; background:rgba(20,118,212,.15); filter:blur(55px); }
.security-panel { position:relative; overflow:hidden; padding:26px; border:1px solid rgba(255,255,255,.9); border-radius:var(--radius-lg); background:radial-gradient(ellipse at 8% 0%,rgba(255,255,255,.96),transparent 48%),linear-gradient(145deg,rgba(255,255,255,.82),rgba(232,244,254,.72)); backdrop-filter:blur(28px) saturate(165%); -webkit-backdrop-filter:blur(28px) saturate(165%); box-shadow:0 30px 70px rgba(36,77,112,.16),inset 0 1px #fff; animation:panel-float 7s ease-in-out infinite; }
.security-panel::before { position:absolute; top:-120px; right:-100px; width:250px; height:250px; border-radius:50%; background:rgba(42,153,208,.12); filter:blur(45px); content:""; }
.security-panel-top { position:relative; display:flex; align-items:center; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid var(--border); }
.panel-brand,.panel-indicator { display:inline-flex; align-items:center; gap:8px; font-size:.68rem; font-weight:800; letter-spacing:.12em; }
.panel-brand img { width:26px; height:24px; object-fit:contain; }
.panel-indicator { color:var(--muted); font-size:.62rem; }
.panel-indicator i { width:7px; height:7px; border-radius:50%; background:#19a87c; box-shadow:0 0 10px rgba(25,168,124,.6); }
.panel-shield { display:grid; width:54px; height:54px; margin:23px 0 16px; place-items:center; border:1px solid #cde2f4; border-radius:16px; background:linear-gradient(145deg,#edf7ff,#fff); color:var(--accent); }
.panel-shield .ds-icon { width:30px; height:30px; }
.panel-kicker { margin-bottom:6px; color:var(--accent); font-size:.68rem; font-weight:800; letter-spacing:.14em; }
.security-panel h2 { margin-bottom:7px; font-size:1.45rem; }
.panel-copy { max-width:350px; margin-bottom:0; color:var(--muted); font-size:.84rem; }
.panel-flow { display:grid; gap:9px; margin-top:20px; }
.panel-flow-item { display:grid; grid-template-columns:28px 1fr 20px; align-items:center; gap:11px; padding:11px 12px; border:1px solid #e5ebf0; border-radius:13px; background:rgba(255,255,255,.8); }
.panel-flow-item>span { color:var(--accent); font:700 .75rem/1 monospace; }
.panel-flow-item strong,.panel-flow-item small { display:block; }
.panel-flow-item strong { font-size:.8rem; }
.panel-flow-item small { margin-top:2px; color:var(--muted); font-size:.68rem; }
.panel-flow-item .ds-icon { width:17px; height:17px; color:var(--teal); }
@keyframes panel-float { 0%,100% { transform:translateY(0) rotateX(0); } 50% { transform:translateY(-7px) rotateX(1deg); } }

/* Secciones y tarjetas */
.section { position:relative; padding:clamp(64px,8vw,98px) 0; }
.section.alt { background:var(--surface-soft); }
.section-header { max-width:760px; margin-bottom:38px; }
.section-header .lead { max-width:670px; }
.home-section-heading { max-width:780px; }
.home-service-grid { align-items:stretch; }
.grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.card { position:relative; display:flex; min-height:100%; flex-direction:column; padding:24px; border:1px solid rgba(255,255,255,.92); border-radius:var(--radius); background:radial-gradient(300px circle at var(--pointer-x,50%) var(--pointer-y,0%),rgba(255,255,255,.95),transparent 66%),linear-gradient(145deg,rgba(255,255,255,.88),rgba(246,250,254,.74)); backdrop-filter:blur(18px) saturate(155%); -webkit-backdrop-filter:blur(18px) saturate(155%); box-shadow:0 10px 34px rgba(22,43,66,.07),inset 0 1px rgba(255,255,255,.95); transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s ease; }
.card:hover { transform:translateY(-5px); border-color:#b9d6ed; box-shadow:var(--shadow); }
.card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:19px; }
.icon,.about-icon,.contact-icon { display:grid; width:44px; height:44px; flex:none; place-items:center; border:1px solid #d8e9f7; border-radius:14px; background:var(--accent-soft); color:var(--accent); }
.icon .ds-icon,.about-icon .ds-icon,.contact-icon .ds-icon { width:22px; height:22px; }
.tag { padding:5px 10px; border:1px solid #d6ebe9; border-radius:999px; background:#eef9f7; color:#267b76; font-size:.67rem; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.card h3 { font-size:1.13rem; line-height:1.35; }
.card p { color:var(--muted); font-size:.9rem; }
.card p strong { color:var(--text); }
.card .text-link { margin-top:auto; padding-top:8px; }
.home-service-card { min-height:290px; }
.home-service-card h3 { font-size:1.12rem; }
.home-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.home-method-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:22px; margin-bottom:30px; }
.home-method-heading h2 { max-width:590px; margin-bottom:0; }
.home-method-heading>.text-link { flex:none; margin-bottom:5px; }
.home-process-step { display:flex; gap:14px; padding:20px 0; border-top:1px solid #d2dce5; }
.home-process-step>span { display:grid; width:36px; height:36px; flex:0 0 36px; place-items:center; border:1px solid #c7dff2; border-radius:12px; background:#fff; color:var(--accent); font:750 .75rem/1 monospace; }
.home-process-step h3 { margin:4px 0 7px; font-size:.98rem; }
.home-process-step p { margin-bottom:0; color:var(--muted); font-size:.86rem; }
.home-cta-section { padding:26px 0 88px; }
.home-cta { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:34px 38px; border:1px solid rgba(255,255,255,.9); border-radius:var(--radius-lg); background:radial-gradient(ellipse at 85% 12%,rgba(255,255,255,.96),transparent 42%),linear-gradient(115deg,rgba(226,242,255,.85),rgba(255,255,255,.76) 75%); backdrop-filter:blur(22px) saturate(160%); -webkit-backdrop-filter:blur(22px) saturate(160%); box-shadow:var(--shadow),inset 0 1px rgba(255,255,255,.92); }
.home-cta h2 { max-width:670px; margin-bottom:8px; font-size:clamp(1.7rem,3vw,2.35rem); }
.home-cta p { margin:0; color:var(--muted); }
.home-cta .eyebrow { margin-bottom:8px; }

/* Páginas internas */
.page-intro { padding:66px 0 42px; border-bottom:1px solid var(--border); background:radial-gradient(ellipse at 85% 10%,rgba(76,160,224,.11),transparent 38%),linear-gradient(180deg,#f0f6fb,var(--bg)); }
.page-intro h1 { margin-bottom:12px; font-size:clamp(2.6rem,5.6vw,4.3rem); }
.page-intro .lead { max-width:750px; margin-bottom:0; }
.brand-banner { display:grid; grid-template-columns:190px 1fr; align-items:center; gap:24px; margin-bottom:26px; padding:24px; border:1px solid var(--border); border-radius:var(--radius); background:#fff; }
.brand-banner-logo { display:flex; align-items:center; justify-content:center; padding:8px; }
.brand-full-logo { width:100%; max-width:180px; height:auto; object-fit:contain; }
.brand-banner-text h3 { margin-bottom:8px; }
.brand-banner-text p { margin:0; color:var(--muted); font-size:.94rem; }
.about-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.about-card { padding:22px; border:1px solid rgba(255,255,255,.92); border-radius:var(--radius); background:radial-gradient(260px circle at var(--pointer-x,50%) var(--pointer-y,0%),rgba(255,255,255,.95),transparent 70%),rgba(255,255,255,.72); backdrop-filter:blur(16px) saturate(150%); -webkit-backdrop-filter:blur(16px) saturate(150%); box-shadow:inset 0 1px rgba(255,255,255,.9); transition:transform .25s var(--ease),box-shadow .25s var(--ease); }
.about-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.about-icon { margin-bottom:16px; }
.about-card p { margin:0; color:var(--muted); font-size:.9rem; }
.process { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:13px; }
.step { display:flex; min-height:192px; flex-direction:column; gap:9px; padding:19px; border:1px solid var(--border); border-radius:var(--radius-sm); background:#fff; transition:transform .25s var(--ease),box-shadow .25s var(--ease); }
.step:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.step-badge { color:var(--accent); font:750 .75rem/1 monospace; }
.step strong { color:var(--text); font-size:1.03rem; }
.step span { color:var(--muted); font-size:.84rem; line-height:1.5; }
.security-box { overflow:hidden; padding:clamp(28px,5vw,54px); border-radius:var(--radius-lg); background:linear-gradient(135deg,#112943,#183c5c); color:#fff; box-shadow:var(--shadow); }
.security-content { max-width:880px; }
.security-box h2 { color:#fff; }
.security-box .lead { color:#d3e0ec; }
.security-box .eyebrow { color:#9bcfff; }
.notice { display:flex; align-items:flex-start; gap:12px; margin-top:25px; padding:17px 19px; border:1px solid rgba(255,255,255,.17); border-radius:var(--radius-sm); background:rgba(255,255,255,.08); color:#edf5fc; font-size:.91rem; }
.notice svg { width:20px; flex:none; margin-top:2px; }

/* Contacto y formularios */
.contact { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:start; gap:clamp(30px,6vw,72px); }
.contact-info h2 { font-size:clamp(2rem,4vw,3.1rem); }
.contact-info>.lead { font-size:1rem; }
.contact-box { display:grid; gap:0; margin-top:28px; padding:8px 20px; border:1px solid var(--border); border-radius:var(--radius); background:#fff; }
.contact-item { display:flex; align-items:center; gap:14px; padding:16px 0; border-bottom:1px solid #e8edf1; }
.contact-item:last-of-type { border-bottom:0; }
.contact-item strong { display:block; margin-bottom:2px; font-size:.82rem; }
.contact-item p { margin:0; color:var(--muted); font-size:.9rem; overflow-wrap:anywhere; }
.contact-item a { color:var(--accent); }
.contact-footer-note { padding:14px 0 8px; color:var(--muted); font-size:.77rem; }
.contact-footer-note span { display:flex; gap:7px; align-items:flex-start; }
.contact-footer-note .ds-icon { width:16px; height:16px; }
.contact-form-card { padding:clamp(22px,4vw,34px); border:1px solid rgba(255,255,255,.95); border-radius:var(--radius); background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(246,250,254,.78)); backdrop-filter:blur(20px) saturate(160%); -webkit-backdrop-filter:blur(20px) saturate(160%); box-shadow:var(--shadow),inset 0 1px rgba(255,255,255,.95); }
.contact-form-card h3 { margin-bottom:6px; font-size:1.35rem; }
.form-desc { margin-bottom:21px; color:var(--muted); font-size:.87rem; }
.c-form { display:grid; gap:16px; }
.form-group { display:grid; gap:7px; }
.form-group label { font-size:.82rem; font-weight:700; }
.form-group input,.form-group select,.form-group textarea { width:100%; min-height:47px; padding:11px 13px; border:1px solid #ccd6df; border-radius:10px; background:#fff; color:var(--text); }
.form-group textarea { min-height:128px; resize:vertical; }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--accent); outline:3px solid rgba(20,118,212,.13); }
.form-trap { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(1px,1px,1px,1px)!important; white-space:nowrap!important; }
.form-notice { padding:12px 14px; border-radius:10px; font-size:.87rem; }
.form-notice-success { background:#eaf8f1; color:#176444; }
.form-notice-error { background:#fff0ef; color:#a6312c; }

/* Pie */
.site-footer { padding:54px 0 20px; border-top:1px solid var(--border); background:#fff; }
.footer-grid { display:grid; grid-template-columns:1.2fr .8fr 1fr; gap:42px; padding-bottom:34px; }
.footer-brand .logo { margin-bottom:14px; }
.footer-desc,.crypto-note { max-width:340px; color:var(--muted); font-size:.86rem; }
.site-footer h4 { margin-bottom:14px; font-size:.82rem; letter-spacing:-.01em; }
.footer-links { display:grid; grid-template-columns:1fr 1fr; gap:9px 16px; }
.footer-links a { color:var(--muted); font-size:.81rem; }
.footer-links a:hover { color:var(--accent); }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:17px; border-top:1px solid #e8edf1; color:var(--muted); font-size:.75rem; }
.footer-bottom p { margin:0; }
.back-to-top { color:var(--accent); font-weight:700; }

/* Entrada y archivos */
.post-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.post-card { padding:24px; border:1px solid var(--border); border-radius:var(--radius); background:#fff; transition:transform .25s var(--ease),box-shadow .25s var(--ease); }
.post-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.post-meta { margin-bottom:10px; color:var(--muted); font-size:.78rem; }
.post-card h2 { font-size:1.28rem; }
.post-card p { color:var(--muted); font-size:.9rem; }
.pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:32px; }
.pagination a,.pagination span { display:grid; min-width:40px; min-height:40px; padding:0 12px; place-items:center; border:1px solid var(--border); border-radius:999px; background:#fff; color:var(--text); font-size:.85rem; }
.pagination .current { border-color:var(--accent); background:var(--accent); color:#fff; }
.pagination a:hover { border-color:#b8cde0; color:var(--accent); }
.entry-content { max-width:780px; margin:0 auto; padding:55px 0 90px; }
.entry-content h1 { font-size:clamp(2.3rem,5vw,4rem); }
.entry-content p,.entry-content li { color:#455361; }
.entry-content h2,.entry-content h3 { margin-top:1.5em; }

/* Aparición al desplazarse; contenido queda visible sin JS */
.reveal-ready .reveal-item { opacity:0; transform:translateY(20px); transition:opacity .65s var(--ease),transform .65s var(--ease); }
.reveal-ready .reveal-item.is-visible { opacity:1; transform:none; }
.reveal-ready .services-grid .card:nth-child(2),.reveal-ready .company-values .about-card:nth-child(2),.reveal-ready .methodology-timeline .step:nth-child(2),.reveal-ready .security-principles>div:nth-child(2) { transition-delay:.07s; }
.reveal-ready .services-grid .card:nth-child(3),.reveal-ready .company-values .about-card:nth-child(3),.reveal-ready .methodology-timeline .step:nth-child(3),.reveal-ready .security-principles>div:nth-child(3) { transition-delay:.14s; }
.reveal-ready .services-grid .card:nth-child(4),.reveal-ready .methodology-timeline .step:nth-child(4) { transition-delay:.1s; }
.reveal-ready .services-grid .card:nth-child(5),.reveal-ready .methodology-timeline .step:nth-child(5) { transition-delay:.17s; }
.reveal-ready .services-grid .card:nth-child(6) { transition-delay:.24s; }
.hero-center-content>* { animation:hero-enter .65s both; }
.hero-center-content>*:nth-child(2) { animation-delay:.07s; }
.hero-center-content>*:nth-child(3) { animation-delay:.14s; }
.hero-center-content>*:nth-child(4) { animation-delay:.21s; }
.hero-visual { animation:hero-enter .8s .12s both; }
@keyframes hero-enter { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }

/* Transición suave entre páginas del mismo sitio */
@view-transition { navigation:auto; }
::view-transition-old(root) { animation:page-leave .18s ease-out both; }
::view-transition-new(root) { animation:page-enter .4s var(--ease) both; }
@keyframes page-leave { to { opacity:.84; filter:blur(2px); } }
@keyframes page-enter { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }

@media (max-width: 980px) {
  .hero-container { grid-template-columns:minmax(0,1fr) minmax(280px,.8fr); gap:32px; }
  .menu { gap:14px; }
  .menu a { font-size:.8rem; }
  .process { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .container { width:min(100% - 36px,var(--max)); }
  .nav-wrapper { min-height:68px; }
  .nav-toggle { display:none; }
  .site-nav { margin-left:auto; }
  .menu { flex-wrap:wrap; justify-content:flex-end; gap:4px 12px; }
  .js .nav-toggle { display:flex; }
  .js .site-nav { position:fixed; z-index:51; inset:68px 0 0; visibility:hidden; isolation:isolate; margin:0; padding:18px; overflow-y:auto; border-top:1px solid rgba(255,255,255,.72); background:linear-gradient(145deg,rgba(248,252,255,.93),rgba(234,243,252,.88)); backdrop-filter:blur(28px) saturate(170%); -webkit-backdrop-filter:blur(28px) saturate(170%); box-shadow:0 24px 64px rgba(24,48,75,.16),inset 0 1px rgba(255,255,255,.92); opacity:0; transform:translateY(-8px); transition:opacity .22s ease,transform .22s ease,visibility .22s; }
  .js .site-nav.nav-open { visibility:visible; opacity:1; transform:none; }
  .js .menu { display:flex; max-width:560px; flex-direction:column; align-items:stretch; gap:3px; margin:0 auto; padding:10px 0; }
  .js .menu li { border-bottom:1px solid var(--border); }
  .js .menu a,.js .menu a.nav-cta { padding:14px 8px; border:0; border-radius:0; background:transparent; color:var(--text); font-size:1.02rem; }
  .js .menu a.nav-cta { color:var(--accent); }
  .hero { padding:70px 0 55px; }
  .hero-container { grid-template-columns:1fr; }
  .hero-center-content { max-width:680px; margin-inline:auto; text-align:center; }
  .hero-center-content .lead { margin-inline:auto; }
  .hero-center-content .buttons,.hero-assurances { justify-content:center; }
  .hero-visual { width:min(100%,470px); margin:12px auto 0; }
  .security-panel { padding:22px; }
  .grid,.home-process,.about-grid,.contact,.post-list { grid-template-columns:1fr 1fr; }
  .contact { align-items:stretch; }
  .home-cta { align-items:flex-start; flex-direction:column; padding:28px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:28px; }
  .footer-brand { grid-column:1/-1; }
}
@media (max-width: 540px) {
  .container { width:min(100% - 32px,var(--max)); }
  h1 { font-size:2.65rem; }
  .hero-center-content h1 { font-size:clamp(2.45rem,12vw,3.5rem); }
  .hero .buttons { flex-direction:column; align-items:stretch; }
  .hero .buttons .btn { width:100%; }
  .hero-assurances { align-items:flex-start; flex-direction:column; }
  .section { padding:62px 0; }
  .grid,.home-process,.about-grid,.contact,.post-list,.process { grid-template-columns:1fr; }
  .home-method-heading { align-items:flex-start; flex-direction:column; }
  .home-service-card { min-height:0; }
  .brand-banner { grid-template-columns:1fr; gap:12px; text-align:center; }
  .brand-full-logo { max-width:150px; }
  .step { min-height:0; }
  .contact-form-card { padding:22px 18px; }
  .footer-grid { grid-template-columns:1fr; gap:22px; }
  .footer-brand { grid-column:auto; }
  .footer-bottom { align-items:flex-start; flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .reveal-ready .reveal-item { opacity:1; transform:none; }
}
@media (prefers-reduced-transparency: reduce) {
  .site-header::before { background:#fff; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .js .site-nav { background:#f1f6fb; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .badge-status,.security-panel,.card,.about-card,.contact-form-card,.home-cta { backdrop-filter:none; -webkit-backdrop-filter:none; }
}
@media (prefers-contrast: more) {
  .site-nav,.card,.about-card,.contact-form-card { border-color:#7f91a4; }
  .menu a { color:#263545; }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
}

/* Composiciones propias para las páginas de empresa */
.page-intro--empresa { background:radial-gradient(ellipse at 82% 18%,rgba(67,158,223,.17),transparent 34%),linear-gradient(115deg,#f6faff,#edf5fb 58%,#f8fafc); }
.page-layout--empresa .company-story { background:linear-gradient(180deg,#f8fafc 0%,#edf4fa 100%); }
.page-layout--empresa .section-header { max-width:820px; margin-bottom:42px; }
.page-layout--empresa .brand-banner { grid-template-columns:220px 1fr; min-height:220px; overflow:hidden; border-color:rgba(255,255,255,.35); background:radial-gradient(ellipse at 8% 0%,rgba(255,255,255,.15),transparent 42%),linear-gradient(120deg,#122b45,#1d4669 70%,#20617a); color:#eaf4fc; box-shadow:0 28px 64px rgba(18,43,69,.18),inset 0 1px rgba(255,255,255,.18); }
.page-layout--empresa .brand-banner-text h3 { color:#fff; font-size:clamp(1.4rem,2.6vw,2rem); }
.page-layout--empresa .brand-banner-text p { max-width:700px; color:#d6e6f4; font-size:1rem; }
.page-layout--empresa .brand-full-logo { filter:brightness(0) invert(1); }
.page-layout--empresa .company-values { grid-template-columns:1.15fr 1fr 1fr; gap:0; overflow:hidden; border:1px solid rgba(255,255,255,.94); border-radius:var(--radius); background:rgba(255,255,255,.72); backdrop-filter:blur(18px) saturate(155%); -webkit-backdrop-filter:blur(18px) saturate(155%); box-shadow:var(--shadow); }
.page-layout--empresa .about-card { border:0; border-radius:0; background:transparent; box-shadow:none; }
.page-layout--empresa .about-card + .about-card { border-left:1px solid var(--border); }

.page-intro--serveis { background:radial-gradient(ellipse at 88% 16%,rgba(22,166,161,.13),transparent 31%),linear-gradient(180deg,#edf8f8,#f7f8fa); }
.page-layout--serveis .services-catalog { background:linear-gradient(180deg,#eaf2f7,#f6f9fb 78%); }
.page-layout--serveis .section-header { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.7fr); align-items:end; column-gap:44px; max-width:none; }
.page-layout--serveis .section-header .eyebrow { grid-column:1/-1; }
.page-layout--serveis .section-header h2 { max-width:650px; margin:0; }
.page-layout--serveis .section-header .lead { align-self:end; margin:0 0 4px; font-size:.98rem; }
.page-layout--serveis .services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; counter-reset:service; }
.page-layout--serveis .services-grid .card { min-height:245px; padding:25px 28px 24px 82px; border-color:rgba(255,255,255,.95); border-radius:18px; background:radial-gradient(280px circle at var(--pointer-x,50%) var(--pointer-y,0%),#fff,transparent 70%),rgba(255,255,255,.68); }
.page-layout--serveis .services-grid .card::before { position:absolute; top:27px; left:27px; color:#91a7ba; content:"0" counter(service); counter-increment:service; font:700 .78rem/1.2 ui-monospace,monospace; }
.page-layout--serveis .services-grid .card:nth-child(3n+1) { background-color:rgba(255,255,255,.83); }
.page-layout--serveis .services-grid .card-top { flex-direction:row-reverse; }
.page-layout--serveis .services-grid .card h3 { font-size:1.3rem; }
.page-layout--serveis .services-grid .card p:last-child { margin-bottom:0; }

.page-intro--metodologia { border:0; background:radial-gradient(ellipse at 5% 12%,rgba(70,144,207,.2),transparent 32%),linear-gradient(125deg,#11263d,#163b59 68%,#155368); }
.page-intro--metodologia .eyebrow,.page-intro--metodologia h1 { color:#fff; }
.page-intro--metodologia .lead { color:#d4e3ef; }
.page-layout--metodologia .methodology-section { padding-top:74px; background:linear-gradient(180deg,#eaf1f7,#f7f8fa); }
.page-layout--metodologia .section-header { max-width:700px; margin-bottom:48px; }
.page-layout--metodologia .methodology-timeline { position:relative; display:grid; grid-template-columns:1fr; gap:0; max-width:900px; margin-inline:auto; }
.page-layout--metodologia .methodology-timeline::before { position:absolute; top:24px; bottom:24px; left:30px; width:1px; background:linear-gradient(#64a7dc,#bfd9ec 75%,transparent); content:""; }
.page-layout--metodologia .methodology-timeline .step { position:relative; display:grid; min-height:0; grid-template-columns:62px 180px 1fr; align-items:center; gap:18px; padding:19px 24px; border:0; border-bottom:1px solid rgba(116,146,172,.2); border-radius:0; background:transparent; }
.page-layout--metodologia .methodology-timeline .step:first-child { border-top:1px solid rgba(116,146,172,.2); }
.page-layout--metodologia .methodology-timeline .step-badge { z-index:1; display:grid; width:40px; height:40px; place-items:center; border:1px solid #b6d6ee; border-radius:50%; background:#f3f9fe; box-shadow:0 0 0 7px #edf4f9; }
.page-layout--metodologia .methodology-timeline .step strong { font-size:1.1rem; }
.page-layout--metodologia .methodology-timeline .step span { font-size:.92rem; }

.page-intro--seguretat { background:radial-gradient(ellipse at 95% 15%,rgba(32,167,161,.12),transparent 30%),linear-gradient(180deg,#eff5f8,#f7f8fa); }
.page-layout--seguretat .security-section { background:linear-gradient(180deg,#e8f0f6,#f7f8fa); }
.page-layout--seguretat .security-feature { position:relative; isolation:isolate; max-width:1020px; margin-inline:auto; padding:clamp(34px,6vw,70px); border:1px solid rgba(255,255,255,.24); background:radial-gradient(ellipse at 90% 0%,rgba(104,204,217,.21),transparent 38%),linear-gradient(135deg,#10253b,#183d5b 65%,#14535b); box-shadow:0 32px 80px rgba(17,43,67,.2),inset 0 1px rgba(255,255,255,.17); }
.page-layout--seguretat .security-feature::after { position:absolute; z-index:-1; right:-90px; bottom:-190px; width:390px; height:390px; border:1px solid rgba(160,224,236,.15); border-radius:50%; box-shadow:0 0 0 36px rgba(160,224,236,.035),0 0 0 78px rgba(160,224,236,.025); content:""; }
.page-layout--seguretat .security-content { max-width:760px; }
.page-layout--seguretat .security-principles { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:28px; }
.page-layout--seguretat .security-principles>div { display:grid; gap:4px; padding:16px; border:1px solid rgba(255,255,255,.15); border-radius:14px; background:rgba(255,255,255,.075); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.page-layout--seguretat .security-principles span { color:#96d4e6; font:700 .7rem/1.3 ui-monospace,monospace; }
.page-layout--seguretat .security-principles strong { color:#fff; font-size:.9rem; }
.page-layout--seguretat .security-principles small { color:#d2e1eb; font-size:.75rem; }

.page-intro--contacte { background:radial-gradient(ellipse at 10% 18%,rgba(89,153,225,.16),transparent 34%),linear-gradient(180deg,#eff5fb,#f7f8fa); }
.page-layout--contacte .contact-section { background:radial-gradient(ellipse at 88% 55%,rgba(94,165,217,.1),transparent 36%),linear-gradient(180deg,#f7f8fa,#eaf2f8); }
.page-layout--contacte .contact { grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); align-items:stretch; gap:clamp(32px,7vw,90px); }
.page-layout--contacte .contact-info { align-self:center; }
.page-layout--contacte .contact-info h2 { max-width:470px; font-size:clamp(2.3rem,4.6vw,3.8rem); }
.page-layout--contacte .contact-box { padding:10px 20px; border-color:rgba(255,255,255,.96); background:rgba(255,255,255,.58); backdrop-filter:blur(18px) saturate(150%); -webkit-backdrop-filter:blur(18px) saturate(150%); box-shadow:inset 0 1px rgba(255,255,255,.95); }
.page-layout--contacte .contact-form-card { position:relative; align-self:center; padding:clamp(28px,4vw,46px); border-radius:26px; }
.page-layout--contacte .contact-form-card h3 { font-size:1.55rem; }

@media (max-width:760px) {
  .page-layout--empresa .brand-banner { grid-template-columns:1fr; text-align:center; }
  .page-layout--empresa .company-values { grid-template-columns:1fr; }
  .page-layout--empresa .about-card + .about-card { border-top:1px solid var(--border); border-left:0; }
  .page-layout--serveis .section-header { grid-template-columns:1fr; gap:12px; }
  .page-layout--serveis .section-header .eyebrow { grid-column:auto; }
  .page-layout--serveis .services-grid { grid-template-columns:1fr; }
  .page-layout--metodologia .methodology-timeline .step { grid-template-columns:50px 1fr; gap:8px 14px; padding-inline:10px; }
  .page-layout--metodologia .methodology-timeline .step span { grid-column:2; }
  .page-layout--seguretat .security-principles { grid-template-columns:1fr; }
  .page-layout--contacte .contact { grid-template-columns:1fr; gap:28px; }
}
