:root { --navy:#06162b; --navy-soft:#0c2745; --ink:#11243a; --paper:#fff; --sand:#0c2745; --lime:#d2ac57; --rust:#806014; --line:#d8e0e8; --muted:#566574; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
html { scrollbar-color:var(--lime) var(--navy); scrollbar-width:thin; }
::-webkit-scrollbar { width:10px; }
::-webkit-scrollbar-track { background:var(--navy); }
::-webkit-scrollbar-thumb { background:var(--lime); border:2px solid var(--navy); border-radius:8px; }
::-webkit-scrollbar-thumb:hover { background:#e0bd6c; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.55 "DM Sans",sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-weight:500; line-height:1.1; }
h1 { font-size:clamp(44px,5vw,72px); margin-bottom:24px; }
h2 { font-size:clamp(34px,4vw,58px); margin-bottom:24px; }
h3 { font-size:clamp(25px,2.2vw,32px); }
em { font-family:"Playfair Display",serif; font-weight:500; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid var(--rust); outline-offset:5px; }
.skip-link { background:var(--lime); color:var(--navy); left:12px; padding:8px 12px; position:fixed; top:-80px; z-index:30; }
.skip-link:focus { top:12px; }
.site-header { align-items:center; background:rgba(6,22,43,.72); color:#f7f1e4; display:flex; gap:20px; height:96px; justify-content:space-between; padding:0 clamp(22px,5.2vw,80px); position:fixed; inset:0 0 auto; transition:background .25s,color .25s; z-index:10; }
.site-header.is-scrolled { background:rgba(255,255,255,.97); color:var(--navy); border-bottom:1px solid var(--line); }
.brand { align-items:center; display:flex; flex-shrink:0; font-size:16px; font-weight:600; gap:12px; line-height:1.15; }
.brand small { color:var(--muted); font-size:12px; font-weight:500; }
.site-header:not(.is-scrolled) .brand small { color:#d5deea; }
.brand-mark,.brand-logo { height:62px; width:62px; }
.brand-logo { object-fit:contain; }
.site-header.is-scrolled .brand-logo { filter:brightness(.28) saturate(1.2); }
nav { display:flex; flex:1; align-items:center; gap:clamp(12px,2vw,30px); justify-content:center; font-size:13px; }
.nav-dropdown { position:relative; padding:24px 0; }
.nav-trigger { display:flex; align-items:center; gap:7px; border:0; padding:0; background:none; color:inherit; font:inherit; line-height:inherit; cursor:pointer; white-space:nowrap; }
.nav-chevron { color:var(--lime); font-size:15px; transition:transform .18s; }
.nav-trigger[aria-expanded="true"] .nav-chevron { transform:rotate(180deg); }
.nav-submenu { position:absolute; left:-20px; top:100%; width:310px; max-height:calc(100svh - 116px); overflow-y:auto; margin:0; padding:12px 0; list-style:none; background:var(--navy-soft); color:#f7f1e4; border-top:3px solid var(--lime); border-radius:0 0 4px 4px; box-shadow:0 14px 32px rgba(0,0,0,.18); z-index:12; }
.nav-submenu[hidden] { display:none; }
.nav-submenu a { display:block; padding:10px 20px; border:0; white-space:normal; font-size:13px; line-height:1.5; }
.nav-submenu a:hover,.nav-submenu a:focus-visible { background:#163858; color:#e0bd6c; }
.nav-submenu li:first-child a { font-weight:600; border-bottom:1px solid #36506b; margin-bottom:4px; padding-bottom:14px; }
.nav-trigger:focus-visible { outline:3px solid var(--lime); outline-offset:5px; }
nav a,.header-cta,.text-link { border-bottom:1px solid transparent; }
nav a:hover,nav a[aria-current="page"] { border-color:currentColor; }
.header-cta { border-color:currentColor; flex-shrink:0; font-size:13px; padding-bottom:3px; }
.menu-toggle { background:none; border:0; color:inherit; cursor:pointer; display:none; font:500 12px "DM Mono",monospace; padding:10px; }
.menu-toggle span { color:var(--lime); font-size:19px; margin-left:6px; }
.site-header.is-scrolled .menu-toggle span { color:var(--rust); }
.eyebrow { color:var(--rust); font:11px "DM Mono",monospace; letter-spacing:.08em; margin:0 0 18px; text-transform:uppercase; }
.hero,.detail-hero { --rust:#e0bd6c; color:#f7f1e4; position:relative; background:var(--navy); overflow:hidden; }
.hero { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; min-height:100svh; padding:150px 5.2vw 90px; }
.hero-video-bg { position:absolute; inset:0; background:url("Imagenes/David%20Subias%20Espallargas%20background.png") center 30%/cover; }
.hero-video-bg::after,.detail-hero::after { background:linear-gradient(102deg,rgba(4,10,18,.83),rgba(4,10,18,.55)); content:""; inset:0; position:absolute; }
.hero-video-bg video,.detail-hero video { height:100%; width:100%; object-fit:cover; }
.hero-copy,.hero-actions,.hero-note { position:relative; z-index:1; }
.hero-copy { max-width:740px; }
.hero-intro { color:#e7edf5; font-size:18px; max-width:580px; margin-bottom:0; }
.hero-actions,.detail-hero-actions { align-items:center; display:flex; flex-wrap:wrap; gap:24px; margin-top:30px; }
.button { align-items:center; border:1px solid var(--lime); cursor:pointer; display:inline-flex; font:600 14px "DM Sans",sans-serif; gap:30px; justify-content:space-between; padding:17px 20px; transition:background .2s; }
.button-dark { background:var(--lime); color:var(--navy); }
.button-dark:hover { background:#e0bd6c; }
.button-outline { background:transparent; border-color:var(--ink); }
.text-link { border-color:currentColor; font-size:14px; padding-bottom:3px; }
.text-link span { margin-left:8px; }
.hero-note { font:17px/1.5 "Playfair Display",serif; margin:30px 0 0; max-width:580px; }
.trust-band { border-bottom:1px solid var(--line); display:grid; gap:20px; grid-template-columns:repeat(4,minmax(0,1fr)); padding:23px 5.2vw; }
.trust-band p { font-size:12px; margin:0; }
.statement-strip { background:var(--lime); color:var(--navy); overflow:hidden; padding:14px 0; }
.statement-track { display:flex; font:12px "DM Mono",monospace; letter-spacing:.05em; width:max-content; }
.statement-group { display:flex; flex-shrink:0; align-items:center; gap:27px; padding-right:27px; }
.statement-group[aria-hidden] { display:none; }
.section { margin:auto; max-width:1440px; padding:95px 5.2vw; }
.section-heading { max-width:790px; }
.section-heading > p:not(.eyebrow) { color:var(--muted); max-width:540px; }
.service-grid { display:grid; gap:18px; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:48px; }
.service-card { border:1px solid var(--line); display:flex; flex-direction:column; padding:30px; }
.service-card-accent { background:var(--lime); border-color:var(--lime); color:var(--navy); }
.service-number { border-bottom:1px solid currentColor; font:12px "DM Mono",monospace; margin-bottom:35px; padding-bottom:12px; }
.service-card > p:not(.eyebrow) { color:var(--muted); }
.service-card-accent > p:not(.eyebrow),.service-card-accent .eyebrow { color:var(--navy); }
.service-card ul { font-size:14px; line-height:1.85; list-style:"—  "; margin:20px 0 auto; padding-left:15px; }
.service-card .text-link { align-self:flex-start; margin-top:30px; }
.about { align-items:center; display:grid; gap:8vw; grid-template-columns:1fr 1fr; padding-top:30px; }
.about-image { min-height:560px; position:relative; }
.about-image img { height:100%; width:100%; object-fit:cover; object-position:center 15%; position:absolute; }
.image-label { background:var(--lime); color:var(--navy); bottom:0; left:0; font:11px "DM Mono",monospace; padding:10px 13px; position:absolute; }
.about-copy { max-width:520px; }
.about-copy > p:not(.eyebrow) { color:var(--muted); font-size:17px; }
.about-copy .button { margin-top:15px; }
.process,.contact,.detail-related { --ink:#f7f1e4; --muted:#b6c1d0; --line:#36506b; --rust:#e0bd6c; background:var(--navy-soft); color:var(--ink); }
.process { max-width:none; padding-left:max(5.2vw,calc((100vw - 1290px)/2)); padding-right:max(5.2vw,calc((100vw - 1290px)/2)); }
.process-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; margin:48px 0 0; padding:0; gap:24px; }
.process-list li { border-top:1px solid var(--line); padding-top:20px; }
.process-list span { color:var(--rust); font:11px "DM Mono",monospace; }
.process-list h3 { font-size:22px; margin:28px 0 12px; }
.process-list p { color:var(--muted); font-size:14px; }
.clarity-inner { margin:auto; max-width:900px; padding:95px 5.2vw; text-align:center; }
.clarity p:not(.eyebrow) { color:var(--muted); margin:0 auto 30px; max-width:590px; }
.faq { display:grid; gap:8vw; grid-template-columns:.85fr 1.15fr; }
.faq-list { border-top:1px solid var(--ink); }
.faq details { border-bottom:1px solid var(--line); padding:20px 0; }
.faq summary { cursor:pointer; display:flex; font-size:17px; font-weight:500; gap:20px; justify-content:space-between; list-style:none; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary span { color:var(--rust); font:22px "DM Mono",monospace; }
.faq details[open] summary span { transform:rotate(45deg); }
.faq details p { color:var(--muted); font-size:14px; margin:16px 20px 2px 0; }
.contact { display:grid; gap:8vw; grid-template-columns:1fr 1fr; padding:90px max(5.2vw,calc((100vw - 1290px)/2)); }
.contact-intro h2 { max-width:480px; }
.contact-intro > p:not(.eyebrow) { max-width:425px; }
.contact-links { margin-top:35px; }
.contact-links a { border-bottom:1px solid currentColor; display:table; font-size:14px; margin-bottom:11px; overflow-wrap:anywhere; }
.contact-links p { font-size:13px; margin-top:24px; }
.contact-options { display:grid; align-content:center; gap:18px; }
.contact-option { display:block; border:1px solid var(--line); padding:22px; transition:border-color .2s; }
.contact-option:hover { border-color:var(--lime); }
.contact-option strong { display:block; font-size:20px; font-weight:500; margin-bottom:6px; }
.contact-option span { display:block; color:var(--muted); font-size:14px; overflow-wrap:anywhere; }
.contact-option-primary { background:var(--lime); color:var(--navy); border-color:var(--lime); }
.contact-option-primary span { color:var(--navy); }
.whatsapp-float { align-items:center; background:var(--lime); color:var(--navy); display:flex; font-size:12px; gap:13px; padding:12px 15px; position:fixed; bottom:20px; right:20px; z-index:3; }
.whatsapp-float b { background:var(--navy); color:var(--lime); font-size:14px; line-height:19px; text-align:center; width:19px; }
footer { align-items:center; display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; margin:auto; max-width:1440px; padding:35px 5.2vw 90px; }
footer p,footer div { color:var(--muted); font-size:12px; margin:0; }
footer div { display:flex; flex-wrap:wrap; gap:17px; }
.reading-progress { background:rgba(6,22,43,.15); height:2px; position:fixed; inset:0 0 auto; z-index:20; }
.reading-progress span { background:var(--lime); display:block; height:100%; width:0; }
.reveal { opacity:1; transition:opacity .5s ease,transform .5s ease; }
.reveal-pending { opacity:0; transform:translateY(18px); }
.detail-hero { display:flex; align-items:flex-end; min-height:76svh; padding:150px 5.2vw 75px; background:var(--navy) url("Imagenes/David%20Subias%20Espallargas%20background.png") center 30%/cover; }
.detail-hero video { position:absolute; inset:0; }
.detail-hero-content { margin:auto; max-width:1290px; position:relative; width:100%; z-index:1; }
.detail-breadcrumb { color:#d5deea; font:12px "DM Mono",monospace; margin-bottom:28px; }
.detail-breadcrumb a { border-bottom:1px solid currentColor; }
.detail-hero h1 { max-width:850px; }
.detail-hero-content > p:not(.eyebrow):not(.detail-breadcrumb) { color:#e7edf5; font-size:18px; max-width:660px; }
.detail-intro { margin:auto; max-width:1440px; padding:90px 5.2vw 30px; }
.detail-intro-inner { border-left:2px solid var(--lime); max-width:880px; padding-left:28px; }
.detail-intro h2 { font-size:clamp(32px,3.6vw,48px); }
.detail-intro p:not(.eyebrow) { color:var(--muted); font-size:17px; max-width:760px; }
.service-detail-grid { display:grid; gap:0 54px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:48px; }
.service-detail-item { border-top:1px solid var(--line); padding:25px 0 28px; }
.service-detail-item h3 { font-size:23px; margin:0 0 11px; }
.service-detail-item p { color:var(--muted); font-size:14px; margin:0; }
.detail-related { display:grid; align-items:center; gap:50px; grid-template-columns:1.1fr .9fr; padding:76px max(5.2vw,calc((100vw - 1290px)/2)); }
.detail-related h2 { font-size:clamp(34px,4vw,54px); }
.detail-related p:not(.eyebrow) { color:var(--muted); margin:0; }
.detail-related-links { display:grid; gap:15px; justify-items:start; }
.detail-related-links a { border-bottom:1px solid currentColor; font-size:14px; padding-bottom:5px; }
@media (max-width:1000px) {
  .menu-toggle { display:block; margin-left:auto; }
  .header-cta { display:none; }
  nav { background:var(--navy-soft); color:#f7f1e4; display:none; flex-direction:column; align-items:stretch; gap:0; position:absolute; top:96px; left:0; right:0; padding:12px 22px 18px; }
  nav.is-open { display:flex; max-height:calc(100svh - 96px); overflow-y:auto; }
  .nav-dropdown { border-bottom:1px solid #36506b; padding:0; }
  .nav-trigger { width:100%; justify-content:space-between; padding:13px 0; text-align:left; }
  .nav-submenu { position:static; width:100%; max-height:none; border-top:0; border-left:2px solid var(--lime); border-radius:0; box-shadow:none; padding:0 0 8px; margin-bottom:12px; }
  .nav-submenu a { padding:10px 16px; }
  nav a { border-bottom:1px solid #36506b; padding:13px 0; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:0; }
  .process-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  html { scroll-padding-top:90px; }
  .site-header { height:74px; padding:0 20px; gap:8px; }
  .brand { font-size:14px; gap:9px; }
  .brand small { font-size:11px; }
  .brand-mark,.brand-logo { height:36px; width:36px; }
  .menu-toggle { padding:10px 0 10px 8px; font-size:11px; }
  nav { top:74px; }
  nav.is-open { max-height:calc(100svh - 74px); }
  .hero { min-height:0; padding:112px 22px 60px; }
  .hero h1 { font-size:clamp(36px,10vw,44px); }
  .hero-intro { font-size:16px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:22px; margin-top:26px; }
  .hero-note { font-size:15px; margin-top:26px; max-width:240px; }
  .hero-video-bg video,.detail-hero video { display:none; }
  .trust-band { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:22px; }
  .trust-band p { font-size:11px; }
  .section { padding:65px 22px; }
  .section-heading h2,.about-copy h2 { font-size:35px; }
  .service-grid { margin-top:35px; }
  .service-card { padding:26px 22px; }
  .service-card h3 { font-size:28px; }
  .about { display:flex; flex-direction:column; gap:35px; padding-top:0; }
  .about-image { align-self:stretch; min-height:390px; }
  .process-list { grid-template-columns:1fr; gap:16px; margin-top:35px; }
  .process-list h3 { margin-top:20px; }
  .clarity-inner { padding:65px 22px; text-align:left; }
  .clarity h2 { font-size:37px; }
  .faq { display:block; }
  .faq-list { margin-top:35px; }
  .contact { display:block; padding:65px 22px; }
  .contact-options { margin-top:35px; }
  .whatsapp-float { display:none; }
  footer { align-items:flex-start; flex-direction:column; padding:28px 22px 85px; }
  .detail-hero { min-height:0; padding:115px 22px 60px; }
  .detail-hero h1 { font-size:38px; }
  .detail-hero-content > p:not(.eyebrow):not(.detail-breadcrumb) { font-size:16px; }
  .detail-intro { padding:65px 22px 20px; }
  .detail-intro-inner { padding-left:19px; }
  .detail-intro h2 { font-size:32px; }
  .service-detail-grid { grid-template-columns:1fr; margin-top:35px; }
  .detail-related { display:block; padding:65px 22px; }
  .detail-related-links { margin-top:30px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
  .reveal-pending { opacity:1; transform:none; }
  .hero-video-bg video,.detail-hero video { display:none; }
}

/* Explicit playback remains available when automatic motion is disabled. */
.hero-video-bg video.is-video-enabled,.detail-hero video.is-video-enabled { display:block; }
@media (max-width:760px) {
  .hero-video-bg,.detail-hero {
    background-image:url("Imagenes/David%20Subias%20Espallargas%20background.png");
    background-size:cover;
    background-position:72% center;
  }
  .hero-video-bg video,.detail-hero video,
  .hero-video-bg video.is-video-enabled,.detail-hero video.is-video-enabled { display:none; }
}

