/* PadinSoft · laboratorio tecnológico personal */
:root{
  --ps-navy:#102a43;--ps-navy-2:#173b5c;--ps-blue:#1677b8;--ps-cyan:#2ab7d8;
  --ps-cyan-soft:#dff5fa;--ps-ink:#162536;--ps-muted:#60758a;--ps-line:#dce6ed;
  --ps-bg:#f5f8fa;--ps-white:#fff;--ps-success:#2d9b68;--ps-warning:#c78a28;
  --ps-header-height:76px;
}
html{scroll-padding-top:calc(var(--ps-header-height) + 24px)}
body{background:var(--ps-bg);color:var(--ps-ink);font-family:var(--cms-font-body);font-size:16px;line-height:1.62;letter-spacing:-.003em}
a{color:var(--ps-blue);text-underline-offset:.18em}a:hover{color:#105d8f}
::selection{color:var(--ps-navy);background:var(--ps-cyan-soft)}
h1,h2,h3,h4,h5,h6{color:var(--ps-navy);font-weight:750;letter-spacing:-.035em}
p{max-width:72ch}.cms-text--center p{margin-inline:auto}
.cms-section__inner{padding-inline:clamp(20px,3.5vw,48px)}
.cms-section--padding-xl>.cms-section__inner{padding-block:clamp(3rem,6vw,5.4rem)}
.cms-section--padding-lg>.cms-section__inner{padding-block:clamp(2.25rem,4.5vw,4rem)}
.cms-section--padding-md>.cms-section__inner{padding-block:clamp(1.5rem,3vw,2.4rem)}
.cms-section .cms-grid{column-gap:clamp(1rem,2.3vw,2.25rem);row-gap:clamp(1rem,2.2vw,1.85rem)}
.cms-column{gap:.9rem}

/* Header */
.ps-header{position:sticky;top:0;z-index:80;border-bottom:1px solid rgba(16,42,67,.08);background:rgba(255,255,255,.92);backdrop-filter:saturate(150%) blur(18px);box-shadow:0 8px 30px rgba(16,42,67,.04)}
.ps-header>.cms-section__inner{min-height:var(--ps-header-height);padding-block:.55rem}
.ps-header>.cms-section__inner>.cms-grid{align-items:center}
.ps-header .site-brand__logo{width:min(var(--site-brand-logo-width,240px),100%)}
.site-menu .menu{margin:0;padding:0;list-style:none}
.site-menu .menu>li{margin:0}
.site-menu--horizontal .menu{display:flex;flex-wrap:wrap}
.ps-header .site-menu--horizontal .menu{align-items:center;justify-content:center;gap:.2rem}
.ps-header .site-menu a{display:inline-flex;padding:.55rem .68rem;border-radius:.62rem;color:var(--ps-navy);font-size:.9rem;font-weight:650;text-decoration:none;white-space:nowrap}
.ps-header .site-menu a:hover,.ps-header .site-menu a[aria-current="page"]{color:var(--ps-blue);background:#edf6fb}
.ps-header-cta .cms-button{min-height:40px;padding:.55rem .82rem;font-size:.86rem;white-space:nowrap}
.ps-nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-left:auto;border:1px solid var(--ps-line);border-radius:.7rem;color:var(--ps-navy);background:#fff;cursor:pointer}
.ps-nav-toggle svg{width:22px;height:22px}

/* Footer */
.ps-footer{color:rgba(255,255,255,.78);background:var(--ps-navy)}
.ps-footer h2,.ps-footer h3{color:#fff;font-size:1rem;letter-spacing:-.01em}
.ps-footer p{font-size:.9rem;color:rgba(255,255,255,.76)}.ps-footer a{color:rgba(255,255,255,.88);text-decoration:none}.ps-footer a:hover{color:#fff}
.ps-footer .site-brand__logo{width:min(var(--site-brand-logo-width,235px),100%)}
.ps-footer .site-menu .menu{display:grid;gap:.3rem}
.ps-footer .site-menu a{display:inline-block;padding:.16rem 0;font-size:.92rem}
.ps-footer-bottom{border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.64);background:var(--ps-navy)}
.ps-footer-bottom>.cms-section__inner{padding-block:.8rem}.ps-footer-bottom .cms-grid{align-items:center}
.ps-footer-bottom .site-copyright{font-size:.84rem}

/* Sections */
.ps-page-header{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#eef7fb 100%)}
.ps-page-header:after{position:absolute;inset:auto -8% -70% auto;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(42,183,216,.18),transparent 68%);content:"";pointer-events:none}
.ps-page-title{max-width:900px}.ps-page-title.cms-heading{max-width:16ch;font-size:clamp(2.35rem,4.8vw,4.35rem);line-height:1.02}
.ps-page-lead{max-width:720px;color:#40566b;font-size:clamp(1.02rem,1.6vw,1.16rem)}
.ps-section--muted{background:#edf4f7}.ps-section--white{background:#fff}.ps-section--dark{color:#d9e8f1;background:var(--ps-navy)}
.ps-section--dark h2,.ps-section--dark h3,.ps-section--dark .cms-heading{color:#fff}.ps-section--dark .cms-text{color:#c4d8e5}
.ps-section--accent{background:linear-gradient(135deg,var(--ps-navy),#154b70);color:#dbeaf3}
.ps-section--accent h2,.ps-section--accent h3{color:#fff}
.ps-section-title.cms-heading{margin-bottom:.2rem;font-size:clamp(1.85rem,3.3vw,2.85rem);line-height:1.08}
.ps-section-intro{margin-inline:auto;max-width:700px;color:var(--ps-muted);font-size:.98rem}
.ps-kicker.cms-text{color:var(--ps-blue);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}

/* Hero */
.ps-home-hero{overflow:hidden;background:linear-gradient(135deg,#fff 0%,#eef7fb 55%,#e3f3f8 100%)}
.ps-home-hero>.cms-section__inner{padding-block:clamp(3rem,6vw,5.4rem)}
.ps-home-hero .cms-hero__inner{gap:clamp(1.75rem,4vw,3.75rem)}
.ps-home-hero .cms-hero__title{max-width:16ch;font-size:clamp(2.8rem,5.2vw,4.85rem);line-height:1.01}
.ps-home-hero .cms-hero__text{max-width:620px;color:#40566b;font-size:clamp(1.02rem,1.55vw,1.16rem);line-height:1.65}
.ps-home-hero .cms-hero__media{filter:drop-shadow(0 32px 55px rgba(16,42,67,.16))}
.ps-home-hero .cms-hero__media img{border-radius:1.4rem}
.cms-hero__eyebrow,.cms-card__eyebrow,.cms-cta__eyebrow{color:var(--ps-blue);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.cms-button{min-height:42px;padding:.68rem 1rem;border-radius:.68rem;font-size:.94rem;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.cms-button:hover{transform:translateY(-2px)}
.cms-button--primary{background:linear-gradient(135deg,var(--ps-blue),#1598c2);box-shadow:0 10px 24px rgba(22,119,184,.22)}
.cms-button--primary:hover{background:linear-gradient(135deg,#105d8f,#117fa5)}
.cms-button--secondary{border-color:#b8d3e2;color:var(--ps-navy);background:rgba(255,255,255,.86)}

/* Cards */
.cms-cards{gap:clamp(.85rem,1.8vw,1.3rem)}
.cms-card{overflow:hidden;border:1px solid rgba(16,42,67,.09);border-radius:.85rem;background:#fff;box-shadow:0 8px 26px rgba(16,42,67,.055);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.cms-card:hover{transform:translateY(-3px);border-color:rgba(22,119,184,.25);box-shadow:0 16px 40px rgba(16,42,67,.10)}
.cms-card__media{background:#eaf2f6}.cms-card__media img{transition:transform .35s ease}.cms-card:hover .cms-card__media img{transform:scale(1.025)}
.cms-card__body{padding:1.05rem 1.1rem 1.15rem}.cms-card h3{font-size:1.08rem;line-height:1.25}.cms-card h3 a{color:var(--ps-navy);text-decoration:none}.cms-card p{color:var(--ps-muted);font-size:.93rem;line-height:1.55}
.cms-card__link{display:inline-flex;align-items:center;gap:.3rem;padding-top:.75rem;font-size:.9rem;font-weight:750;text-decoration:none}.cms-card__link:after{content:"→"}
.ps-area-cards .cms-card{box-shadow:none}.ps-area-cards .cms-card__body{min-height:205px}
.ps-project-cards .cms-card__media img{aspect-ratio:16/9;object-fit:cover}
.ps-note-cards .cms-card__body{min-height:215px}

/* Lists and stats */
.cms-icon-list--cards .cms-icon-list__item{border-color:rgba(16,42,67,.09);border-radius:.85rem;background:#fff;box-shadow:0 8px 24px rgba(16,42,67,.05)}
.cms-icon-list__icon{flex-basis:38px;height:38px;border-radius:10px;color:var(--ps-blue);background:#e8f6fa}
.ps-principles .cms-icon-list__item{min-height:190px;padding:1rem}.ps-principles .cms-icon-list__body strong{font-size:1rem}.ps-principles .cms-icon-list__body span{font-size:.92rem;line-height:1.55}
.cms-stats{gap:1rem}.cms-stats__item{border:1px solid rgba(255,255,255,.14);border-radius:1rem;background:rgba(255,255,255,.07)}
.ps-project-stats .cms-stats__item{border-color:rgba(16,42,67,.08);background:#fff;box-shadow:0 12px 34px rgba(16,42,67,.06)}
.ps-project-stats .cms-stats__value{color:var(--ps-blue)}

/* Editorial */
.ps-prose.cms-text{font-size:1rem;line-height:1.72}.ps-prose.cms-text p{margin-bottom:1.1rem}
.ps-project-hero{background:linear-gradient(135deg,#fff,#edf7fa)}
.ps-project-hero .cms-hero__title{font-size:clamp(2.8rem,6vw,5rem)}
.ps-project-hero .cms-hero__media img{border:1px solid var(--ps-line);border-radius:1.2rem;box-shadow:var(--cms-shadow)}
.cms-tabs{border-radius:1rem;background:#fff;box-shadow:0 10px 34px rgba(16,42,67,.06)}
.cms-accordion details{border-radius:.85rem;background:#fff}
.ps-project-note.cms-notice{border-radius:.85rem}
.ps-lab-list .cms-icon-list__item{border-bottom:1px solid var(--ps-line);padding-block:.85rem}
.ps-lab-list .cms-icon-list__item:last-child{border-bottom:0}
.ps-closing-cta.cms-cta{border:1px solid rgba(22,119,184,.14);border-radius:1.15rem;background:linear-gradient(135deg,#fff,#eaf7fb);box-shadow:0 16px 44px rgba(16,42,67,.075)}
.ps-closing-cta.cms-cta h2{font-size:clamp(2rem,4vw,3.5rem)}

/* Legal */
.ps-legal .cms-text{max-width:850px}.ps-legal .cms-text p{margin-bottom:1.25rem}

/* Visual refinement v1.0.1 */
.ps-footer>.cms-section__inner{padding-block:clamp(2.7rem,4.5vw,3.8rem)}
.ps-footer .cms-grid{align-items:start}
.ps-footer-brand .cms-text{max-width:44ch}
.ps-section--principles>.cms-section__inner{padding-block:clamp(3rem,5.5vw,4.8rem)}
.ps-section--closing>.cms-section__inner{padding-block:clamp(3rem,5.5vw,4.8rem)}
.ps-section--project-note>.cms-section__inner{padding-block:1rem}
.cms-notice{font-size:.94rem;line-height:1.6}
.ps-lab-list .cms-icon-list__body strong{font-size:1rem}
.ps-lab-list .cms-icon-list__body span{font-size:.93rem;line-height:1.55}
.ps-home-hero .cms-hero__media img{max-height:520px;object-fit:contain;background:transparent;box-shadow:none}
.ps-project-cards .cms-card__media img{aspect-ratio:16/8.5}
.ps-project-cards .cms-card__body{min-height:205px}
.ps-area-cards .cms-card__link{margin-top:auto}

/* Accessibility */
:focus-visible{outline:3px solid rgba(42,183,216,.8);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(max-width:980px){
  :root{--ps-header-height:68px}
  .ps-header>.cms-section__inner>.cms-grid{grid-template-columns:1fr auto;gap:.75rem}
  .ps-header-brand{grid-column:1!important}.ps-header-nav{grid-column:1/-1!important;order:3}.ps-header-cta{display:none}
  .ps-nav-toggle{display:inline-flex;grid-column:2;grid-row:1}
  .ps-header.ps-nav-enhanced .ps-header-nav{display:none}
  .ps-header.ps-nav-enhanced[data-nav-open="true"] .ps-header-nav{display:block}
  .ps-header .site-menu--horizontal .menu{display:grid;justify-content:stretch;padding:.6rem 0 1rem}
  .ps-header .site-menu a{display:flex;font-size:1rem}
  .ps-header .cms-column{grid-column:auto}
  .ps-home-hero .cms-hero__title{max-width:18ch;font-size:clamp(2.45rem,8.5vw,3.65rem)}
}
@media(max-width:760px){
  body{font-size:15.5px}.cms-section__inner{padding-inline:20px}
  .ps-header .site-brand__logo{max-width:215px}
  .ps-page-title.cms-heading{font-size:clamp(2.25rem,10vw,3.15rem);line-height:1.04}
  .ps-home-hero>.cms-section__inner{padding-block:2.5rem 3.25rem}
  .cms-hero__actions{align-items:stretch}.cms-hero__actions .cms-button{width:100%}
  .ps-footer-bottom .cms-column{align-items:flex-start!important}

  .ps-header>.cms-section__inner{padding-block:.45rem}
  .ps-header-brand{min-width:0}
  .ps-header .site-brand{max-width:215px}
  .ps-page-header>.cms-section__inner{padding-block:2.6rem 3rem}
  .ps-page-lead{font-size:1rem;line-height:1.65}
  .ps-section-title.cms-heading{font-size:clamp(1.85rem,8vw,2.35rem)}
  .cms-card__body{padding:1rem}
  .ps-area-cards .cms-card__body,.ps-note-cards .cms-card__body,.ps-project-cards .cms-card__body{min-height:0}
  .ps-principles .cms-icon-list__item{min-height:0}
  .ps-footer>.cms-section__inner{padding-block:2.5rem}
  .ps-footer .cms-grid{row-gap:1.5rem}
  .ps-footer .site-brand__logo{max-width:220px}
}
