:root{
  --bg:#fff7e6;
  --ink:#26335e;
  --red:#e0524d;
  --blue:#3b5fb0;
  --sky:#bfe3f0;
  --butter:#fbe39a;
  --pink:#f5c2cd;
  --mint:#c9e8d3;
  --line:rgba(38,51,94,.16);
  --disp:'Bagel Fat One','Arial Rounded MT Bold',system-ui,sans-serif;
  --body:'Nunito',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-weight:600;font-size:17px;line-height:1.55;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:var(--butter)}

/* Botones */
.btn{display:inline-block;background:var(--red);color:#fff;border:0;border-radius:60px;padding:15px 32px;font-weight:800;font-size:17px;box-shadow:0 5px 0 #a8342f;transition:transform .15s,box-shadow .15s;text-align:center}
.btn:hover{transform:translateY(2px);box-shadow:0 3px 0 #a8342f}
.btn:active{transform:translateY(5px);box-shadow:0 0 0 #a8342f}
.btn.alt{background:var(--blue);box-shadow:0 5px 0 #26427f}
.btn.alt:hover{box-shadow:0 3px 0 #26427f}
.btn.small{padding:10px 20px;font-size:15px}
.btn.full{display:block;width:100%}
.pill{display:inline-block;background:var(--butter);border-radius:40px;padding:5px 16px;font-weight:800;font-size:14px;margin-bottom:18px}
.hl{background:linear-gradient(transparent 62%,var(--butter) 62% 92%,transparent 92%);padding:0 .06em}

/* Header */
.top{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:14px 4vw;background:rgba(255,247,230,.94);backdrop-filter:blur(8px);border-bottom:3px solid var(--ink)}
.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--disp);font-size:28px;line-height:1}
.brand-sw{width:28px;height:28px;border-radius:8px;border:3px solid var(--ink);background:
  repeating-linear-gradient(90deg,rgba(224,82,77,.85) 0 6px,transparent 6px 12px),
  repeating-linear-gradient(0deg,rgba(59,95,176,.85) 0 6px,transparent 6px 12px);background-blend-mode:multiply;background-color:#fff}
.top nav{display:flex;gap:26px;font-weight:800;font-size:15px}
.top nav a{padding:6px 2px;border-bottom:3px solid transparent;transition:.2s}
.top nav a:hover{border-color:var(--red)}
.pile-btn{justify-self:end;background:var(--ink);color:var(--bg);border:0;border-radius:40px;padding:10px 20px;font-weight:800;transition:.2s}
.pile-btn:hover{background:var(--blue)}
.pile-btn b{display:inline-block;min-width:24px;margin-left:6px;border-radius:20px;background:var(--butter);color:var(--ink);text-align:center}
.pile-btn.bump{animation:bump .4s}
@keyframes bump{40%{transform:scale(1.1) rotate(-3deg)}}

/* Hero */
.hero{position:relative;display:grid;grid-template-columns:1fr 1.15fr;gap:20px;align-items:start;padding:70px 4vw 60px;min-height:calc(100vh - 70px);background:
  radial-gradient(circle at 85% 20%,rgba(191,227,240,.7),transparent 40%),
  radial-gradient(circle at 10% 90%,rgba(245,194,205,.6),transparent 40%)}
h1{font-family:var(--disp);font-weight:400;font-size:clamp(46px,6.2vw,104px);line-height:1;margin-bottom:24px;letter-spacing:-.01em}
.lead{max-width:44ch;font-size:19px;margin-bottom:28px}
.cta{display:flex;gap:16px;flex-wrap:wrap}

/* Tendedero */
.line-wrap{position:relative;height:520px;margin-top:10px}
.line{position:absolute;left:0;top:0;width:100%;height:60px}
.hang-row{position:absolute;left:0;right:0;top:0}
.hg{position:absolute;transform-origin:50% 0;animation:sway 5s ease-in-out infinite}
.hg .peg{position:absolute;top:-8px;width:16px;height:44px;background:#d9a65c;border:2px solid #8a5c24;border-radius:4px 4px 6px 6px;z-index:2}
.hg .peg.l{left:14%}
.hg .peg.r{right:14%}
.hg .peg::after{content:"";position:absolute;left:50%;top:14px;width:2px;height:24px;background:#8a5c24;transform:translateX(-50%)}
@keyframes sway{0%,100%{transform:rotate(var(--r0,-3deg))}50%{transform:rotate(var(--r1,3deg))}}

/* Tela a cuadros: dos capas de hilos que se multiplican */
.cloth{position:relative;width:100%;aspect-ratio:var(--ar,1);border-radius:6px;
  background:
    repeating-linear-gradient(45deg,rgba(0,0,0,.05) 0 1px,transparent 1px 3px),
    var(--h),var(--v);
  background-color:#fff;
  background-blend-mode:multiply,multiply,normal;
  box-shadow:0 14px 24px -12px rgba(38,51,94,.45),inset 0 0 0 2px rgba(255,255,255,.35);
  border:2px dashed rgba(255,255,255,.7);outline:2px solid rgba(38,51,94,.12);outline-offset:-2px}
.cloth::before,.cloth::after{content:"";position:absolute;top:2px;bottom:2px;width:9px;background:repeating-linear-gradient(0deg,var(--fr,#e0524d) 0 2px,transparent 2px 5px);opacity:.8}
.cloth::before{left:-8px;border-radius:3px 0 0 3px}
.cloth::after{right:-8px;border-radius:0 3px 3px 0}
.emb{position:absolute;right:8%;bottom:8%;font-family:var(--disp);font-size:clamp(14px,2.4vw,28px);color:#fff;background:var(--ink);padding:1px 14px 3px;border-radius:30px;letter-spacing:.02em;transform:rotate(-3deg);transition:.2s}
.emb:empty{display:none}

/* Secciones */
.band{height:34px;background:
  repeating-linear-gradient(90deg,var(--red) 0 40px,var(--butter) 40px 80px,var(--blue) 80px 120px,var(--sky) 120px 160px);border-block:3px solid var(--ink)}
.sec{padding:110px 4vw 0;max-width:1440px;margin:0 auto}
.head{margin-bottom:50px;max-width:900px}
h2{font-family:var(--disp);font-weight:400;font-size:clamp(38px,5.2vw,82px);line-height:1.02}
.sub{margin-top:16px;max-width:54ch;font-size:18px}

/* Catálogo */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.card{background:#fff;border:3px solid var(--ink);border-radius:30px;padding:22px;display:flex;flex-direction:column;gap:14px;box-shadow:8px 8px 0 var(--ink);transition:transform .25s,box-shadow .25s}
.card:hover{transform:translate(-3px,-3px);box-shadow:11px 11px 0 var(--ink)}
.card .sw{position:relative;padding:26px 30px 36px;border-radius:20px;background:var(--bgc);display:grid;place-items:center;overflow:hidden}
.stack{position:relative;width:78%}
.stack .cloth{transition:transform .45s cubic-bezier(.3,1.5,.5,1)}
.stack .cloth.b{position:absolute;inset:0;transform:translate(8px,10px) rotate(3deg);z-index:0;opacity:.95}
.stack .cloth.t{z-index:1;transform:rotate(-2deg)}
.card:hover .cloth.t{transform:translate(-4px,-10px) rotate(-5deg)}
.card:hover .cloth.b{transform:translate(12px,12px) rotate(6deg)}
.card h3{font-family:var(--disp);font-weight:400;font-size:30px;line-height:1}
.card .use{font-size:15px}
.mt{display:grid;gap:6px}
.mt div{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:center;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.mt i{display:block;height:10px;border-radius:10px;background:rgba(38,51,94,.12);position:relative;overflow:hidden}
.mt i::after{content:"";position:absolute;inset:0;width:0;background:var(--blue);border-radius:10px;transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.grid.in .mt i::after{width:calc(var(--v) * 20%)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{background:var(--bg);border:2px solid var(--ink);border-radius:30px;padding:6px 14px;font-weight:800;font-size:14px;transition:.15s}
.seg button:hover{background:var(--butter)}
.seg button[aria-checked="true"]{background:var(--ink);color:var(--bg)}
.seg small{font-weight:700;opacity:.7}
.buyrow{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto}
.buyrow b{font-family:var(--disp);font-weight:400;font-size:32px;line-height:1}
.buyrow em{display:block;font-style:normal;font-size:12px;font-weight:700;opacity:.7}

/* Tejedora */
.weave{background:none}
.loom{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start}
.loom-view{position:sticky;top:100px}
.cloth-stage{background:var(--sky);border:3px solid var(--ink);border-radius:34px;padding:56px;display:grid;place-items:center;box-shadow:8px 8px 0 var(--ink);min-height:470px;position:relative}
.cloth.big{width:min(100%,var(--w,340px));transition:width .5s cubic-bezier(.3,1.4,.5,1),aspect-ratio .3s;animation:flap 6s ease-in-out infinite}
@keyframes flap{0%,100%{transform:rotate(-1deg) skewX(0)}50%{transform:rotate(1deg) skewX(1.2deg)}}
.cloth-cap{margin-top:14px;text-align:center;font-weight:700;font-size:14px}
.thr{margin-bottom:22px}
.thr h3{font-family:var(--disp);font-weight:400;font-size:24px;margin-bottom:8px}
.thr h3 small{font-family:var(--body);font-weight:700;font-size:13px;opacity:.65;margin-left:6px}
.thr-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.thr-row button{border:3px solid var(--ink);background:none;padding:0;border-radius:10px;position:relative;overflow:hidden;transition:transform .15s}
.thr-row button:hover{transform:translateY(-3px)}
.thr-row.warp button{height:64px}
.thr-row.weft button{height:64px}
.thr-row button i{display:block;width:100%;height:100%}
.thr-row button[aria-checked="true"]{outline:4px solid var(--red);outline-offset:2px}
.edit{background:#fff;border:3px solid var(--ink);border-radius:24px;padding:18px;margin-bottom:22px}
.edit-t{font-weight:800;margin-bottom:10px}
.yarns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.yarns button{width:38px;height:38px;border-radius:50%;border:3px solid var(--ink);transition:transform .15s}
.yarns button:hover{transform:scale(1.15)}
.yarns button[aria-checked="true"]{outline:4px solid var(--red);outline-offset:2px}
.widths{display:flex;gap:8px}
.widths button{background:var(--bg);border:2px solid var(--ink);border-radius:30px;padding:6px 16px;font-weight:800;font-size:14px}
.widths button[aria-checked="true"]{background:var(--ink);color:var(--bg)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end;margin-bottom:18px}
label{display:grid;gap:6px;font-weight:800;font-size:14px}
input[type=text],textarea{background:#fff;border:3px solid var(--ink);border-radius:16px;padding:10px 14px;font-weight:600;font-size:17px;outline:none;resize:none;width:100%}
input[type=text]:focus,textarea:focus{box-shadow:0 0 0 4px var(--butter)}
.buy{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:3px dashed var(--ink);padding-top:20px}
.buy small{display:block;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.buy b{font-family:var(--disp);font-weight:400;font-size:54px;line-height:1}
.buy em{display:block;font-style:normal;font-size:13px;opacity:.7}

/* Calculadora */
.calc{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:start}
.areas{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.area{background:#fff;border:3px solid var(--ink);border-radius:22px;padding:16px 18px;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;transition:.2s}
.area .em{grid-row:1/3;font-size:34px}
.area h4{font-family:var(--disp);font-weight:400;font-size:22px;line-height:1}
.area small{font-weight:700;opacity:.7;font-size:13px}
.qty{display:inline-flex;gap:10px;align-items:center;margin-top:6px;grid-column:2}
.qty button{width:30px;height:30px;border-radius:50%;border:2px solid var(--ink);background:var(--bg);font-weight:800;line-height:1}
.qty button:hover{background:var(--butter)}
.qty span{min-width:18px;text-align:center;font-weight:800}
.area.on{background:var(--mint)}
.calc-out{position:sticky;top:100px;background:var(--ink);color:var(--bg);border-radius:34px;padding:34px;box-shadow:8px 8px 0 var(--red)}
.calc-out .big{font-family:var(--disp);font-size:clamp(80px,9vw,140px);line-height:.9}
.calc-out .big small{font-size:28px;margin-left:8px;color:var(--butter)}
.calc-out p{margin:10px 0 16px}
.calc-out .sug{background:rgba(255,255,255,.1);border-radius:20px;padding:16px;margin-bottom:18px}
.calc-out .sug b{color:var(--butter)}
.calc-out .btn{background:var(--butter);color:var(--ink);box-shadow:0 5px 0 #c9a63f}

/* Cuidados */
.care{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:46px}
.care article{border:3px solid var(--ink);border-radius:26px;padding:24px;background:#fff}
.care article:nth-child(1){background:var(--sky)}
.care article:nth-child(2){background:var(--pink)}
.care article:nth-child(3){background:var(--butter)}
.care article:nth-child(4){background:var(--mint)}
.ico{display:grid;place-items:center;width:70px;height:70px;border-radius:50%;background:#fff;border:3px solid var(--ink);font-family:var(--disp);font-size:22px;margin-bottom:14px}
.care h3{font-family:var(--disp);font-weight:400;font-size:26px;margin-bottom:6px}
.care p{font-size:15px}
.acc{max-width:880px}
.acc details{border-bottom:3px solid var(--ink)}
.acc details:first-child{border-top:3px solid var(--ink)}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:18px 0;font-family:var(--disp);font-size:24px}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font-size:34px;color:var(--red);transition:transform .3s;line-height:1}
.acc details[open] summary::after{transform:rotate(45deg)}
.acc p{padding:0 40px 20px 0;animation:fd .4s}
@keyframes fd{from{opacity:0;transform:translateY(-6px)}}

/* Contacto */
.contact{max-width:none;margin-top:110px;padding:90px 4vw;background:var(--pink);border-block:3px solid var(--ink)}
.contact-in{display:grid;grid-template-columns:1fr 1fr;gap:70px;max-width:1300px;margin:0 auto}
.info{list-style:none;display:grid;gap:18px;margin-top:30px;font-family:var(--disp);font-size:26px;line-height:1.1}
.info small{display:block;font-family:var(--body);font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:2px}
#form{display:grid;gap:18px;align-content:start}
#form .error{border-color:var(--red)!important}
.msg{min-height:22px;font-weight:800}
.msg.err{color:#b02a24}

footer{background:var(--ink);color:var(--bg)}
.fringe{height:30px;background:repeating-linear-gradient(90deg,var(--red) 0 8px,var(--butter) 8px 16px,var(--blue) 16px 24px,var(--sky) 24px 32px);-webkit-mask:repeating-linear-gradient(90deg,#000 0 4px,transparent 4px 8px);mask:repeating-linear-gradient(90deg,#000 0 4px,transparent 4px 8px)}
.foot-in{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;padding:44px 4vw 36px;font-size:14px}
.foot-brand{font-family:var(--disp);font-size:clamp(50px,8vw,110px);line-height:.9;color:var(--butter)}

/* Cajón */
.shade{position:fixed;inset:0;background:rgba(38,51,94,.55);opacity:0;pointer-events:none;transition:opacity .3s;z-index:70}
.shade.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);background:var(--bg);border-left:3px solid var(--ink);z-index:80;display:flex;flex-direction:column;transform:translateX(105%);transition:transform .4s cubic-bezier(.3,1,.3,1)}
.drawer.on{transform:none}
.dr-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:3px solid var(--ink);background:var(--butter)}
.dr-head h3{font-family:var(--disp);font-weight:400;font-size:30px}
.dr-head button{width:40px;height:40px;border-radius:50%;border:3px solid var(--ink);background:#fff;font-weight:800}
.dr-list{flex:1;overflow:auto;padding:10px 24px}
.d-item{display:grid;grid-template-columns:70px 1fr auto;gap:2px 14px;padding:14px 0;border-bottom:2px dashed var(--ink);align-items:center}
.d-item .cloth{width:70px;grid-row:1/4}
.d-item h4{font-family:var(--disp);font-weight:400;font-size:21px;line-height:1.05}
.d-item .pr{font-family:var(--disp);font-size:21px;text-align:right}
.d-item small{font-size:12px;opacity:.75;line-height:1.3;grid-column:2/4}
.d-item .qty{grid-column:2}
.d-empty{padding:40px 0;text-align:center}
.dr-foot{padding:20px 24px 24px;border-top:3px solid var(--ink);display:grid;gap:10px;background:#fff}
.d-tot{display:flex;justify-content:space-between;align-items:baseline}
.d-tot span{font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.1em}
.d-tot b{font-family:var(--disp);font-weight:400;font-size:46px;line-height:1;color:var(--red)}
.note{font-size:13px}
a.btn.disabled{opacity:.35;pointer-events:none}
.clear{background:none;border:0;text-decoration:underline;font-weight:700;font-size:14px}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,130px);background:var(--ink);color:var(--bg);padding:12px 26px;border-radius:40px;font-weight:800;z-index:100;transition:transform .35s cubic-bezier(.3,1.5,.5,1);white-space:nowrap}
.toast.show{transform:translate(-50%,0)}

.rv{opacity:0;transform:translateY(34px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}

@media(max-width:1100px){
  .top{grid-template-columns:1fr auto}
  .top nav{display:none}
  .hero{grid-template-columns:1fr;min-height:0}
  .line-wrap{height:420px}
  .grid{grid-template-columns:repeat(2,1fr)}
  .loom,.calc,.contact-in{grid-template-columns:1fr}
  .loom-view,.calc-out{position:static}
  .care{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .grid,.areas,.care{grid-template-columns:1fr}
  .cloth-stage{padding:36px}
  .row2{grid-template-columns:1fr}
  .info{font-size:21px}
  .hang-row .hg:nth-child(n+5){display:none}
}
@media(prefers-reduced-motion:reduce){
  .hg,.cloth.big{animation:none}
  .rv{opacity:1;transform:none;transition:none}
}
