@font-face{font-family:"Montserrat";src:url(fonts/montserrat.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(fonts/plex-sans.woff2) format("woff2");font-weight:100 700;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(fonts/plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --abyss:#0A3349;--abyss-deep:#062538;--abyss-line:#1D4C66;
  --fizz:#55C8E8;--fizz-soft:#C4EDF8;
  --bubble:#DCF53F;
  --frost:#EEF5F8;--paper:#FFFFFF;
  --ink:#0B2536;--ink-soft:#4A6474;--rule:#D3E1E8;
  --kraft:#C9A177;--kraft-dark:#9E7750;--wood:#BA8D5D;--wood-dark:#8A6440;
  --display:"Montserrat",system-ui,sans-serif;
  --body:"IBM Plex Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --wrap:1180px;--gutter:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--abyss);outline-offset:3px;border-radius:4px}
.top :focus-visible,.hero :focus-visible,.facts :focus-visible,.contact :focus-visible,.foot :focus-visible{outline-color:var(--fizz)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--bubble);color:var(--ink);padding:8px 14px;font-weight:600;z-index:50}
.skip:focus{left:8px}

/* Type */
h1,h2,h3{font-family:var(--display);margin:0;letter-spacing:-.02em}
h1{font-weight:800;font-size:clamp(2.1rem,4.2vw,3.3rem);line-height:1.04}
h2{font-weight:800;font-size:clamp(1.8rem,3.6vw,2.7rem);line-height:1.08}
h3{font-weight:700;font-size:1.15rem;line-height:1.25;letter-spacing:-.01em}
.tag{font:500 .78rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.lead{font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.6;max-width:56ch}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.55em;font:700 .95rem/1 var(--display);letter-spacing:.01em;text-decoration:none;padding:15px 22px;border-radius:999px;border:2px solid transparent;transition:background-color .18s,color .18s,border-color .18s,transform .18s}
.btn:active{transform:translateY(1px)}
.btn-main{background:var(--fizz);color:var(--abyss-deep)}
.btn-main:hover{background:var(--bubble)}
.btn-line{border-color:currentColor;color:inherit}
.btn-line:hover{background:rgba(255,255,255,.08)}
.btn svg{width:18px;height:18px}

/* Header */
.top{position:sticky;top:0;z-index:20;background:rgba(10,51,73,.94);backdrop-filter:blur(8px);color:#fff;border-bottom:1px solid var(--abyss-line)}
.top .wrap{display:flex;align-items:center;gap:24px;height:68px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand .logo{display:block;width:46px;flex:none;border-radius:6px;overflow:hidden;line-height:0}
.brand .logo svg{width:100%;height:auto}
.brand>span:last-child{font:700 .78rem/1.15 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--fizz)}
.nav{display:flex;gap:22px}
.nav a{font:600 .92rem/1 var(--display);text-decoration:none;color:#E3F2F8;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap}
.nav a:hover{border-color:var(--fizz)}
.lang{display:flex;font:500 .8rem/1 var(--mono);border:1px solid var(--abyss-line);border-radius:999px;overflow:hidden}
.lang a,.lang span{padding:8px 11px;text-decoration:none}
.lang span{background:var(--fizz);color:var(--abyss-deep)}
.lang a:hover{background:var(--abyss-line)}
.top .btn{padding:11px 16px;font-size:.85rem;white-space:nowrap}

/* Hero */
.hero{background:var(--abyss);color:#fff;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,5vw,72px);align-items:end;padding-top:clamp(48px,7vw,96px)}
.hero-copy{padding-bottom:clamp(40px,6vw,88px)}
.hero .tag{color:var(--fizz);margin:0 0 22px}
.hero h1 em{font-style:normal;color:var(--fizz)}
.hero .lead{color:#D2E7EF;margin:26px 0 34px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.pallet{width:100%;max-width:500px;justify-self:center;margin-bottom:-1px}

/* Pallet build-up */
.pallet .layer{animation:drop .7s cubic-bezier(.2,.9,.25,1.12) both}
.pallet .l1{animation-delay:.15s}.pallet .l2{animation-delay:.35s}.pallet .l3{animation-delay:.55s}.pallet .l4{animation-delay:.75s}.pallet .l5{animation-delay:.95s}
.pallet .film{animation:fade .6s ease 1.35s both}
.pallet .sheen{animation:sheen 1.4s ease-in-out 1.45s both}
.pallet .ship{animation:fade .4s ease 1.7s both}
.pallet .dest{transition:opacity .25s}
.pallet .dest.out{opacity:0}
@keyframes drop{from{transform:translateY(-70px);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes sheen{from{transform:translateX(0)}to{transform:translateX(760px)}}

/* Facts strip: la línea amarilla es la marca del suelo donde se apoya el palé */
.facts{background:var(--abyss-deep);color:#CFE6EF;border-top:3px dashed var(--bubble)}
.facts ul{list-style:none;margin:0;padding:40px 0 48px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.facts li{display:grid;grid-template-columns:4.6rem minmax(0,1fr);gap:12px;align-items:baseline}
.facts b{font:800 1.05rem/1.2 var(--display);color:#fff;display:block;margin-bottom:4px}
.facts .tag{color:var(--bubble);flex:none}
.facts p{margin:0;font-size:.95rem;line-height:1.5}

/* Sections */
.sec{padding:clamp(64px,9vw,120px) 0}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px;align-items:end;margin-bottom:44px}
.sec-head .tag{color:var(--ink-soft);margin-bottom:14px}
.sec-head p{margin:0;color:var(--ink-soft);max-width:52ch}

/* Catalogue */
.catalogue{background:var(--frost)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.filters button{font:600 .9rem/1 var(--display);padding:11px 16px;border-radius:999px;border:1.5px solid var(--rule);background:var(--paper);color:var(--ink);cursor:pointer;transition:background-color .15s,border-color .15s}
.filters button:hover{border-color:var(--ink-soft)}
.filters button[aria-pressed="true"]{background:var(--abyss);border-color:var(--abyss);color:#fff}
.filters[hidden]{display:none}
.cat-group{margin-bottom:40px}
.cat-small{font-size:.9rem;color:var(--ink-soft);margin:12px 0 0;max-width:72ch}
.prods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 20px;margin-top:26px}
.prod{display:block;text-decoration:none;color:var(--ink);border-radius:12px}
.prod .ph{display:block;position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--rule)}
.prod img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.prod b{display:block;font:700 1.05rem/1.25 var(--display);margin-top:12px}
.prod .type{display:block;font:500 .74rem/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-top:4px}
.core{position:absolute;top:10px;left:10px;font:500 .68rem/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;background:var(--bubble);color:var(--ink);padding:5px 7px;border-radius:4px}
.ask{position:absolute;right:10px;bottom:10px;font:700 .78rem/1 var(--display);background:var(--abyss);color:#fff;padding:9px 12px;border-radius:999px;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}
.prod:hover img,.prod:focus-visible img{transform:scale(1.05)}
.prod:hover .ask,.prod:focus-visible .ask{opacity:1;transform:none}
.more{margin:30px 0 0;padding-top:16px;border-top:1px solid var(--rule);font-size:.95rem}
.more .tag{color:var(--ink-soft);margin-right:8px}
.cat-group[hidden]{display:none}
.cat-title{display:flex;align-items:baseline;gap:14px;border-bottom:2px solid var(--abyss);padding-bottom:10px;margin-bottom:6px}
.cat-title h3{font-size:1.35rem;font-weight:800}
.cat-title p{margin:0 0 0 auto;color:var(--ink-soft);font-size:.92rem;text-align:right}
.cat-note{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;background:var(--paper);border:1px solid var(--rule);border-left:5px solid var(--fizz);padding:20px 24px;border-radius:6px;margin-top:8px}
.cat-note p{margin:0;max-width:62ch}
.catalogue .btn-line{color:var(--abyss)}
.catalogue .btn-line:hover{background:var(--abyss);color:#fff}

/* Route (how an order travels) */
.route{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.route li{position:relative;padding-top:44px}
.route li:not(:last-child)::after{content:"";position:absolute;top:11px;left:25px;right:-28px;border-top:3px dashed var(--fizz)}
.route li::before{content:"";position:absolute;top:0;left:0;width:25px;height:25px;border-radius:50%;background:var(--paper);border:3px solid var(--abyss)}
.route li:last-child::before{background:var(--bubble)}
.route .tag{color:var(--ink-soft);display:block;margin-bottom:8px}
.route h3{margin-bottom:8px}
.route p{margin:0;color:var(--ink-soft);font-size:.97rem}

/* Sell band */
.sell{background:var(--fizz);color:var(--abyss-deep)}
.sell .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 64px;align-items:center}
.sell .tag{margin-bottom:14px}
.sell p{margin:18px 0 0;max-width:48ch}
.sell .card{background:var(--paper);border-radius:10px;padding:26px 28px;box-shadow:0 18px 40px -24px rgba(6,37,56,.55)}
.sell .card h3{margin-bottom:14px}
.sell dl{margin:0 0 22px;display:grid;grid-template-columns:auto 1fr;gap:9px 18px;font-size:.95rem}
.sell dt{font:500 .78rem/1.6 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}
.sell dd{margin:0}
.sell .btn-main{background:var(--abyss);color:#fff}
.sell .btn-main:hover{background:var(--abyss-deep)}

/* Contact */
.contact{background:var(--abyss);color:#fff}
.contact .tag{color:var(--fizz);margin-bottom:14px}
.contact h2{max-width:20ch}
.mail{display:inline-block;font:800 clamp(1.5rem,4.6vw,3.4rem)/1.1 var(--display);letter-spacing:-.02em;color:var(--fizz);text-decoration:none;margin:30px 0 40px;border-bottom:4px solid transparent;word-break:break-word}
.mail:hover{border-color:var(--bubble)}
.contact dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0;border-top:1px solid var(--abyss-line);padding-top:28px}
.contact dt{font:500 .75rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:#9CC3D3;margin-bottom:6px}
.contact dd{margin:0;line-height:1.5}
.contact dd a{text-decoration:none;border-bottom:1px solid var(--abyss-line)}
.contact dd a:hover{border-color:var(--fizz)}

/* Footer */
.foot{background:var(--abyss-deep);color:#9CC3D3;font-size:.85rem;padding:28px 0 36px}
.foot .wrap{display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between}
.foot p{margin:0;max-width:70ch}
.credits{flex-basis:100%}
.credits summary{cursor:pointer;width:max-content}
.credits p{margin-top:8px;max-width:none}
.credits a{color:inherit}

/* Responsive */
@media (min-width:981px){.prods.c3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1060px){.nav{display:none}}
@media (max-width:980px){
  .hero .wrap{grid-template-columns:1fr}
  .hero-copy{padding-bottom:8px}
  .pallet{max-width:420px}
  .sec-head,.sell .wrap{grid-template-columns:1fr}
  .prods{grid-template-columns:repeat(3,minmax(0,1fr))}
  .route{grid-template-columns:1fr 1fr;row-gap:40px}
  .route li:nth-child(2)::after{display:none}
}
@media (max-width:680px){
  body{font-size:16px}
  .brand>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .top .wrap{gap:12px}
  .facts ul{grid-template-columns:1fr;gap:18px}
  .prods{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}
  .prod b{font-size:.98rem}
  .cat-title{flex-wrap:wrap}
  .cat-title p{margin:0;text-align:left;flex-basis:100%}
  .route{grid-template-columns:1fr;gap:0}
  .route li{padding:0 0 32px 48px}
  .route li:not(:last-child)::after,.route li:nth-child(2)::after{display:block;top:25px;bottom:0;left:11px;right:auto;border-top:0;border-left:3px dashed var(--fizz)}
  .contact dl{grid-template-columns:1fr}
}
@media (max-width:520px){.top .btn{display:none}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pallet .layer,.pallet .film,.pallet .sheen,.pallet .ship{animation:none}
  .pallet .sheen{display:none}
  .prod img,.ask{transition:none}
}
