/*
Theme Name: Nordic Property Studio
Theme URI: https://www.nordicpropertystudio.com
Author: Strezia Group
Author URI: https://strezia.com
Description: Single-page site for Nordic Property Studio S.L. and its two business units, Alboreal (legal & conveyancing) and Paeonia (interiors & design). Trilingual (SV/EN/ES), self-contained JS app rendered into #app. No page builder required.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nordic-property-studio
*/

  :root{
    --ink:#f5f0e6;
    --ink-2:#ece2d1;
    --ink-3:#e3d8c4;
    --cream:#2b241c;
    --accent:#a9742f;
    --line:rgba(43,36,28,0.12);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--ink);
    color:var(--cream);
    font-family:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  button{font-family:inherit;}
  a{color:inherit;}

  /* shared hover/focus that inline styles can't express */
  .nav-link{background:none;border:none;cursor:pointer;padding:6px 0;font-size:13.5px;letter-spacing:0.4px;font-weight:500;transition:color .25s;}
  .nav-link:hover{color:var(--accent)!important;}
  .lang-btn:hover{border-color:var(--accent)!important;color:var(--accent)!important;}
  .login-btn{transition:all .25s;}
  .login-btn:hover{background:var(--accent)!important;color:#f5f0e6!important;border-color:var(--accent)!important;}
  .btn-accent{transition:transform .25s,filter .25s;}
  .btn-accent:hover{filter:brightness(1.08);transform:translateY(-1px);}
  .btn-ghost{transition:all .25s;}
  .btn-ghost:hover{border-color:var(--cream)!important;}
  .btn-ghost-accent{transition:all .25s;}
  .btn-ghost-accent:hover{border-color:var(--accent)!important;color:var(--accent)!important;}
  .svc-row{transition:padding-left .3s;}
  .svc-row:hover{padding-left:14px;}
  .news-card{transition:border-color .3s,transform .3s;}
  .news-card:hover{border-color:var(--accent)!important;transform:translateY(-3px);}
  .field input,.field textarea{transition:border-color .25s;}
  .field input:focus,.field textarea:focus{border-color:var(--accent)!important;}
  .link-soft{transition:color .25s;}
  .link-soft:hover{color:var(--accent)!important;}

  @keyframes npsRise{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:translateY(0);}}
  @keyframes npsZoom{from{transform:scale(1.08);}to{transform:scale(1);}}
  @keyframes npsFlap{0%,100%{transform:scaleY(1);}50%{transform:scaleY(0.42);}}
  .palm-fronds{transform-box:fill-box;transform-origin:50% 90%;animation:npsSway 5s ease-in-out infinite;}
  @keyframes npsSway{
    0%{transform:rotate(0deg);}
    22%{transform:rotate(2.6deg);}
    46%{transform:rotate(-1.4deg);}
    68%{transform:rotate(1.9deg);}
    86%{transform:rotate(-0.6deg);}
    100%{transform:rotate(0deg);}
  }
  @keyframes npsFlyA{
    0%{transform:translate(0,0);}
    18%{transform:translate(260px,-70px);}
    36%{transform:translate(520px,40px);}
    54%{transform:translate(340px,140px);}
    72%{transform:translate(120px,60px);}
    88%{transform:translate(-80px,-30px);}
    100%{transform:translate(0,0);}
  }
  @keyframes npsFlyB{
    0%{transform:translate(0,0);}
    20%{transform:translate(-220px,90px);}
    42%{transform:translate(-420px,-10px);}
    60%{transform:translate(-230px,-90px);}
    80%{transform:translate(60px,-40px);}
    100%{transform:translate(0,0);}
  }
  @keyframes npsFlyC{
    0%{transform:translate(0,0);}
    25%{transform:translate(180px,120px);}
    45%{transform:translate(420px,30px);}
    65%{transform:translate(560px,-80px);}
    85%{transform:translate(240px,-40px);}
    100%{transform:translate(0,0);}
  }

  @media (max-width:640px){
    .stack-2{grid-template-columns:1fr!important;}
    .news-row{grid-template-columns:1fr!important;gap:14px!important;}
    .svc-grid{grid-template-columns:1fr!important;}
    .form-2{grid-template-columns:1fr!important;}
    .svc-row{grid-template-columns:1fr!important;gap:12px!important;}
    .svc-row .svc-num{display:none;}
    .svc-row .svc-link{justify-self:start;}
    .hero-sec{min-height:82vh!important;}
  }

  /* Alboreal logo lockup */
  .al-logo{display:inline-block;text-align:center;max-width:100%;}
  .al-word{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(40px,8vw,92px);letter-spacing:0.16em;line-height:0.95;color:var(--cream,#2b241c);padding-left:0.16em;margin:0;}
  .al-rule{height:2px;background:var(--cream,#2b241c);margin:16px 0 14px;}
  .al-tag{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(15px,2vw,26px);letter-spacing:0.01em;color:var(--cream,#2b241c);}

  /* Paeonia logo lockup */
  .unit-panel{transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;}
  .hero-affil{transition:opacity .2s ease;}
  .hero-affil:hover{opacity:0.66;text-decoration:underline;text-underline-offset:3px;}
  .unit-panel:hover{transform:translateY(-4px);border-color:var(--accent)!important;box-shadow:0 18px 40px rgba(43,36,28,0.08);}
  .pa-logo{display:inline-block;text-align:center;max-width:100%;}
  .pa-word{display:inline-flex;align-items:center;justify-content:center;gap:0.01em;font-family:'Cormorant Garamond',serif;font-weight:700;font-size:clamp(46px,9vw,108px);line-height:0.9;color:var(--accent,#a9742f);letter-spacing:0.005em;}
  .pa-flower{width:0.94em;height:0.94em;display:inline-block;margin:0 -0.04em;transform:translateY(0.03em);}
  .pa-tag{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(18px,2.6vw,34px);letter-spacing:0.16em;color:var(--accent,#a9742f);margin-top:4px;padding-left:0.16em;}

  /* jumping news badge */
  @keyframes npsJump{0%,100%{transform:translateY(0);}30%{transform:translateY(-5px);}50%{transform:translateY(0);}}
  .jump-badge{display:inline-block;background:var(--accent,#a9742f);color:#f5f0e6;font-size:10px;letter-spacing:1px;
    text-transform:uppercase;font-weight:700;border-radius:999px;padding:4px 11px;white-space:nowrap;
    animation:npsJump 1.4s ease-in-out infinite;vertical-align:middle;}

  /* process timeline */
  .proc{position:relative;margin-top:clamp(40px,6vh,64px);}
  .proc-line{position:absolute;left:10%;right:10%;top:22px;height:1px;background:var(--line,rgba(43,36,28,0.12));z-index:0;}
  .proc-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,2vw,28px);position:relative;z-index:1;}
  .proc-step{display:flex;flex-direction:column;align-items:center;text-align:center;}
  .proc-node{width:44px;height:44px;border-radius:50%;border:1px solid var(--accent,#a9742f);background:#f5f0e6;
    color:var(--accent,#a9742f);display:flex;align-items:center;justify-content:center;
    font-family:ui-monospace,monospace;font-size:13px;letter-spacing:1px;margin-bottom:22px;}
  .proc-title{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:22px;color:var(--cream,#2b241c);margin:0 0 8px;}
  .proc-desc{font-size:13.5px;line-height:1.55;color:rgba(43,36,28,0.6);margin:0;max-width:24ch;}
  @media(max-width:760px){
    .proc-line{display:none;}
    .proc-grid{grid-template-columns:1fr;gap:0;}
    .proc-step{flex-direction:row;align-items:flex-start;text-align:left;gap:18px;padding-bottom:30px;position:relative;}
    .proc-step:not(:last-child)::after{content:"";position:absolute;left:21px;top:50px;bottom:0;width:1px;background:var(--line,rgba(43,36,28,0.12));}
    .proc-node{margin-bottom:0;flex:0 0 44px;}
    .proc-desc{max-width:none;}
  }

  /* intro stats band */
  .intro-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(48px,7vh,84px);border-top:1px solid var(--line,rgba(43,36,28,0.12));}
  .intro-stat{padding:clamp(30px,4vh,44px) clamp(18px,2.6vw,40px) 4px;}
  .intro-stat + .intro-stat{border-left:1px solid var(--line,rgba(43,36,28,0.12));}
  @media(max-width:640px){
    .intro-stats{grid-template-columns:1fr;}
    .intro-stat{padding-left:0;padding-right:0;}
    .intro-stat + .intro-stat{border-left:none;border-top:1px solid var(--line,rgba(43,36,28,0.12));}
  }

  /* mobile nav */
  .menu-toggle{display:none;}
  .mobile-menu{display:none;}
  @media (max-width:820px){
    .desktop-nav{display:none!important;}
    .menu-toggle{display:inline-flex!important;align-items:center;justify-content:center;}
    .mobile-menu.open{display:flex!important;}
  }
  @media (max-width:560px){
    .cobrand{display:none!important;}
  }
  @media (prefers-reduced-motion:reduce){
    *{animation:none!important;}
  }
