/*
Theme Name: Estudio Soria & Asociados
Theme URI: https://estudiosoriayasociados.com.uy
Author: Estudio Soria & Asociados
Description: Tema a medida para Estudio Soria & Asociados — servicios jurídicos, notariales y contables. Generado a partir del mockup de una sola página.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: estudio-soria
*/

  :root{
    --ink:#10192E;
    --navy:#14213D;
    --navy-2:#23315A;
    --gold:#B08D57;
    --gold-deep:#8C6F3E;
    --gold-soft:#D9C7A3;
    --parchment:#F2EDE6;
    --paper:#FAF9F6;
    --stone:#6E727A;
    --line: rgba(203,179,126,0.3);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--parchment);
    color:var(--ink);
    font-family:'Public Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Playfair Display', serif;
    margin:0;
    font-weight:500;
    letter-spacing:-0.01em;
  }
  .mono{
    font-family:'Cinzel', serif;
    letter-spacing:0.06em;
    text-transform:uppercase;
  }
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

  /* subtle paper grain */
  .grain{
    position:relative;
  }
  .grain::before{
    content:"";
    position:absolute; inset:0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
    pointer-events:none;
    mix-blend-mode:multiply;
  }

  /* ---------- HEADER ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(242,236,223,0.88);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 0;
  }
  .brand{
    display:flex; align-items:center; gap:14px;
  }
  .brand .mono-mark{
    font-family:'Spectral', serif;
    font-weight:600;
    font-size:30px;
    color:var(--navy);
    line-height:1;
    border-right:1.5px solid var(--gold);
    padding-right:14px;
  }
  .brand-text{
    font-family:'Spectral', serif;
    line-height:1.28;
  }
  .brand-text b{
    display:block; font-size:19px; font-weight:600; color:var(--navy);
  }
  .brand-text b.amp{
    font-weight:400; font-size:15px; color:var(--navy);
    margin-top:-2px;
  }
  .brand-text .tagline{
    display:block; margin-top:4px;
    font-family:'Cinzel', serif;
    font-size:9px; letter-spacing:0.14em; color:var(--stone); text-transform:uppercase;
    font-weight:400;
  }
  nav.links{
    display:flex; gap:32px;
    font-size:14px; font-weight:500;
  }
  nav.links a{
    position:relative; padding-bottom:3px;
  }
  nav.links a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
    transition:width .25s ease;
  }
  nav.links a:hover::after{width:100%;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:11px 22px;
    border-radius:2px;
    font-size:13px; font-weight:600; letter-spacing:0.03em;
    cursor:pointer; border:1px solid transparent;
    transition:all .25s ease;
  }
  .btn-gold{ background:var(--gold); color:var(--ink); }
  .btn-gold:hover{ background:#7A6035; }
  .btn-ghost{ border-color:var(--navy); color:var(--navy); }
  .btn-ghost:hover{ background:var(--navy); color:var(--paper); }
  .btn-line-light{ border-color:rgba(231,215,164,0.5); color:var(--gold-soft); }
  .btn-line-light:hover{ background:rgba(231,215,164,0.12); }

  /* ---------- HERO ---------- */
  .hero{
    background:var(--navy);
    color:var(--paper);
    position:relative;
    overflow:hidden;
  }
  .hero .wrap{
    display:grid;
    grid-template-columns:1.15fr 0.85fr;
    align-items:center;
    gap:40px;
    padding-top:96px;
    padding-bottom:96px;
    position:relative; z-index:2;
  }
  .eyebrow{
    display:inline-flex; align-items:center; gap:10px;
    font-size:11px; color:var(--gold-soft);
    margin-bottom:22px;
  }
  .eyebrow::before{
    content:""; width:26px; height:1px; background:var(--gold-soft);
  }
  .hero h1{
    font-size:clamp(34px, 4.4vw, 58px);
    line-height:1.05;
    max-width:14ch;
  }
  .hero h1 em{ font-style:italic; color:var(--gold-soft); }
  .hero p.lead{
    margin-top:22px;
    font-size:17px;
    line-height:1.65;
    max-width:44ch;
    color:rgba(250,247,239,0.78);
  }
  .hero-actions{
    display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;
  }
  .hero-stats{
    display:flex; gap:36px; margin-top:56px;
    border-top:1px solid rgba(231,215,164,0.18);
    padding-top:26px;
  }
  .hero-stats div b{
    display:block; font-family:'Playfair Display', serif; font-size:24px; color:var(--gold-soft);
  }
  .hero-stats div span{
    font-size:11px; color:rgba(250,247,239,0.55);
  }

  /* hero monogram (sin forma geométrica) */
  .seal-wrap{
    display:flex; align-items:center; justify-content:center;
  }
  .hero-mono{
    font-family:'Spectral', serif;
    font-weight:600;
    font-size:clamp(160px, 22vw, 280px);
    line-height:1;
    color:var(--gold-soft);
    opacity:0.92;
  }

  /* ---------- SECTION HEADS ---------- */
  .section{ padding:100px 0; }
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end; gap:24px;
    margin-bottom:56px; flex-wrap:wrap;
  }
  .section-head .tag{
    font-size:11px; color:var(--stone); margin-bottom:14px; display:block;
  }
  .section-head h2{
    font-size:clamp(26px, 3vw, 38px);
    max-width:16ch;
  }
  .section-head p{
    max-width:32ch; font-size:14.5px; color:var(--stone); line-height:1.6;
  }

  /* ---------- MISIÓN ---------- */
  .mission{ background:var(--paper); padding-bottom:20px; }
  .mission-inner{
    max-width:760px; margin:0 auto; text-align:center;
  }
  .mission-inner .tag{ display:block; font-size:11px; color:var(--stone); margin-bottom:18px; }
  .mission-inner h2{
    font-size:clamp(24px,3vw,34px); line-height:1.3; margin-bottom:20px;
  }
  .mission-inner p{
    font-size:15.5px; line-height:1.75; color:#262B36; max-width:56ch; margin:0 auto;
  }

  /* ---------- SERVICIOS ---------- */
  .services{ background:var(--parchment); }
  .service-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .service-card{
    background:var(--paper);
    padding:34px 34px;
    display:flex; flex-direction:column; gap:16px;
    transition:background .3s ease;
  }
  .service-card:hover{ background:rgba(176,141,87,0.08); }
  .service-num{
    font-family:'Cinzel', serif; font-size:11px; color:var(--gold-deep);
  }
  .service-card h3{ font-size:20px; line-height:1.25; }
  .service-card ul{
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column; gap:9px;
  }
  .service-card li{
    font-size:13.5px; color:var(--stone); line-height:1.5;
    padding-left:16px; position:relative;
  }
  .service-card li::before{
    content:""; position:absolute; left:0; top:8px;
    width:6px; height:1px; background:var(--gold-deep);
  }
  .service-card-wide{
    grid-column: 1 / -1;
    flex-direction:row;
    align-items:center;
    gap:34px;
  }
  .service-card-wide h3{
    flex:0 0 auto;
    min-width:220px;
  }
  .service-card-wide p{
    font-size:14px; line-height:1.65; color:var(--stone); margin:0;
  }

  @media (max-width:700px){
    .service-card-wide{ flex-direction:column; align-items:flex-start; gap:14px; }
  }

  @media (max-width: 760px){
    .service-grid{ grid-template-columns:1fr; }
  }

  /* ---------- SAS ---------- */
  .sas{ background:var(--paper); }
  .sas-intro{
    display:flex; align-items:center; justify-content:space-between; gap:32px;
    flex-wrap:wrap;
    padding-bottom:30px;
    margin-bottom:30px;
    border-bottom:1px solid var(--line);
  }
  .sas-intro p{
    font-size:15.5px; line-height:1.7; color:#262B36; max-width:56ch; margin:0;
  }
  .sas-form-cta{
    display:flex; align-items:center; justify-content:space-between; gap:24px;
    flex-wrap:wrap;
    background:var(--navy);
    padding:26px 30px;
    margin:28px 0;
    border-radius:2px;
  }
  .sas-form-cta .tag{ font-size:10.5px; color:var(--gold-soft); display:block; margin-bottom:6px; }
  .sas-form-cta b{
    display:block; font-family:'Spectral', serif; font-weight:600; font-size:19px; color:var(--paper);
    margin-bottom:4px;
  }
  .sas-form-cta-desc{ font-size:13px; color:rgba(250,247,239,0.7); max-width:46ch; display:block; }
  .sas-form-cta-actions{
    display:flex; gap:12px; flex-wrap:wrap; flex:none;
  }

  .sas-chips{
    display:flex; flex-wrap:wrap; gap:12px;
    margin-bottom:44px;
  }
  .sas-chip{
    font-family:'Cinzel', serif; font-size:11px; letter-spacing:0.05em; text-transform:uppercase;
    color:var(--gold-deep);
    border:1px solid var(--line);
    background:var(--parchment);
    padding:9px 18px;
    border-radius:20px;
  }
  .sas-steps{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .sas-card{
    display:flex; flex-direction:column; gap:8px;
    padding:26px 24px;
    background:var(--paper);
    transition:background .3s ease;
  }
  .sas-card:hover{ background:var(--parchment); }
  .sas-num{ font-size:11px; color:var(--gold-deep); }
  .sas-card b{ font-family:'Playfair Display', serif; font-size:16.5px; font-weight:500; }
  .sas-card span{ font-size:13.5px; line-height:1.6; color:var(--stone); }

  @media (max-width:860px){
    .sas-steps{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:560px){
    .sas-steps{ grid-template-columns:1fr; }
  }
  .sas-notes{
    display:grid; grid-template-columns:1fr 1fr; gap:20px;
    margin-top:24px;
  }
  .sas-note{
    padding:18px 22px;
    border-left:2px solid var(--gold-deep);
    background:var(--parchment);
    font-size:13.5px; line-height:1.65; color:var(--stone);
  }
  .sas-note b{ color:var(--ink); font-family:'Playfair Display', serif; font-weight:500; }

  @media (max-width:760px){
    .sas-notes{ grid-template-columns:1fr; }
  }

  /* ---------- INMUEBLES ---------- */
  .realestate{ background:var(--navy); color:var(--paper); }
  .re-grid{
    display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center;
  }
  .re-copy .tag{ font-size:11px; color:var(--gold-soft); display:block; margin-bottom:16px; }
  .re-copy h2{ color:var(--paper); font-size:clamp(26px,3vw,36px); line-height:1.25; margin-bottom:22px; }
  .re-copy p{ font-size:15px; line-height:1.7; color:rgba(250,247,239,0.75); max-width:42ch; margin-bottom:30px; }
  .re-features{
    display:flex; flex-direction:column; gap:0;
  }
  .re-item{
    display:flex; gap:20px;
    padding:22px 0;
    border-top:1px solid rgba(231,215,164,0.15);
  }
  .re-item:last-child{ border-bottom:1px solid rgba(231,215,164,0.15); }
  .re-num{ font-size:12px; color:var(--gold-soft); padding-top:2px; }
  .re-item b{ display:block; font-size:15.5px; margin-bottom:6px; }
  .re-item span{ font-size:13.5px; line-height:1.6; color:rgba(250,247,239,0.62); }

  @media (max-width:860px){
    .re-grid{ grid-template-columns:1fr; }
  }

  /* ---------- SOBRE ---------- */
  .about{
    background:var(--parchment);
    position:relative;
  }
  .about .wrap{
    display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center;
  }
  .about-visual{
    aspect-ratio:4/5;
    background:var(--navy);
    border-radius:2px;
    position:relative;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  .about-visual .initials{
    font-family:'Playfair Display', serif; color:var(--gold-soft); font-size:80px; z-index:2;
  }
  .about-copy .tag{ font-size:11px; color:var(--stone); display:block; margin-bottom:16px; }
  .about-copy h2{ font-size:clamp(26px,3vw,36px); max-width:14ch; margin-bottom:22px;}
  .about-copy p{ font-size:15px; line-height:1.75; color:#262B36; max-width:48ch; margin-bottom:16px; }
  .credentials{
    display:flex; gap:28px; margin-top:30px; flex-wrap:wrap;
  }
  .credentials div{
    border-left:2px solid var(--gold);
    padding-left:14px;
  }
  .credentials b{ display:block; font-family:'Playfair Display', serif; font-size:16px; }
  .credentials span{ font-size:12px; color:var(--stone); }

  @media (max-width:860px){
    .about .wrap{ grid-template-columns:1fr; }
    .about-visual{ aspect-ratio:16/9; }
  }

  /* ---------- NOVEDADES ---------- */
  .novedades{ background:var(--paper); }
  .post-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
  }
  .post-card{
    border:1px solid var(--line);
    background:var(--parchment);
    padding:28px;
    display:flex; flex-direction:column; gap:14px;
    transition:transform .3s ease, box-shadow .3s ease;
  }
  .post-card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(19,34,66,0.08); }
  .post-tag{
    font-size:10.5px; color:var(--gold-deep); background:rgba(147,120,61,0.12);
    display:inline-block; padding:5px 10px; width:fit-content; border-radius:2px;
  }
  .post-card h3{ font-size:19px; line-height:1.3; }
  .post-card p{ font-size:13.5px; color:var(--stone); line-height:1.6; margin:0; }
  .post-card .read{ font-size:12.5px; font-weight:600; color:var(--navy); margin-top:auto; }

  @media (max-width:860px){ .post-grid{ grid-template-columns:1fr; } }

  /* ---------- CLIENTES ---------- */
  .clients{ background:var(--paper); overflow:hidden; }
  .clients-marquee{
    overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  }
  .clients-track{
    display:flex;
    width:max-content;
    animation:clients-scroll 28s linear infinite;
  }
  .clients-track:hover{ animation-play-state:paused; }
  @keyframes clients-scroll{
    from{ transform:translateX(0); }
    to{ transform:translateX(-50%); }
  }
  .client-logo{
    flex:0 0 auto;
    width:220px; aspect-ratio:16/9;
    display:flex; align-items:center; justify-content:center;
    font-family:'Cinzel', serif; font-size:10.5px; letter-spacing:0.06em;
    color:var(--stone); text-transform:uppercase;
    padding:10px; text-align:center;
    border:1px solid var(--line);
    margin-right:18px;
    background:var(--paper);
  }
  .clients-note{
    margin-top:28px; font-size:12px; color:var(--stone); font-style:italic;
  }

  @media (prefers-reduced-motion: reduce){
    .clients-track{ animation:none; }
  }

  /* ---------- CONTACTO ---------- */
  .contact{ background:var(--navy); color:var(--paper); }
  .contact .wrap{
    display:grid; grid-template-columns:1fr 1fr; gap:64px;
  }
  .contact-info .tag{ font-size:11px; color:var(--gold-soft); display:block; margin-bottom:16px; }
  .contact-info h2{ color:var(--paper); font-size:clamp(26px,3vw,36px); max-width:14ch; margin-bottom:26px;}
  .info-row{
    display:flex; gap:16px; padding:18px 0; border-top:1px solid rgba(231,215,164,0.15);
  }
  .info-row:last-child{ border-bottom:1px solid rgba(231,215,164,0.15); }
  .info-row b{ display:block; font-size:14px; margin-bottom:3px; }
  .info-row span{ font-size:13.5px; color:rgba(250,247,239,0.6); }
  .info-row .ico{ color:var(--gold-soft); font-family:'Cinzel', serif; font-size:13px; width:20px; }

  form{ display:flex; flex-direction:column; gap:14px; }
  .field{ display:flex; flex-direction:column; gap:6px; }
  .field label{ font-size:11.5px; color:rgba(250,247,239,0.55); }
  .field input, .field textarea{
    background:rgba(250,247,239,0.06);
    border:1px solid rgba(231,215,164,0.25);
    color:var(--paper);
    padding:12px 14px;
    font-family:'Public Sans', sans-serif;
    font-size:14px;
    border-radius:2px;
    outline:none;
  }
  .field input:focus, .field textarea:focus{ border-color:var(--gold); }
  .field textarea{ resize:vertical; min-height:100px; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--ink); color:rgba(250,247,239,0.5); padding:40px 0; }
  footer .wrap{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;
  }
  footer .fbrand{ display:flex; align-items:center; gap:10px; color:rgba(250,247,239,0.75); font-family:'Spectral',serif; font-weight:600; font-size:14px;}
  footer .flinks{ display:flex; gap:26px; font-size:12.5px; }
  footer .fnote{ font-size:11.5px; }

  /* reveal on scroll */
  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* placeholder note */
  .placeholder-note{
    font-size:11px; color:var(--gold-soft); opacity:0.7; font-style:italic;
  }
