
  @import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400&family=Petit+Formal+Script&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

  :root{
    --bg:#F7F6F2;
    --surface:#FDFCF9;
    --ink:#0B1F2A;
    --ink-soft:#3F525B;
    --ink-faint:#7C878C;
    --line:#E0DDD3;
    --accent:#123C46;
    --accent-deep:#0B1F2A;
    --accent-soft:#E4ECEC;
    --gold:#B89B5E;
    --nav-bg:#123C46;
    --nav-ink:#F7F6F2;
    --nav-ink-soft:#C8D3D5;
    --nav-line:#245562;
    --nav-accent:#B89B5E;
    --shadow: 0 1px 2px rgba(11,31,42,.07);
    color-scheme: light;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'IBM Plex Sans', ui-sans-serif, system-ui, sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
  }

  img{max-width:100%;}
  [hidden]{display:none !important;}
  a{color:inherit;}

  h1,h2,h3{
    font-family:'Fraunces', Georgia, serif;
    font-weight:500;
    margin:0;
    text-wrap:balance;
    letter-spacing:-0.01em;
  }

  .wrap{
    max-width:1180px;
    margin-inline:auto;
    padding-inline:24px;
  }
  @media (min-width:900px){ .wrap{padding-inline:48px;} }

  .eyebrow{
    font-family:'IBM Plex Mono', ui-monospace, monospace;
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }

  /* ---------- NAV ---------- */
  header{
    position:sticky;
    top:env(safe-area-inset-top,0px);
    z-index:50;
    background:var(--nav-bg);
    border-bottom:1px solid var(--nav-line);
  }
  .navrow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-block:16px;
  }
  .brand{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:28px;
    letter-spacing:-0.01em;
    text-decoration:none;
    color:var(--nav-ink);
  }
  @media (max-width:480px){ .brand{font-size:23px;} }
  nav ul{
    list-style:none;
    display:flex;
    gap:28px;
    margin:0;
    padding:0;
  }
  nav a{
    text-decoration:none;
    font-size:13px;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--nav-ink-soft);
    font-weight:500;
  }
  nav a:hover{color:var(--nav-accent);}
  .navlinks{display:none;}
  .navcta{
    display:none;
    border:1px solid var(--nav-ink);
    padding:9px 16px;
    font-size:13px;
    letter-spacing:.04em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--nav-ink);
    font-weight:500;
    white-space:nowrap;
  }
  .navcta:hover{background:var(--gold); border-color:var(--gold); color:var(--accent-deep);}
  .menubtn{
    border:1px solid var(--nav-line);
    background:none;
    color:var(--nav-ink);
    width:38px;height:38px;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;
    font-family:'IBM Plex Mono',monospace;
  }
  @media (min-width:760px){
    .navlinks{display:flex;}
    .navcta{display:inline-block;}
    .menubtn{display:none;}
  }
  #mobilemenu{
    border-top:1px solid var(--nav-line);
    padding:16px 0 20px;
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  #mobilemenu a{
    text-decoration:none;
    color:var(--nav-ink);
    font-size:15px;
    text-transform:uppercase;
    letter-spacing:.05em;
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    padding-block:56px 40px;
    overflow:hidden;
  }
  .hero-bg{
    position:absolute;
    inset:0;
    opacity:.30;
    background-image:url('/assets/img/hero.jpg');
    background-size:cover;
    background-position:center 30%;
    filter:grayscale(1) contrast(1.05);
    z-index:0;
    pointer-events:none;
    will-change:transform;
  }
  .hero-kicker{margin-bottom:18px; position:relative; z-index:2;}
  .hero-grid{
    position:relative;
    z-index:2;
  }
  .hero-word{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:clamp(56px, 12vw, 132px);
    line-height:.86;
    color:var(--nav-bg);
    user-select:none;
    position:relative;
    z-index:2;
  }
  .hero-claim{
    position:relative;
    z-index:1;
    margin-top:clamp(20px,3vw,40px);
    padding-left:clamp(4px, 3vw, 28px);
  }
  .hero-claim h1{
    font-size:clamp(30px, 5vw, 52px);
    line-height:1.08;
  }
  .hero-claim h1 em{
    font-style:normal;
    font-family:inherit;
    font-weight:700;
    text-transform:uppercase;
    color:var(--accent);
  }
  .hero-sub{
    margin-top:22px;
    max-width:46ch;
    color:var(--ink-soft);
    font-size:17px;
  }
  .hero-actions{
    margin-top:30px;
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    align-items:center;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:1px solid var(--ink);
    background:var(--ink);
    color:var(--bg);
    padding:13px 22px;
    text-decoration:none;
    font-size:13px;
    letter-spacing:.06em;
    text-transform:uppercase;
    font-weight:500;
    cursor:pointer;
  }
  .btn:hover{background:var(--accent-deep); border-color:var(--accent-deep);}
  .btn.ghost{
    background:none;
    color:var(--ink);
  }
  .btn.ghost:hover{background:var(--ink); color:var(--bg);}

  /* ---------- TICKER ---------- */
  .ticker{
    border-block:1px solid var(--line);
    background:var(--surface);
    overflow:hidden;
    white-space:nowrap;
    padding-block:12px;
  }
  .ticker-track{
    display:inline-flex;
    gap:36px;
    animation:scroll-left 32s linear infinite;
  }
  .ticker-track span{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
    display:inline-flex;
    align-items:center;
    gap:36px;
  }
  .ticker-track span::after{content:"◆"; color:var(--gold); font-size:8px;}
  @keyframes scroll-left{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }

  /* ---------- REVEAL ---------- */
  .reveal{
    opacity:1;
    transform:none;
  }
  @media (prefers-reduced-motion: no-preference){
    .reveal{
      opacity:0;
      transform:translateY(18px);
      transition:opacity .7s ease, transform .7s ease;
    }
    .reveal.in{opacity:1; transform:none;}
  }

  /* ---------- SECTION HEADS ---------- */
  section{padding-block:64px;}
  .sec-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
    margin-bottom:40px;
    border-bottom:1px solid var(--line);
    padding-bottom:24px;
    flex-wrap:wrap;
  }
  .sec-head h2{font-size:clamp(28px,4vw,42px);}
  .sec-num{
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    color:var(--ink-faint);
  }

  /* ---------- INTRO ---------- */
  .intro p{
    font-size:clamp(19px,2.4vw,24px);
    font-family:'Fraunces', serif;
    font-weight:400;
    line-height:1.5;
    max-width:52ch;
    color:var(--ink);
  }
  .intro-cols{
    display:grid;
    grid-template-columns:1fr;
    gap:40px;
    margin-top:40px;
  }
  @media (min-width:820px){ .intro-cols{grid-template-columns:1.3fr .7fr;} }
  .intro-facts{
    display:flex;
    flex-direction:column;
    gap:20px;
  }
  .intro-fact{
    border-top:1px solid var(--line);
    padding-top:14px;
  }
  .intro-fact b{display:block; font-size:15px; margin-bottom:4px;}
  .intro-fact span{color:var(--ink-soft); font-size:14px;}

  /* ---------- SERVICES ---------- */
  .service{
    border-top:1px solid var(--line);
    padding-block:26px;
    cursor:pointer;
  }
  .service:last-child{border-bottom:1px solid var(--line);}
  .service-row{
    display:flex;
    align-items:flex-start;
    gap:20px;
  }
  .service-num{
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    color:var(--ink-faint);
    padding-top:8px;
    min-width:28px;
  }
  .service-title{
    flex:1;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
  }
  .service-title h3{
    font-size:clamp(20px,2.6vw,28px);
    font-weight:500;
  }
  .service-plus{
    font-family:'IBM Plex Mono',monospace;
    font-size:20px;
    color:var(--accent);
    line-height:1;
    transition:transform .3s ease;
    flex-shrink:0;
  }
  .service.open .service-plus{transform:rotate(45deg);}
  .service-body{
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease;
  }
  .service.open .service-body{max-height:220px;}
  .service-body-in{
    padding:16px 0 4px 48px;
    color:var(--ink-soft);
    font-size:15px;
    max-width:60ch;
  }

  /* ---------- ACCOUNTING BAND ---------- */
  .accounting{
    background:var(--bg);
    color:var(--ink);
  }
  .accounting .eyebrow{color:var(--accent-deep); font-weight:700;}
  .accounting h2{color:var(--ink);}
  .acc-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:32px;
    margin-top:36px;
  }
  @media (min-width:820px){ .acc-grid{grid-template-columns:repeat(3,1fr);} }
  .acc-card{
    border-top:1px solid color-mix(in srgb, var(--ink) 22%, transparent);
    padding-top:18px;
  }
  .acc-card b{
    display:block;
    font-family:'Fraunces',serif;
    font-size:19px;
    font-weight:500;
    margin-bottom:8px;
  }
  .acc-card span{
    color:color-mix(in srgb, var(--ink) 68%, transparent);
    font-size:14px;
  }

  /* ---------- ABOUT ---------- */
  #sobre{ position:relative; overflow:hidden; }
  .about-bg{
    position:absolute;
    inset:0;
    opacity:.16;
    background-image:url('/assets/img/about.jpg');
    background-size:cover;
    background-position:center;
    filter:grayscale(1) contrast(1.05);
    z-index:0;
    pointer-events:none;
  }
  #sobre > .wrap{ position:relative; z-index:1; }
  .about-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:44px;
  }
  @media (min-width:900px){ .about-grid{grid-template-columns:.9fr 1.1fr;} }
  .about-mark{
    font-family:'Fraunces',serif;
    font-size:clamp(40px,7vw,64px);
    line-height:1;
    color:var(--accent);
  }
  .about-copy p{
    color:var(--ink-soft);
    max-width:58ch;
    margin:0 0 16px;
  }
  .about-copy p:first-child{
    color:var(--ink);
    font-size:18px;
  }
  .chips{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:22px;
  }
  .chip{
    background:var(--accent-soft);
    color:var(--accent-deep);
    border-radius:999px;
    padding:7px 14px;
    font-size:13px;
    font-weight:500;
  }

  /* ---------- ACTUALIDAD ---------- */
  .news-card{
    border:1px solid var(--line);
    padding:28px;
    background:var(--surface);
    box-shadow:var(--shadow);
  }
  .news-card p{color:var(--ink-soft); max-width:60ch;}
  .news-pending{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--accent-deep);
    background:var(--accent-soft);
    padding:6px 12px;
    margin-bottom:16px;
  }

  /* ---------- CONTACT ---------- */
  .contact-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:40px;
  }
  @media (min-width:900px){ .contact-grid{grid-template-columns:1fr 1fr;} }
  .mapcard{
    border:1px solid var(--line);
    background:var(--surface);
    padding:0;
    aspect-ratio:4/3;
    position:relative;
    overflow:hidden;
  }
  .mapcard svg{width:100%; height:100%;}
  .maplabel{
    position:absolute;
    left:16px;
    bottom:16px;
    background:var(--bg);
    border:1px solid var(--line);
    padding:8px 12px;
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:.04em;
  }
  .contact-list{
    display:flex;
    flex-direction:column;
    gap:0;
    margin-top:24px;
  }
  .contact-item{
    border-top:1px solid var(--line);
    padding-block:16px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
  }
  .contact-item:last-child{border-bottom:1px solid var(--line);}
  .contact-item .label{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  .contact-item .value{font-size:16px;}
  .copybtn{
    border:1px solid var(--line);
    background:none;
    color:var(--ink-soft);
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.05em;
    text-transform:uppercase;
    padding:6px 10px;
    cursor:pointer;
  }
  .copybtn:hover{border-color:var(--accent); color:var(--accent-deep);}

  form{display:flex; flex-direction:column; gap:18px;}
  .field{display:flex; flex-direction:column; gap:6px;}
  .field label{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  .field input, .field textarea{
    border:none;
    border-bottom:1px solid var(--line);
    background:transparent;
    color:var(--ink);
    font-family:inherit;
    font-size:16px;
    padding:8px 2px;
  }
  .field input:focus, .field textarea:focus{
    outline:none;
    border-color:var(--gold);
  }
  .field textarea{resize:vertical; min-height:90px;}
  .formnote{
    font-size:13px;
    color:var(--ink-faint);
    margin-top:-6px;
  }
  .success{
    border:1px solid var(--accent);
    background:var(--accent-soft);
    color:var(--accent-deep);
    padding:16px;
    font-size:14px;
  }

  /* ---------- FOOTER ---------- */
  footer{
    --bg:#0B1F2A;
    --ink:#F7F6F2;
    --accent:#B89B5E;
    background:var(--bg);
    color:var(--ink);
    padding-block:48px 28px;
  }
  .footer-ticker{
    border-block:1px solid color-mix(in srgb, var(--ink) 20%, transparent);
    overflow:hidden;
    white-space:nowrap;
    padding-block:12px;
    margin-bottom:44px;
  }
  .footer-ticker .ticker-track span{color:color-mix(in srgb, var(--ink) 55%, transparent);}
  .footer-ticker .ticker-track span::after{color:var(--accent);}
  .footer-top{
    display:grid;
    grid-template-columns:1fr;
    gap:32px;
  }
  @media (min-width:760px){ .footer-top{grid-template-columns:1.3fr 1fr 1fr;} }
  .footer-top p{color:color-mix(in srgb, var(--ink) 68%, transparent); max-width:32ch;}
  .footer-top h4{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:color-mix(in srgb, var(--ink) 50%, transparent);
    margin:0 0 14px;
  }
  .footer-top ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
  .footer-top a{text-decoration:none; font-size:14px; color:color-mix(in srgb, var(--ink) 85%, transparent);}
  .footer-top a:hover{color:var(--accent);}
  .footer-mark{
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:clamp(48px,11vw,120px);
    line-height:.9;
    margin-top:56px;
    color:var(--accent);
  }
  .footer-bottom{
    margin-top:32px;
    padding-top:20px;
    border-top:1px solid color-mix(in srgb, var(--ink) 18%, transparent);
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:10px;
    font-size:12px;
    color:color-mix(in srgb, var(--ink) 48%, transparent);
  }

  /* ---------- MULTIPÁGINA ---------- */
  nav a[aria-current="page"]{color:var(--nav-ink); box-shadow:inset 0 -2px 0 var(--gold); padding-bottom:4px;}
  #mobilemenu a[aria-current="page"]{color:var(--gold);}

  .more{margin-top:36px; display:flex;}
  .more-btn span{transition:transform .2s ease;}
  .more-btn:hover span{transform:translateX(4px);}

  .page-hero{
    position:relative;
    overflow:hidden;
    padding-block:56px 48px;
    border-bottom:1px solid var(--line);
  }
  .crumbs{display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
  .crumbs a{text-decoration:none; color:var(--ink-faint);}
  .crumbs a:hover{color:var(--accent);}
  .crumbs .sep{color:var(--gold);}
  .crumbs [aria-current]{color:var(--accent-deep);}
  .page-hero h1{
    font-size:clamp(36px,6vw,64px);
    line-height:1.04;
    margin-top:22px;
    color:var(--accent);
  }
  .page-lead{
    margin-top:20px;
    max-width:58ch;
    font-size:clamp(17px,1.8vw,19px);
    color:var(--ink-soft);
  }

  .draft{
    border:1px dashed color-mix(in srgb, var(--gold) 70%, transparent);
    background:color-mix(in srgb, var(--gold) 7%, var(--surface));
    padding:24px 28px;
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .draft .eyebrow{color:color-mix(in srgb, var(--gold) 75%, var(--ink));}
  .draft ul{margin:0; padding-left:20px; color:var(--ink-soft); display:flex; flex-direction:column; gap:6px;}

  .cta-band{
    background:var(--accent);
    color:var(--nav-ink);
    padding-block:56px;
  }
  .cta-in{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:24px;}
  .cta-band h2{font-size:clamp(26px,3.6vw,38px); color:var(--nav-ink);}
  .cta-band p{margin:10px 0 0; color:var(--nav-ink-soft); max-width:48ch;}
  .btn.gold{background:var(--gold); border-color:var(--gold); color:var(--accent-deep);}
  .btn.gold:hover{background:var(--nav-ink); border-color:var(--nav-ink); color:var(--accent-deep);}

  .legal-links{display:flex; flex-wrap:wrap; gap:18px;}
  .legal-links a{color:inherit; text-decoration:none;}
  .legal-links a:hover{color:var(--gold);}
  a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

  /* ---------- SERVICIOS ---------- */
  .jump{display:flex; flex-wrap:wrap; gap:8px; margin-top:28px;}
  .jump a{
    text-decoration:none; font-size:13px; color:var(--accent-deep);
    border:1px solid var(--line); background:var(--surface);
    padding:7px 13px; border-radius:999px;
  }
  .jump a:hover{border-color:var(--gold); color:var(--accent);}

  .areas{padding-block:24px 48px;}
  .area{
    display:grid; grid-template-columns:1fr; gap:24px 56px;
    padding-block:48px; border-bottom:1px solid var(--line);
    scroll-margin-top:90px;
  }
  .area:last-child{border-bottom:none;}
  @media (min-width:900px){ .area{grid-template-columns:.85fr 1.15fr;} }
  .area-head{display:flex; flex-direction:column; gap:14px; align-self:start;}
  @media (min-width:900px){ .area-head{position:sticky; top:110px;} }
  .area-num{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--gold);}
  .area-head h2{font-size:clamp(26px,3.2vw,34px); line-height:1.12; color:var(--accent);}
  .area-who{border-left:2px solid var(--gold); padding-left:14px; margin-top:6px;}
  .area-who p{margin:4px 0 0; font-size:14px; color:var(--ink-soft); max-width:40ch;}
  .area-lead{
    font-family:'Fraunces',serif; font-size:clamp(18px,2vw,21px); line-height:1.5;
    margin:0 0 26px; max-width:52ch; color:var(--ink);
  }
  .area-body h3.eyebrow{font-weight:500; margin:0 0 12px; color:var(--ink-faint);}
  .incl{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; gap:0 32px;}
  @media (min-width:640px){ .incl{grid-template-columns:1fr 1fr;} }
  .incl li{
    position:relative; padding:12px 0 12px 20px; border-top:1px solid var(--line);
    font-size:15px; color:var(--ink-soft);
  }
  .incl li::before{content:""; position:absolute; left:2px; top:21px; width:7px; height:7px; background:var(--gold); transform:rotate(45deg);}

  .steps-sec{background:var(--surface); border-block:1px solid var(--line);}
  .steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; gap:32px;}
  @media (min-width:640px){ .steps{grid-template-columns:1fr 1fr;} }
  @media (min-width:1000px){ .steps{grid-template-columns:repeat(4,1fr);} }
  .steps li{display:flex; flex-direction:column; gap:8px; border-top:2px solid var(--accent); padding-top:18px;}
  .step-n{font-family:'Fraunces',serif; font-size:44px; line-height:1; color:var(--gold);}
  .steps b{font-family:'Fraunces',serif; font-weight:500; font-size:20px; color:var(--accent-deep);}
  .steps p{margin:0; font-size:15px; color:var(--ink-soft);}

  .faq{display:flex; flex-direction:column; max-width:820px;}
  .faq details{border-top:1px solid var(--line);}
  .faq details:last-child{border-bottom:1px solid var(--line);}
  .faq summary{
    list-style:none; cursor:pointer; padding:22px 40px 22px 0; position:relative;
    font-family:'Fraunces',serif; font-size:clamp(18px,2vw,21px); color:var(--ink);
  }
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+"; position:absolute; right:4px; top:20px; font-family:'IBM Plex Mono',monospace; font-size:20px; color:var(--gold); transition:transform .25s ease;}
  .faq details[open] summary::after{transform:rotate(45deg);}
  .faq details p{margin:0 0 22px; color:var(--ink-soft); max-width:62ch;}

  /* ---------- SERVICIOS: TARJETAS ---------- */
  .svc-sec{padding-block:48px 72px;}
  .svc-hint{margin:0 0 18px;}
  .svc-grid{display:grid; grid-template-columns:1fr; gap:14px;}
  @media (min-width:600px){ .svc-grid{grid-template-columns:repeat(2,1fr);} }
  @media (min-width:900px){ .svc-grid{grid-template-columns:repeat(3,1fr);} }
  .svc-store{display:none;}

  .svc-card{
    position:relative; overflow:hidden; isolation:isolate;
    aspect-ratio:4/3; max-width:100%;
    display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; gap:6px;
    padding:20px; border:0; margin:0; text-align:left; cursor:pointer; text-decoration:none;
    background:var(--accent-deep); color:var(--nav-ink); font:inherit;
  }
  .svc-card::before{
    content:""; position:absolute; inset:0; z-index:-2;
    background:var(--img) center/cover no-repeat;
    filter:grayscale(1) contrast(1.05);
    transition:transform .6s ease;
  }
  .svc-card::after{
    content:""; position:absolute; inset:0; z-index:-1;
    background:linear-gradient(180deg, rgba(11,31,42,.05) 30%, rgba(11,31,42,.82) 100%);
    transition:background-color .35s ease, opacity .35s ease;
  }
  .svc-card:hover::after, .svc-card:focus-visible::after, .svc-card[aria-expanded="true"]::after{
    background-color:rgba(18,60,70,.80);
  }
  .svc-card:hover::before, .svc-card:focus-visible::before{transform:scale(1.04);}
  .svc-card[aria-expanded="true"]{box-shadow:inset 0 -4px 0 var(--gold);}
  .svc-num{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.1em; color:var(--gold);}
  .svc-title{font-family:'Fraunces',serif; font-size:clamp(19px,1.7vw,22px); line-height:1.18; font-weight:500; text-wrap:balance;}
  .svc-more{
    font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--nav-ink-soft); max-height:0; opacity:0; overflow:hidden;
    transition:max-height .3s ease, opacity .3s ease;
  }
  .svc-card:hover .svc-more, .svc-card:focus-visible .svc-more, .svc-card[aria-expanded="true"] .svc-more{max-height:20px; opacity:1;}
  @media (hover:none){ .svc-more{max-height:20px; opacity:1;} }
  .svc-card[aria-expanded="true"] .svc-more span{display:inline-block; transform:rotate(45deg);}
  .svc-cta{background:var(--accent);}
  .svc-cta::before, .svc-cta::after{display:none;}
  .svc-cta:hover{background:var(--accent-deep);}

  .svc-card[data-k="mercantil"]{--img:url('/assets/img/svc-mercantil.jpg');}
  .svc-card[data-k="fiscal"]{--img:url('/assets/img/svc-fiscal.jpg');}
  .svc-card[data-k="civil"]{--img:url('/assets/img/svc-civil.jpg');}
  .svc-card[data-k="arrendamientos"]{--img:url('/assets/img/svc-arrendamientos.jpg');}
  .svc-card[data-k="notificaciones"]{--img:url('/assets/img/svc-notificaciones.jpg');}
  .svc-card[data-k="certificados"]{--img:url('/assets/img/svc-certificados.jpg');}
  .svc-card[data-k="legaltech"]{--img:url('/assets/img/svc-legaltech.jpg');}
  .svc-card[data-k="contabilidad"]{--img:url('/assets/img/svc-contabilidad.jpg');}
  .svc-card[data-k="comunidades"]{--img:url('/assets/img/svc-comunidades.jpg');}

  .svc-panel{grid-column:1/-1; scroll-margin-top:100px;}
  .svc-panel-in{
    position:relative; background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--accent);
    padding:36px clamp(20px,3vw,40px) 32px;
    display:grid; grid-template-columns:1fr; gap:28px 56px;
    animation:svc-open .35s ease;
  }
  @media (min-width:900px){ .svc-panel-in{grid-template-columns:.9fr 1.1fr;} }
  @keyframes svc-open{from{opacity:0; transform:translateY(-6px);} to{opacity:1; transform:none;}}
  @media (prefers-reduced-motion: reduce){ .svc-panel-in{animation:none;} .svc-card::before{transition:none;} }
  .svc-panel-head{display:flex; flex-direction:column; gap:14px;}
  .svc-panel-head h2{font-size:clamp(24px,2.8vw,32px); line-height:1.12; color:var(--accent); padding-right:90px;}
  .svc-panel-head .area-lead{margin:0;}
  .svc-panel-body h3.eyebrow{font-weight:500; margin:0 0 12px; color:var(--ink-faint);}
  .svc-panel-body .incl + h3.eyebrow, .svc-panel-body .svc-feature + h3.eyebrow{margin-top:28px;}
  .svc-close{
    position:absolute; top:18px; right:18px; background:none; border:1px solid var(--line); cursor:pointer;
    font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
    color:var(--ink-soft); padding:6px 10px;
  }
  .svc-close:hover{border-color:var(--gold); color:var(--accent-deep);}
  .svc-feature{
    margin-top:24px; padding:20px 22px; background:var(--accent-soft); border-left:3px solid var(--gold);
    display:flex; flex-direction:column; gap:6px;
  }
  .svc-feature .eyebrow{color:var(--accent);}
  .svc-feature b{font-family:'Fraunces',serif; font-weight:500; font-size:20px; color:var(--accent-deep);}
  .svc-feature p{margin:0; font-size:15px; color:var(--ink-soft);}

  /* ---------- TEXTO JUSTIFICADO ---------- */
  main p, main li, footer p,
  .acc-card span, .intro-fact span, .area-who p{
    text-align:justify;
    -webkit-hyphens:auto; hyphens:auto;
    hyphenate-limit-chars:7 3 3;
  }
  main h1, main h2, main h3, .crumbs, .formnote, .success, .svc-hint, .maplabel, .cta-band p{
    text-align:left; -webkit-hyphens:manual; hyphens:manual;
  }
  .svc-panel-cta{grid-column:1/-1; display:flex; justify-content:flex-end; border-top:1px solid var(--line); padding-top:24px;}
  @media (max-width:599px){
    .svc-panel-cta{justify-content:stretch;} .svc-panel-cta .btn{width:100%; justify-content:center;}
    main p, main li, footer p, .acc-card span, .intro-fact span, .area-who p{text-align:left; -webkit-hyphens:manual; hyphens:manual;}
  }
  .svc-cta-side{display:none; margin-top:8px;}
  @media (min-width:900px){
    .svc-cta-side{display:flex;}
    .svc-panel-cta{display:none;}
  }

  /* ---------- NOSOTROS ---------- */
  .ab-intro-grid{display:grid; grid-template-columns:1fr; gap:28px 64px;}
  @media (min-width:900px){ .ab-intro-grid{grid-template-columns:1fr 1.1fr; align-items:start;} }
  .ab-statement{font-family:'Fraunces',serif; font-size:clamp(24px,3vw,34px); line-height:1.25; color:var(--accent); margin:0;}
  .ab-intro-copy p{margin:0 0 16px; color:var(--ink-soft); max-width:60ch;}
  .ab-intro-copy p:first-child{color:var(--ink); font-size:17px;}

  .ab-founder{background:var(--surface); border-block:1px solid var(--line);}
  .ab-founder-grid{display:grid; grid-template-columns:1fr; gap:36px 64px; align-items:start;}
  @media (min-width:900px){ .ab-founder-grid{grid-template-columns:.8fr 1.2fr;} }
  .ab-photo{
    margin:0; aspect-ratio:4/5; max-width:100%; position:relative; overflow:hidden;
    background:var(--accent-deep);
    display:flex; align-items:flex-end; padding:14px;
  }
  .ab-photo-note{background:var(--bg); padding:6px 10px; color:var(--ink-soft);}
  .ab-founder-copy h2{font-size:clamp(34px,4.5vw,52px); color:var(--accent); margin-top:10px;}
  .ab-role{font-family:'Fraunces',serif; font-size:19px; color:var(--ink); margin:6px 0 22px;}
  .ab-founder-copy p:not(.ab-role){color:var(--ink-soft); max-width:62ch; margin:0 0 16px;}

  .ab-worlds-lead{font-family:'Fraunces',serif; font-size:clamp(19px,2.2vw,23px); line-height:1.45; max-width:48ch; margin:0 0 32px;}
  .ab-worlds-grid{display:grid; grid-template-columns:1fr; gap:24px;}
  @media (min-width:760px){ .ab-worlds-grid{grid-template-columns:1fr 1fr;} }
  .ab-world{border-top:3px solid var(--accent); background:var(--surface); padding:24px 26px; display:flex; flex-direction:column; gap:8px;}
  .ab-world + .ab-world{border-top-color:var(--gold);}
  .ab-world b{font-family:'Fraunces',serif; font-weight:500; font-size:26px; color:var(--accent-deep);}
  .ab-world .incl{grid-template-columns:1fr !important; margin-top:6px;}

  .ab-training{background:var(--accent); color:var(--nav-ink);}
  .ab-training .eyebrow{color:var(--gold);}
  .ab-training h2{font-size:clamp(28px,3.6vw,40px); margin-top:10px; color:var(--nav-ink);}
  .ab-training-grid{display:grid; grid-template-columns:1fr; gap:28px 64px;}
  @media (min-width:900px){ .ab-training-grid{grid-template-columns:.8fr 1.2fr;} }
  .ab-cv{list-style:none; margin:0; padding:0;}
  .ab-cv li{display:flex; flex-direction:column; gap:2px; padding:14px 0; border-top:1px solid rgba(247,246,242,.2); text-align:left !important;}
  .ab-cv li:last-child{border-bottom:1px solid rgba(247,246,242,.2);}
  .ab-cv b{font-family:'Fraunces',serif; font-weight:500; font-size:19px;}
  .ab-cv span{font-size:14px; color:var(--nav-ink-soft);}

  .ab-commit-grid{display:grid; grid-template-columns:1fr; gap:28px;}
  @media (min-width:640px){ .ab-commit-grid{grid-template-columns:1fr 1fr;} }
  @media (min-width:1000px){ .ab-commit-grid{grid-template-columns:repeat(4,1fr);} }
  .ab-c{border-top:1px solid var(--line); padding-top:16px;}
  .ab-c b{display:block; font-family:'Fraunces',serif; font-weight:500; font-size:20px; color:var(--accent-deep); margin-bottom:6px;}
  .ab-c p{margin:0; font-size:15px; color:var(--ink-soft);}
  main .ab-statement, main .ab-worlds-lead{text-align:left; hyphens:manual;}

  .ab-photo img{width:100%; height:100%; object-fit:cover; display:block;}
  .ab-photo{padding:0;}

  /* ---------- CONTACTO ---------- */
  .ct-grid{display:grid; grid-template-columns:1fr; gap:40px 64px;}
  @media (min-width:960px){ .ct-grid{grid-template-columns:1.25fr .85fr; align-items:start;} }
  .ct-form-col h2{font-size:clamp(28px,3.4vw,38px); color:var(--accent); margin-top:10px;}
  .ct-intro{color:var(--ink-soft); max-width:56ch; margin:12px 0 28px;}
  .ct-row{display:grid; grid-template-columns:1fr; gap:18px;}
  @media (min-width:640px){ .ct-row{grid-template-columns:1fr 1fr;} }
  .field select{border:none; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); font:inherit; font-size:16px; padding:8px 2px;}
  .field select:focus{outline:none; border-color:var(--gold);}
  .opt{text-transform:none; letter-spacing:0;}
  .ct-check{display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--ink-soft);}
  .ct-check input{margin-top:3px; accent-color:var(--accent);}
  .ct-check a, .ct-legal a{color:var(--accent);}
  .ccform .btn{align-self:flex-start;}
  main .ct-legal{font-size:12px; color:var(--ink-faint); margin:4px 0 0; line-height:1.5;}
  .ct-info{display:flex; flex-direction:column; gap:20px;}
  .ct-card{background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--accent); padding:24px 24px 18px;}
  .ct-card .contact-list{margin-top:10px;}
  .ct-card .contact-item .value{font-size:15px;}
  a.copybtn{text-decoration:none; display:inline-block;}
  .ct-next{border-top-color:var(--gold);}
  .ct-steps{list-style:none; counter-reset:s; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:14px;}
  .ct-steps li{counter-increment:s; display:grid; grid-template-columns:32px 1fr; column-gap:10px; text-align:left !important;}
  .ct-steps li::before{content:counter(s); grid-row:span 2; font-family:'Fraunces',serif; font-size:26px; line-height:1; color:var(--gold);}
  .ct-steps b{font-family:'Fraunces',serif; font-weight:500; font-size:17px; color:var(--accent-deep);}
  .ct-steps span{font-size:14px; color:var(--ink-soft);}

  /* ---------- ACTUALIDAD ---------- */
  .nw-card{background:var(--surface); border:1px solid var(--line); padding:24px; display:flex; flex-direction:column; gap:10px;}
  .nw-meta{display:flex; flex-wrap:wrap; gap:10px; align-items:center; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint);}
  .nw-area{color:var(--accent); border:1px solid var(--accent-soft); background:var(--accent-soft); padding:3px 8px;}
  .nw-card h3{font-size:20px; line-height:1.25; color:var(--ink); font-weight:500;}
  .nw-card p{margin:0; color:var(--ink-soft); font-size:15px; flex:1;}
  .nw-link{align-self:flex-start; margin-top:6px; text-decoration:none; font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); border-bottom:1px solid var(--gold); padding-bottom:2px;}
  .nw-link:hover{color:var(--accent-deep);}
  .nw-feat{background:var(--accent); border-color:var(--accent); color:var(--nav-ink); padding:clamp(24px,4vw,44px); margin-bottom:56px;}
  .nw-feat .nw-meta{color:var(--nav-ink-soft);}
  .nw-feat .nw-area{background:transparent; border-color:var(--gold); color:var(--gold);}
  .nw-feat h3{font-size:clamp(26px,3.4vw,38px); color:var(--nav-ink); max-width:24ch;}
  .nw-feat p{color:var(--nav-ink-soft); font-size:17px; max-width:60ch;}
  .nw-feat .nw-link{color:var(--nav-ink);}
  .nw-badge{align-self:flex-start; font-size:13px; color:var(--accent-deep); background:var(--gold); padding:4px 10px;}
  .nw-grid{display:grid; grid-template-columns:1fr; gap:18px;}
  @media (min-width:640px){ .nw-grid{grid-template-columns:1fr 1fr;} }
  @media (min-width:1000px){ .nw-grid{grid-template-columns:repeat(4,1fr);} }
  main .nw-card p{text-align:left; hyphens:manual;}
  /* Nosotros: foto más discreta y cargo más visible */
  @media (min-width:900px){ .ab-founder-grid{grid-template-columns:260px 1fr; gap:36px 56px;} }
  .ab-photo{max-width:260px;}
  @media (max-width:899px){ .ab-photo{max-width:220px;} }
  .ab-founder-copy > .eyebrow{font-family:'Fraunces',serif; font-size:clamp(20px,2.2vw,24px); letter-spacing:.02em; text-transform:none; color:var(--gold);}
  .ab-founder-copy h2{font-size:clamp(30px,3.6vw,42px); margin-top:4px;}

  /* ---------- LEGALES ---------- */
  .lg > *{max-width:820px;}
  .lg h2{font-size:clamp(20px,2.2vw,24px); color:var(--accent); margin:40px 0 12px;}
  .lg p, .lg li{color:var(--ink-soft); font-size:15.5px;}
  .lg p{margin:0 0 14px;}
  .lg ul{margin:0 0 16px; padding-left:20px; display:flex; flex-direction:column; gap:6px;}
  .lg ul.lg-data{list-style:none; padding:16px 20px; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--gold);}
  .lg b{color:var(--ink); font-weight:600;}
  .lg a{color:var(--accent);}
  main .lg-date{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); text-align:left;}
  .lg-table{overflow-x:auto; margin:0 0 16px; border:1px solid var(--line);}
  .lg-table table{border-collapse:collapse; width:100%; min-width:640px; font-size:14px;}
  .lg-table th{background:var(--accent); color:var(--nav-ink); text-align:left; font-weight:500; padding:10px 12px;}
  .lg-table td{padding:10px 12px; border-top:1px solid var(--line); vertical-align:top; color:var(--ink-soft); text-align:left !important; hyphens:manual !important;}
  .lg-table tr:nth-child(even) td{background:var(--surface);}

  /* ---------- AVISO DE COOKIES ---------- */
  .linklike{background:none; border:0; padding:0; font:inherit; color:inherit; cursor:pointer;}
  .linklike:hover{color:var(--gold);}
  .ck{position:fixed; left:0; right:0; bottom:0; z-index:100; padding:0 16px calc(16px + env(safe-area-inset-bottom,0px));}
  .ck-in{max-width:980px; margin:0 auto; background:var(--accent-deep); color:var(--nav-ink); border-top:3px solid var(--gold); box-shadow:0 10px 30px rgba(11,31,42,.35); padding:18px 22px; display:flex; flex-wrap:wrap; gap:14px 24px; align-items:center; justify-content:space-between;}
  .ck-in p{margin:0; font-size:14px; line-height:1.5; max-width:62ch; color:var(--nav-ink-soft); text-align:left;}
  .ck-in a{color:var(--gold);}
  .ck-btns{display:flex; gap:10px;}
  .ck .btn{background:var(--gold); border-color:var(--gold); color:var(--accent-deep); padding:10px 18px;}
  .ck .btn.ghost{background:transparent; border-color:var(--nav-ink); color:var(--nav-ink);}
  .ck .btn.ghost:hover{background:var(--nav-ink); color:var(--accent-deep);}

  /* ---------- PORTADA ---------- */
  .home-svc{background:var(--surface); border-block:1px solid var(--line);}
  .home-about-grid{display:grid; grid-template-columns:1fr; gap:28px 56px; align-items:center;}
  @media (min-width:760px){ .home-about-grid{grid-template-columns:220px 1fr;} }
  .home-about .ab-photo{max-width:220px;}
  .home-about h2{font-size:clamp(28px,3.4vw,38px); color:var(--accent); margin:10px 0 14px;}
  .home-about p{color:var(--ink-soft); max-width:62ch; margin:0;}
  .home-news{background:var(--surface); border-block:1px solid var(--line);}
  @media (min-width:1000px){ .nw-grid-3{grid-template-columns:repeat(3,1fr);} }
  .home-contact{background:var(--accent); color:var(--nav-ink);}
  .home-contact .eyebrow{color:var(--gold);}
  .home-contact h2{font-size:clamp(28px,3.6vw,40px); color:var(--nav-ink); margin:10px 0 12px;}
  .home-contact p{color:var(--nav-ink-soft); margin:0;}
  .home-contact-grid{display:grid; grid-template-columns:1fr; gap:32px 64px; align-items:center;}
  @media (min-width:900px){ .home-contact-grid{grid-template-columns:1fr 1fr;} }
  .home-contact .contact-item{border-color:rgba(247,246,242,.2);}
  .home-contact .contact-item .label{color:rgba(247,246,242,.6);}
  .home-contact .copybtn{border-color:rgba(247,246,242,.35); color:var(--nav-ink);}
  .home-contact .copybtn:hover{border-color:var(--gold); color:var(--gold);}
  .home-about p{margin:0 0 32px;}
  .home-about .ab-world p{margin:0;}
  /* Franja superior en azul petróleo, como la del pie */
  .ticker{background:var(--accent); border-block:1px solid var(--accent);}
  .ticker .ticker-track span{color:var(--nav-ink-soft);}
