@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/Montserrat-400-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/Montserrat-400-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/IBMPlexMono-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ZenKakuGothicNew-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ZenKakuGothicNew-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/ZenKakuGothicNew-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/ZenKakuGothicNew-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ZenKakuGothicNew-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ZenKakuGothicNew-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Tatami Rental. Paleta washi / sumi / junco / sello. Un solo tema claro, a propósito.
   Esterillas planas 2:1 con el trazo del logo; mucho aire entre bloques. */
:root{
  --bg:#EEF0EA; --stone:#DCE0C6; --surface:#F8F9F5; --ink:#1C211D; --ink2:#444D46; --mut:#5C665E; --line:#CBD0C4; --edge:#47544B;
  --igusa:#6F7D4B; --heri:#25312A;
  --rojo:#C23B22; --rojo-t:#B3321B; --on-rojo:#FFFFFF; --ring:#EEF0EA; --ok:#1F6B3A; --err:#B3261E;
  --head:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --body:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.75 var(--body);-webkit-font-smoothing:antialiased}
.wrap{max-width:1160px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--head);margin:0;text-wrap:balance}
p{margin:0}
img{max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:var(--bg);padding:12px 18px;font:700 14px/1 var(--head);text-decoration:none}
.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font:500 12px/1.4 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
svg.mk{flex:none}
.lk{width:190px;height:auto;aspect-ratio:1000/215;color:var(--ink);display:block}
.lkf{width:300px;height:auto;aspect-ratio:1000/250;display:block}
.lks{height:28px;width:auto;aspect-ratio:1000/215;color:#1C211D;--ring:#F8F9F5;flex:none}
a.home{display:inline-block;line-height:0}

/* cabecera */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding-block:20px}
.links{display:flex;align-items:center;gap:6px 22px;flex-wrap:wrap;font-size:15px;list-style:none;margin:0;padding:0}
.links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--ink2)}
.links a:hover,.links a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:14px 24px;font:700 13px/1.2 var(--head);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;text-align:center;border:1.5px solid var(--edge);background:transparent;color:var(--ink);cursor:pointer;transition:background .25s,color .25s}
.btn.solid{background:var(--rojo);border-color:var(--rojo);color:var(--on-rojo)}
.btn.solid:hover{background:var(--ink);border-color:var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.sm{min-height:44px;padding:10px 16px;font-size:12px}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.badge[hidden]{display:none}
.badge{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:12px;background:var(--rojo);color:#fff;font:700 12px/1 var(--head)}

/* portada */
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px;align-items:center;padding-block:80px 104px}
.hero h1{font-size:clamp(38px,5.6vw,76px);line-height:1.04;font-weight:700;letter-spacing:-.025em;margin:22px 0 26px}
.hero h1 i{font-style:normal;color:var(--rojo-t)}
.lead{max-width:29em;font-size:18px;color:var(--ink2)}
.acciones{display:flex;gap:12px;flex-wrap:wrap;margin-top:38px}
.mock{display:flex;flex-direction:column;gap:16px;align-items:center}
.etq{--ink:#1C211D;--ring:#F8F9F5;color:#1C211D;background:#F8F9F5;width:100%;max-width:430px;padding:22px 24px;transform:rotate(-1.6deg);
  box-shadow:0 0 0 1px rgba(0,0,0,.14),0 26px 40px -24px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:16px}
.etq .lkf{width:210px;color:#1C211D}
.etq .sub{font:500 10px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;border-top:2px solid #1C211D;padding-top:11px;display:flex;justify-content:space-between}
.etq .cod{display:flex;justify-content:space-between;align-items:center;gap:16px}
.etq .cod strong{display:block;font:800 32px/1 var(--head);letter-spacing:-.02em}
.etq .cod span{font:500 11px/1.4 var(--mono);letter-spacing:.2em;text-transform:uppercase}
.etq .qr{width:66px;height:66px;flex:none}
.etq .bar{width:100%;height:40px}
.cap{font:500 11px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.cinta{background:var(--surface);border-block:1px solid var(--line);overflow:hidden;white-space:nowrap}
.cinta .row{display:inline-flex;align-items:center;padding-block:11px}
.cinta .it{display:inline-flex;align-items:center;padding-inline:30px;border-right:1px solid var(--line)}

/* esterillas */
.sec{padding-block:104px}
.sec h2,.page h1{font-size:clamp(26px,3.6vw,44px);line-height:1.1;font-weight:700;letter-spacing:-.02em;margin:16px 0 20px}
.sec p.t{color:var(--ink2);max-width:28em}
.mat{display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:14px 20px;min-width:0;text-decoration:none;color:var(--ink);
  background:var(--stone);border-block:4px solid var(--edge);transition:transform .3s ease}
.mat.v{border-block:0;border-inline:4px solid var(--edge);padding:18px 14px}
a.mat:hover{transform:translateY(-4px)}
.mat .k{font:600 11.5px/1 var(--mono);letter-spacing:.18em;color:var(--rojo-t)}
.mat h3{font-size:clamp(18px,2vw,23px);line-height:1.12;font-weight:700;letter-spacing:-.01em;margin:6px 0}
.mat p{font-size:13.5px;line-height:1.55;color:var(--ink2)}
.mat .go{font:600 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--rojo-t)}
.suelo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center}
.grid{display:grid;gap:6px;aspect-ratio:1/1;width:100%;max-width:620px;margin-left:auto;
  grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);
  grid-template-areas:"cam cam luz" "gri ctr luz" "gri son son"}
.cam{grid-area:cam}.luz{grid-area:luz}.gri{grid-area:gri}.son{grid-area:son}
.ctr{grid-area:ctr;background:var(--rojo);color:var(--on-rojo);border:0;justify-content:center;align-items:center;text-align:center;gap:4px;padding:8px}
.ctr b{font:800 clamp(15px,1.9vw,20px)/1.1 var(--head);letter-spacing:-.01em}
.ctr span{font-size:12.5px}
a.ctr:hover{background:var(--ink);color:var(--bg)}
.bond{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:72px;align-items:center}
.hil{--mw:290px;--c:calc((var(--mw) - 6px)/2);list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,var(--c));grid-auto-rows:calc(var(--mw)/2);gap:6px}
.hil li:nth-child(1){grid-column:1/3}.hil li:nth-child(2){grid-column:3/5}.hil li:nth-child(3){grid-column:2/4;grid-row:2}.hil li:nth-child(4){grid-column:4/6;grid-row:2}
.pasos{background:var(--surface);border-block:1px solid var(--line)}
.cierre{background:var(--stone);border-block:1px solid var(--line)}
.cierre .in{display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap;padding-block:80px}
.cierre h2{font-size:clamp(26px,3.8vw,46px);line-height:1.1;font-weight:700;letter-spacing:-.02em;max-width:15em;margin:0}
.contacto{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.contacto .alt{display:flex;gap:6px 24px;flex-wrap:wrap;font-size:15px;color:var(--ink2)}
.contacto .alt a{min-height:44px;display:inline-flex;align-items:center}

/* catálogo */
.page{padding-block:56px 96px}
.page .intro{color:var(--ink2);max-width:40em}
.filtros{display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:16px 24px;align-items:end;margin-top:32px;padding-top:24px;border-top:3px solid var(--edge)}
.campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.campo label,.campo legend{font:600 13px/1.3 var(--head);letter-spacing:.02em;color:var(--ink)}
.campo .ayuda{font-size:13.5px;color:var(--mut)}
input[type=search],input[type=text],input[type=email],input[type=tel],input[type=password],input[type=date],input[type=number],select,textarea{font:400 16px/1.4 var(--body);color:var(--ink);background:var(--surface);border:1.5px solid var(--edge);border-radius:0;padding:12px 14px;min-height:48px;width:100%}
textarea{min-height:110px;resize:vertical}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--err);border-width:2.5px}
.chips{display:flex;gap:8px;flex-wrap:wrap;grid-column:1/-1}
.chip{min-height:44px;padding:8px 16px;font:600 14px/1.2 var(--head);background:var(--surface);color:var(--ink);border:1.5px solid var(--edge);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.chip small{font:500 12px/1 var(--mono);opacity:.8;margin-left:6px}
.estado{margin:20px 0 0;color:var(--ink2);font-size:15px;min-height:1.75em}
.cards{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.card{position:relative;display:flex;flex-direction:column;height:100%;background:var(--surface);border:1.5px solid var(--line);transition:border-color .2s,transform .25s}
.card:hover,.card:focus-within{border-color:var(--ink)}
.card:hover{transform:translateY(-3px)}
.card .ph{aspect-ratio:4/3;background:var(--stone);display:grid;place-items:center;overflow:hidden;border-bottom:1.5px solid var(--line)}
.card .ph img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.card .ph svg{width:34%;height:auto;color:#A9B391;--ring:var(--stone)}
.card .cb{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px;flex:1}
.card .cat{font:500 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.card h2{font-size:16px;line-height:1.3;font-weight:700;letter-spacing:-.005em}
.card h2 button{all:unset;cursor:pointer}
.card h2 button::after{content:"";position:absolute;inset:0}
.card h2 button:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
.card .pie{margin-top:auto;display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-top:8px}
.card .precio{font:800 18px/1 var(--head)}
.card .precio small{font:500 12px/1 var(--mono);color:var(--mut)}
.card .uds{font-size:13px;color:var(--mut)}
.mas{display:flex;justify-content:center;margin-top:32px}
.vacio{padding:56px 0;color:var(--ink2)}

/* diálogos */
dialog{border:0;padding:0;background:var(--bg);color:var(--ink);max-width:min(960px,calc(100vw - 24px));width:100%;max-height:calc(100dvh - 24px);box-shadow:0 30px 80px -20px rgba(0,0,0,.5)}
dialog::backdrop{background:rgba(28,33,29,.55)}
.dlg{display:flex;flex-direction:column;max-height:calc(100dvh - 24px)}
.dlg header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;border-bottom:1.5px solid var(--line)}
.dlg header h2{font-size:20px;font-weight:700;margin:0}
.dlg .cuerpo{overflow:auto;padding:20px;display:grid;gap:24px}
.cerrar{min-width:44px;min-height:44px;display:inline-grid;place-items:center;background:transparent;border:1.5px solid var(--edge);cursor:pointer;color:var(--ink)}
.cerrar:hover{background:var(--ink);color:var(--bg)}
.ficha{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.galeria .grande{aspect-ratio:4/3;background:var(--stone);display:grid;place-items:center;border:1.5px solid var(--line);overflow:hidden}
.galeria .grande img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.galeria .grande svg{width:30%;height:auto;color:#A9B391;--ring:var(--stone)}
.miniaturas{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.miniaturas button{width:64px;height:64px;padding:0;background:var(--stone);border:1.5px solid var(--line);cursor:pointer}
.miniaturas button[aria-current="true"]{border-color:var(--ink);border-width:3px}
.miniaturas img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.det h3{font-size:14px;letter-spacing:.02em;margin:18px 0 6px}
.det .precio{font:800 28px/1 var(--head);margin-top:10px}
.det .precio small{font:500 13px/1 var(--mono);color:var(--mut)}
.det ul{margin:0;padding-left:20px}
.det .extra{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding:6px 0}
.det .extra input{width:24px;height:24px;margin-top:2px;accent-color:var(--rojo)}
.cant{display:flex;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}
.cant input{width:96px}
.nota{font-size:13.5px;color:var(--mut)}
.lineas{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--line)}
.lineas li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px 16px;align-items:center;padding:12px 0;border-bottom:1.5px solid var(--line)}
.lineas .n{font-weight:700;overflow-wrap:anywhere}
.lineas .s{font-size:13.5px;color:var(--mut)}
.lineas input{width:84px;min-height:44px}
.lineas .quitar{min-height:44px;padding:8px 12px;background:transparent;border:1.5px solid var(--edge);cursor:pointer;font:600 13px/1 var(--head);color:var(--ink)}
.lineas .quitar:hover{background:var(--ink);color:var(--bg)}
.total{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;font:700 16px/1 var(--head)}
.total strong{font:800 24px/1 var(--head)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form .full{grid-column:1/-1}
.chk{display:flex;gap:12px;align-items:flex-start;min-height:44px}
.chk input{width:24px;height:24px;flex:none;margin-top:3px;accent-color:var(--rojo)}
.resumen-err{border:2px solid var(--err);background:#FDF1F0;padding:14px 16px}
.resumen-err h3{font-size:15px;color:var(--err);margin-bottom:6px}
.resumen-err ul{margin:0;padding-left:20px}
.resumen-err a{color:var(--err);font-weight:700}
.err{color:var(--err);font-size:14px;font-weight:700}
.ok{border:2px solid var(--ok);background:#EEF7F0;padding:20px}
.ok h3{font-size:20px;color:var(--ok);margin-bottom:6px}

/* legal */
.prose{max-width:46em}
.prose h2{font-size:22px;margin:36px 0 10px;font-weight:700}
.prose p,.prose li{color:var(--ink2);margin-bottom:10px}
.prose ul{padding-left:22px}
.prose a{color:var(--ink);text-underline-offset:3px}

/* pie */
footer.pie-web{border-top:1px solid var(--line);padding-block:40px 32px}
footer .in{display:flex;justify-content:space-between;align-items:flex-start;gap:24px 40px;flex-wrap:wrap}
footer .col{display:flex;flex-direction:column;gap:2px}
footer .col h2{font:600 12px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin:0 0 8px}
footer .col a{min-height:36px;display:inline-flex;align-items:center;text-decoration:none;color:var(--ink2);font-size:15px}
footer .col a:hover{color:var(--ink);text-decoration:underline}
footer .fin{margin-top:28px;padding-top:16px;border-top:1px solid var(--line);font-size:13.5px;color:var(--mut)}

@media (max-width:1000px){
  .hero{grid-template-columns:1fr;padding-block:48px 72px;gap:48px}
  .suelo,.bond{grid-template-columns:1fr;gap:40px}
  .sec{padding-block:72px}
  .grid{aspect-ratio:auto;grid-template-columns:1fr;grid-template-rows:none;margin:0;max-width:none;grid-template-areas:"cam" "luz" "gri" "son" "ctr"}
  .grid .mat{min-height:128px}
  .grid .mat.v{border-inline:0;border-block:4px solid var(--edge);padding:14px 20px}
  .grid .ctr{min-height:92px}
  .hil{--mw:100%;grid-template-columns:1fr;grid-auto-rows:auto}
  .hil li:nth-child(n){grid-column:auto;grid-row:auto}
  .hil .mat{min-height:130px}
  .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ficha{grid-template-columns:1fr}
}
@media (max-width:700px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filtros{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .lineas li{grid-template-columns:1fr auto}
  .lineas .cantidad{grid-column:1}
}
@media (max-width:520px){.lk{width:160px}.lkf{width:240px}.etq .cod strong{font-size:26px}.cards{gap:8px}.card .cb{padding:10px 12px 12px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.btn.solid,.chip[aria-pressed="true"]{forced-color-adjust:none}}

/* ── Suavizado (catálogo y formularios): esquinas redondas, sombras suaves, más aire ─────────────── */
:root{--r:20px;--r-s:14px;--soft:#7B887D;--sombra:0 1px 2px rgba(28,33,29,.05),0 14px 32px -20px rgba(28,33,29,.28);--sombra-h:0 2px 4px rgba(28,33,29,.06),0 22px 40px -22px rgba(28,33,29,.38)}
.btn{border-radius:999px;border-color:var(--soft);letter-spacing:.06em}
.btn.solid{border-color:var(--rojo)}
.btn.solid:hover{box-shadow:0 10px 22px -12px rgba(209,23,29,.7)}
.badge{border-radius:999px}
.page{padding-block:72px 120px}
.page h1{font-weight:700}
.filtros{border-top:0;padding-top:12px;margin-top:40px;gap:20px 24px}
input[type=search],input[type=text],input[type=email],input[type=tel],input[type=password],input[type=date],input[type=number],select,textarea{border-radius:var(--r-s);border-color:var(--soft);padding:13px 18px}
input[type=search]{border-radius:999px}
select{appearance:none;-webkit-appearance:none;border-radius:999px;padding-right:46px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5L7 7l5.5-5.5' fill='none' stroke='%231E1E1C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 20px center}
.campo label,.campo legend{padding-left:6px}
.chips{gap:10px}
.chip{border-radius:999px;border-color:var(--soft);padding:9px 20px;font-weight:600;transition:background .2s,color .2s,box-shadow .2s}
.chip:hover{box-shadow:var(--sombra)}
.chip[aria-pressed="true"]{box-shadow:var(--sombra)}
.estado{margin-top:28px}
.cards{gap:24px;margin-top:24px}
.card{border:0;border-radius:var(--r);background:var(--surface);box-shadow:var(--sombra);overflow:hidden;transition:box-shadow .35s ease,transform .35s ease}
.card:hover,.card:focus-within{border:0;box-shadow:var(--sombra-h)}
.card:hover{transform:translateY(-4px)}
.card:focus-within{outline:3px solid var(--ink);outline-offset:3px}
.card .ph{border-bottom:0;margin:10px 10px 0;border-radius:calc(var(--r) - 6px);background:#FFFFFF}
.card .cb{padding:16px 22px 22px;gap:8px}
.card h2{font-size:17px;font-weight:700}
.card h2 button:focus-visible{outline:none}
.card .precio{font-weight:700}
.mas{margin-top:48px}
dialog{border-radius:28px;box-shadow:0 40px 90px -30px rgba(28,33,29,.55);overflow:hidden}
dialog::backdrop{background:rgba(28,33,29,.42);backdrop-filter:blur(3px)}
.dlg header{border-bottom:0;padding:18px 24px 6px}
.dlg .cuerpo{padding:12px 24px 28px;gap:28px}
.cerrar{border-radius:999px;border-color:var(--soft)}
.galeria .grande{border:0;border-radius:var(--r);background:#FFFFFF}
.miniaturas{gap:10px}
.miniaturas button{border-radius:var(--r-s);border-color:transparent;overflow:hidden;background:#FFFFFF}
.miniaturas button[aria-current="true"]{border-color:var(--ink);border-width:2.5px}
.lineas{border-top:0}
.lineas li{border-bottom:1px solid var(--line);padding:16px 0}
.lineas input{border-radius:var(--r-s)}
.lineas .quitar{border-radius:999px;border-color:var(--soft)}
.resumen-err,.ok{border-radius:var(--r-s)}
.zona,.minimos{border-radius:var(--r)}
.chk input{border-radius:6px}
.det .precio{font-weight:700}
@media (max-width:700px){.cards{gap:14px}.card .cb{padding:12px 14px 16px}.card .ph{margin:8px 8px 0}}

/* Verde junco y verde heri como segundo plano de color */
.chip[aria-pressed="true"]{background:var(--heri);border-color:var(--heri)}
.btn.solid:hover{background:var(--heri);border-color:var(--heri)}
.btn.line:hover{background:var(--heri);border-color:var(--heri)}
a.mat.ctr:hover{background:var(--heri)}
.links a:hover,.links a[aria-current="page"]{text-decoration-color:var(--igusa)}
footer.pie-web{border-top:3px solid var(--igusa)}
.hero h1 i{color:var(--rojo-t)}
.card .cat{color:#4F5B3C}
.skip{background:var(--heri)}
.card .ph,.galeria .grande{box-shadow:inset 0 0 0 1px var(--line)}
.card .ph svg,.galeria .grande svg{--ring:#FFFFFF}

/* Presupuesto por pasos */
.dlg header .nota{margin:0}
.dlg section{display:block;margin-bottom:30px}
.paso{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:700;margin:0 0 14px}
.pn{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--heri);color:#fff;font:700 14px/1 var(--head)}
h4.grp{display:flex;align-items:center;gap:8px;font:600 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--mut);margin:18px 0 6px}
.grp-n{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--stone);color:var(--ink);letter-spacing:0}
.lineas li{grid-template-columns:56px minmax(0,1fr) auto;grid-template-areas:"th in quitar" "ctl ctl ctl";gap:10px 14px;align-items:start}
.lineas .th{grid-area:th;width:56px;height:56px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;display:grid;place-items:center}
.lineas .th img{width:100%;height:100%;object-fit:contain}
.thumb-vacio{width:24px;height:24px;border-radius:6px;background:var(--stone)}
.lineas .in{grid-area:in;min-width:0}
.lineas .quitar{grid-area:quitar}
.lineas .ctl{grid-area:ctl;display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;justify-content:space-between}
.lineas .cp{display:flex;flex-direction:column;gap:4px}
.lineas .cp label{font:600 12px/1.2 var(--head);color:var(--ink2)}
.lineas .lt{margin-left:auto;font:700 18px/1 var(--head)}
.lineas .s{line-height:1.5}
.add-rapido{position:relative;z-index:2;align-self:flex-start;min-height:44px;padding:8px 20px;border-radius:999px;border:1.5px solid var(--soft);background:transparent;color:var(--ink);font:700 12px/1 var(--head);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;margin-top:10px;transition:background .2s,color .2s}
.add-rapido:hover{background:var(--heri);color:#fff;border-color:var(--heri)}
.add-rapido:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
