/* Google Ads landing pages: /penapis-air, /penapis-udara and /tilam (HTML from tools/render-landing.cjs).
   Uses the site's own tokens from experience.css: --blue, --ink, --paper, --accent, --line, --muted,
   --display (Barlow Condensed) and --body (DM Sans). Nothing here changes any other page. */

.lp-hero{--pad:max(32px,calc((100vw - 1320px)/2));background:var(--blue);color:#fff;padding:40px var(--pad) 0;position:relative;isolation:isolate}
.lp-hero h1{font-size:clamp(56px,6.6vw,96px);line-height:.92;letter-spacing:-.016em;text-wrap:balance}
.lp-hero h1 span{color:var(--accent)}
.lp-hero p{font-size:16px;line-height:1.65;color:#eaf2ff;max-width:44ch}
.lp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:24px}
.lp-jump{display:inline-flex;align-items:center;min-height:44px;font-weight:600;font-size:15px;border-bottom:1px solid currentColor;padding-bottom:2px}
.lp-jump:hover{color:var(--accent)}

/* ---------- Penapis air: hero headline + real-size line-up ---------- */
.lp-water{padding-bottom:120px}
.lp-hero-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:end}
.lp-stage-block{margin-top:32px}
.lp-filters{display:flex;flex-wrap:wrap;gap:8px}
.lp-filters button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid #ffffff66;border-radius:999px;background:transparent;color:#fff;font-size:14px;font-weight:600;transition:background .2s,color .2s,border-color .2s}
.lp-filters button span{font-variant-numeric:tabular-nums;opacity:.8}
.lp-filters button:hover{border-color:#fff}
.lp-filters button[aria-pressed="true"]{background:#fff;color:var(--ink);border-color:#fff}

/* --mm = pixels per real millimetre. Every product image is var(--h) mm tall × --mm, so they compare truthfully.
   --label = height of the name block under each product; the floor line and the 50 cm / 1 m guides sit on top of it. */
/* Column = at least the full line-up width (so floor + guides run under every model when swiping), else fills the row */
.lp-stage{--mm:.225px;--label:58px;display:grid;grid-template-columns:minmax(max-content,1fr);margin-top:26px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#ffffff70 transparent;padding-top:8px}
.lp-stage:focus-visible{outline-offset:2px}
.lp-ruler,.lp-units{grid-area:1/1}
.lp-ruler{position:relative;pointer-events:none}
.lp-ruler span{position:absolute;left:0;right:0;bottom:calc(var(--label) + var(--at) * var(--mm));border-top:1px dashed #ffffff59;padding-top:5px;font-size:14px;font-weight:600;color:#dce9ff;font-variant-numeric:tabular-nums}
.lp-ruler::after{content:"";position:absolute;left:0;right:0;bottom:calc(var(--label) - 3px);height:3px;background:var(--accent)}
.lp-units{list-style:none;margin:0;padding:0 8px 0 64px;display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(10px,1.5vw,26px)}
/* flex:none + max-width:none: a squeezed row must never shrink a product below its real-scale height */
.lp-units>li{flex:none}
.lp-unit{display:flex;flex-direction:column;align-items:center;min-width:78px;padding:0;border:0;background:none;color:#fff;transition:opacity .35s var(--ease)}
.lp-unit img{height:calc(var(--h) * var(--mm));width:calc(var(--h) * var(--mm) * var(--ratio));max-width:none;object-fit:contain;object-position:bottom;transition:filter .25s}
.lp-unit-name{display:block;height:24px;margin-top:12px;font-family:var(--display);font-size:19px;line-height:24px;letter-spacing:.01em;white-space:nowrap;text-decoration:underline 2px transparent;text-underline-offset:5px;transition:color .2s,text-decoration-color .2s}
.lp-unit-h{display:block;height:22px;font-size:14px;line-height:22px;color:#dce9ff;font-variant-numeric:tabular-nums}
.lp-unit:hover img{filter:brightness(1.06) drop-shadow(0 8px 14px #00153a55)}
.lp-unit[aria-pressed="true"] .lp-unit-name{color:var(--accent);text-decoration-color:var(--accent)}
.lp-unit.is-dim{opacity:.3}
.lp-unit.is-dim:hover{opacity:.6}
.lp-hero .lp-stage-note{margin-top:16px;font-size:14px;color:#dce9ff;max-width:none}
/* Phones only: the line-up scrolls sideways there */
.lp-swipe-hint{display:none}

/* ---------- Penapis udara: room size slider + coverage bars ----------
   --max = biggest coverage (m²), --room = the slider value. A bar is --m/--max wide, so bars compare to scale,
   and the white marker line sits at --room/--max on every bar: bars that reach past it cover the room. */
.lp-air{padding-bottom:120px}
.lp-room{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.6fr);gap:clamp(28px,4vw,64px);align-items:start;margin-top:36px;padding-top:28px;border-top:1px solid #ffffff40}
.lp-room-control label{display:block;font-size:16px;font-weight:600}
.lp-room-control output{display:block;margin-top:8px;font-family:var(--display);font-size:clamp(64px,7vw,104px);font-weight:700;line-height:.9;color:var(--accent);font-variant-numeric:tabular-nums}
.lp-room-control output small{font-family:var(--body);font-size:16px;font-weight:600;color:#dce9ff}
.lp-room input[type="range"]{-webkit-appearance:none;appearance:none;display:block;width:100%;height:44px;margin:14px 0 6px;background:transparent;cursor:pointer}
.lp-room input[type="range"]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:#ffffff4d}
.lp-room input[type="range"]::-moz-range-track{height:6px;border-radius:3px;background:#ffffff4d}
.lp-room input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;margin-top:-12px;border-radius:50%;background:var(--accent);border:3px solid var(--ink)}
.lp-room input[type="range"]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--accent);border:3px solid var(--ink)}
.lp-room-hint{font-size:14px;color:#dce9ff}
.lp-hero .lp-room-summary{margin-top:14px;font-size:15px;font-weight:600;color:#fff}
.lp-cover{list-style:none;margin:0;padding:0}
.lp-cover li+li{border-top:1px solid #ffffff26}
.lp-cover-row{display:grid;grid-template-columns:44px 140px minmax(0,1fr);align-items:center;gap:16px;width:100%;min-height:72px;padding:10px 8px;border:0;border-radius:8px;background:none;color:#fff;text-align:left;transition:background .2s}
.lp-cover-row:hover{background:#ffffff12}
.lp-cover-row img{width:44px;height:56px;object-fit:contain;transition:opacity .25s}
.lp-cover-name{font-family:var(--display);font-size:22px;line-height:1.05}
.lp-cover-name b{font-weight:700;text-decoration:underline 2px transparent;text-underline-offset:5px;transition:color .2s,text-decoration-color .2s}
.lp-cover-name small{display:block;margin-top:4px;font-family:var(--body);font-size:14px;color:#dce9ff}
.lp-cover-row[aria-pressed="true"] .lp-cover-name b{color:var(--accent);text-decoration-color:var(--accent)}
.lp-cover-track{position:relative;display:flex;align-items:center;height:40px}
.lp-cover-track i{position:absolute;left:0;top:4px;bottom:4px;width:calc(var(--m) / var(--max) * 100%);border-radius:6px;background:var(--accent);border:1.5px solid var(--accent);transition:background .25s,border-color .25s}
.lp-cover-track b{position:relative;margin-left:12px;font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;transition:color .25s}
/* The room-size marker: one 2px line per row; rows touch, so it reads as one line down the list */
.lp-cover-track::after{content:"";position:absolute;top:-19px;bottom:-19px;left:calc(var(--room) / var(--max) * 100%);width:2px;margin-left:-1px;background:#fff}
/* Tag sits just after the end of its own bar, but never past the row's right edge */
.lp-cover-track em{display:none;position:absolute;left:min(calc(var(--m) / var(--max) * 100% + 10px),calc(100% - 92px));padding:4px 10px;border-radius:999px;background:#fff;color:var(--ink);font-size:14px;font-style:normal;font-weight:700}
.lp-cover-row[data-best] .lp-cover-track em{display:block}
/* Phone version of the same tag, under the model name (the bar area is too narrow there) */
.lp-cover-best{display:none}
.lp-cover-row[data-fit="no"] .lp-cover-track i{background:transparent;border-style:dashed;border-color:#ffffff8c}
.lp-cover-row[data-fit="no"] .lp-cover-track b{color:#fff}
.lp-cover-row[data-fit="no"] img{opacity:.45}
.lp-air .lp-stage-note{margin-top:20px}
.lp-room-list .lp-filters{margin-bottom:14px}
.lp-cover-row.is-dim{opacity:.32}
.lp-cover-row.is-dim:hover{opacity:.6}
.lp-hero .lp-room-empty{margin-top:14px;font-size:15px;font-weight:600;color:var(--accent);max-width:34ch}

/* ---------- Penapis udara: comparison table ---------- */
.lp-compare-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:end}
.lp-compare h2{font-size:clamp(46px,5.4vw,80px);text-wrap:balance}
.lp-compare-head p{font-size:16px;color:var(--muted);max-width:50ch}
.lp-compare-scroll{margin-top:36px;overflow-x:auto;overscroll-behavior-x:contain;border-top:2px solid var(--ink);scrollbar-width:thin}
.lp-compare-table{width:100%;min-width:1040px;border-collapse:collapse;font-size:14px;line-height:1.45}
.lp-compare-table th,.lp-compare-table td{padding:14px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line)}
.lp-compare-table thead th{font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap}
.lp-compare-table td{font-variant-numeric:tabular-nums}
/* Model name stays visible while the table scrolls sideways on phones */
.lp-compare-table tbody th{position:sticky;left:0;z-index:1;background:var(--paper);font-family:var(--display);font-size:22px;font-weight:700;white-space:nowrap}
.lp-compare-table tbody th a:hover{color:var(--blue)}
.lp-intake-cell{display:flex;align-items:center;gap:10px;font-weight:700;white-space:nowrap}
.lp-intake{width:40px;height:40px;color:var(--blue)}
.lp-intake-cell.is-unknown{font-weight:400;color:var(--muted)}

/* ---------- Penapis air: the open model, lifted over the blue band ---------- */
.lp-models{position:relative;z-index:1;margin-top:-88px;padding:0 max(32px,calc((100vw - 1320px)/2)) 8px}
/* Shadow: this card overlaps the blue band, so it needs real elevation to read as one layer above it */
.lp-model{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,4vw,64px);align-items:center;background:#fff;border-radius:14px;padding:clamp(22px,3.4vw,48px);box-shadow:0 22px 48px -24px #071e3966}
.lp-model+.lp-model{margin-top:16px}
.lp-model-art{display:flex;align-items:flex-end;justify-content:center;height:clamp(280px,32vw,440px);border-bottom:3px solid var(--accent)}
.lp-model-img{height:100%;width:auto;max-width:100%;object-fit:contain;object-position:bottom}
.lp-model-type{font-size:14px;font-weight:600;color:var(--muted)}
.lp-model h2{margin-top:8px;font-family:var(--display);font-size:clamp(44px,4.6vw,68px);font-weight:700;line-height:.95;letter-spacing:-.01em;text-transform:uppercase}
.lp-model-line{margin-top:12px;font-size:16px;line-height:1.6;color:var(--muted);max-width:52ch}
/* Key facts (water: tanks; air: the catalogue's key facts) in one row, then size as one full-width row.
   auto-fit keeps a row on one line; a lone item (the size row) spans the whole width */
.lp-specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:0 18px;margin:22px 0 0}
.lp-size{margin-top:0}
.lp-specs div{border-top:1px solid var(--line);padding:10px 0}
.lp-specs dt{font-size:14px;color:var(--muted)}
.lp-specs dd{margin:2px 0 0;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.lp-track{display:grid;grid-template-columns:1fr 1fr;margin-top:22px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.lp-track>div{padding:14px 18px}
.lp-track>div:first-child{background:var(--accent)}
.lp-track span{display:block;font-size:14px;font-weight:600}
.lp-track strong{display:block;margin-top:2px;font-family:var(--display);font-size:clamp(36px,3.4vw,48px);line-height:1;font-variant-numeric:tabular-nums}
.lp-track small{font-family:var(--body);font-size:14px;font-weight:600;margin-left:2px}
.lp-plan{margin-top:12px;font-size:14px;line-height:1.6;color:var(--muted)}
.lp-model-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:22px}
.lp-link{display:inline-flex;align-items:center;min-height:44px;font-weight:600;font-size:14px;color:var(--blue);border-bottom:1px solid currentColor}
.lp-link:hover{color:var(--ink)}
.lp-fineprint{margin-top:18px;font-size:14px;line-height:1.6;color:var(--muted);max-width:90ch}
/* Previous / next model, so phone visitors can compare without scrolling back up to the line-up */
.lp-step{display:flex;justify-content:space-between;gap:12px;margin-top:22px;padding-top:12px;border-top:1px solid var(--line)}
.lp-step button{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 2px;border:0;background:none;color:var(--ink);font-size:14px;font-weight:700;transition:color .2s}
.lp-step button:hover:not(:disabled){color:var(--blue)}
.lp-step button:disabled{opacity:.3}
.lp-step svg{width:18px;height:18px;flex:none}

/* Find my Coway (hero): same quiet link style as the jump link, but it's a button that opens the dialog */
.lp-finder{display:inline-flex;align-items:center;min-height:44px;padding:0 0 2px;border:0;border-bottom:1px solid currentColor;background:none;color:inherit;font:inherit;font-weight:600;font-size:15px;cursor:pointer}
.lp-finder:hover{color:var(--accent)}

/* The big "Compare Penapis Air" button: same size and weight as the WhatsApp button next to it,
   white on the blue hero (secondary to green WhatsApp), dark on the light band under the models */
.lp-compare-cta{gap:10px;min-height:52px;padding:0 24px;font-size:16px;font-weight:700;border-radius:999px;cursor:pointer}
.lp-compare-cta svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.lp-compare-band{display:flex;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:16px;padding:22px 28px;border:1px solid var(--line);border-radius:14px;background:#fff}
.lp-compare-band p{font-size:16px;line-height:1.5;color:var(--muted)}
.lp-compare-band b{display:block;font-size:18px;color:var(--ink)}
.lp-compare-band .lp-compare-cta{flex:none}
.lp-tilam-list+.lp-compare-band{margin-top:28px}

/* Compare dialog picker: tap model pictures to add / remove (max 3); picked ones get a blue frame + tick */
.compare-picker{margin:6px 0 24px}
.compare-picker-hint{margin-bottom:12px;font-size:15px;font-weight:700;color:var(--ink)}
.compare-picker-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:8px}
.compare-pick{position:relative;display:grid;justify-items:center;align-content:start;gap:6px;min-height:44px;padding:10px 6px 9px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:14px;font-weight:700;line-height:1.2;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.compare-pick:hover:not(:disabled){border-color:var(--ink)}
.compare-pick img{width:100%;height:64px;object-fit:contain}
.compare-pick[aria-pressed="true"]{border-color:var(--blue);background:#eaf1ff;box-shadow:inset 0 0 0 1.5px var(--blue)}
.compare-pick[aria-pressed="true"]::after{content:"";position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12 4 4L19 6' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat}

/* Compare dialog on these pages: every model has the same rows, so subgrid lines them up across columns */
.compare-grid-rows .compare-column{display:grid;grid-row:span var(--span);grid-template-rows:subgrid;row-gap:0}
.compare-grid-rows .compare-column dl{display:contents}
.compare-grid-rows .compare-column h3{align-self:end;margin-bottom:12px}
.compare-actions{padding-top:16px}

/* Phone action bar (shown by landing.js below 760px): the picked model + WhatsApp, always one thumb away */
.lp-dock{display:none}

/* ---------- Service + contract (penapis air) ---------- */
.lp-service{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(32px,6vw,96px);align-items:start;background:#fff;margin-top:72px}
.lp-service h2,.lp-terms h2,.lp-faq h2,.lp-sizes h2,.lp-care h2{font-size:clamp(46px,5.4vw,80px);text-wrap:balance}
.lp-service h2 span{color:var(--blue)}
.lp-service-points>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;padding:22px 0;border-top:1px solid var(--line)}
.lp-service-points>div:last-child{border-bottom:1px solid var(--line)}
.lp-service-points h3{font-size:18px}
.lp-service-points p{font-size:15px;line-height:1.7;color:var(--muted)}
.lp-terms{background:var(--blue);color:#fff}
.lp-term-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(20px,3vw,48px);margin:36px 0 0}
.lp-term-list div{border-top:2px solid #ffffff73;padding-top:16px}
.lp-term-list dt{font-family:var(--display);font-size:clamp(30px,2.8vw,40px);font-weight:700;line-height:1;color:var(--accent)}
.lp-term-list dd{margin:10px 0 0;font-size:15px;line-height:1.65;color:#eaf2ff;max-width:38ch}

/* ---------- FAQ (both pages) ---------- */
.lp-faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.lp-faq-side{position:sticky;top:24px}
.lp-faq-side p{margin:18px 0 24px;font-size:15px;color:var(--muted);max-width:36ch}
.lp-faq-item{border-top:1px solid var(--line)}
.lp-faq-item:last-child{border-bottom:1px solid var(--line)}
.lp-faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:44px;padding:20px 0;font-size:18px;font-weight:700;cursor:pointer}
.lp-faq-item summary::-webkit-details-marker{display:none}
/* Plus / minus drawn with two bars, so it matches the line weight of the rest of the page */
.lp-faq-item summary::after{content:"";flex:none;width:16px;height:16px;background:linear-gradient(var(--blue),var(--blue)) center/16px 2px no-repeat,linear-gradient(var(--blue),var(--blue)) center/2px 16px no-repeat;transition:transform .25s var(--ease)}
.lp-faq-item[open] summary::after{transform:rotate(45deg)}
.lp-faq-item summary:hover{color:var(--blue)}
.lp-faq-item p{padding:0 0 22px;font-size:15px;line-height:1.7;color:var(--muted);max-width:62ch}

/* ---------- Tilam: hero ---------- */
.lp-bed{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(32px,5vw,80px);align-items:center;padding-bottom:56px}
.lp-bed-copy p{margin-top:22px}
.lp-bed-photo{margin:0;justify-self:end;width:min(100%,500px)}
.lp-bed-photo img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:14px}
.lp-bed-photo figcaption{margin-top:10px;font-size:14px;color:#dce9ff}

/* ---------- Tilam: Queen / King + model rows ---------- */
.lp-sizes[data-size="queen"] [data-size="king"],.lp-sizes[data-size="king"] [data-size="queen"]{display:none}
.lp-size-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.lp-size-head>div>p{margin-top:14px;font-size:16px;color:var(--muted)}
.lp-size-toggle{display:inline-flex;margin-top:24px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#fff}
.lp-size-toggle button{min-width:116px;min-height:48px;padding:0 20px;border:0;border-radius:9px;background:transparent;font-size:16px;font-weight:700;transition:background .2s,color .2s}
.lp-size-toggle button[aria-pressed="true"]{background:var(--ink);color:#fff}
.lp-size-readout{margin-top:14px;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
/* Top view of the bed, drawn to scale: King outline is the full width, Queen is --q/--k of it */
.lp-plan-view{position:relative;width:min(100%,420px);aspect-ratio:var(--k)/var(--l);margin:28px 0 0 auto}
.lp-bed-outline{position:absolute;left:0;bottom:0;height:100%;border:2px dashed #9fb2c8;border-radius:6px;transition:background .3s,border-color .3s}
.lp-outline-king{width:100%}
.lp-outline-queen{width:calc(var(--q) / var(--k) * 100%)}
.lp-sizes[data-size="queen"] .lp-outline-queen,.lp-sizes[data-size="king"] .lp-outline-king{border-style:solid;border-color:var(--ink);background:#e3edff}
.lp-sizes[data-size="king"] .lp-outline-queen{background:transparent}
.lp-dim-w,.lp-dim-l{position:absolute;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.lp-dim-w{top:10px;left:50%;transform:translateX(-50%)}
.lp-dim-l{top:50%;left:10px;transform:translateY(-50%) rotate(-90deg);transform-origin:left top}
.lp-sizes[data-size="queen"] .lp-outline-king .lp-dim-w,.lp-sizes[data-size="king"] .lp-outline-queen .lp-dim-w{display:none}
.lp-tilam-list{margin-top:48px}
.lp-tilam{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(230px,.8fr);gap:clamp(20px,3vw,44px);align-items:center;padding:30px 0;border-top:1px solid var(--line)}
.lp-tilam:last-child{border-bottom:1px solid var(--line)}
.lp-tilam-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:12px}
.lp-tilam h3{font-family:var(--display);font-size:clamp(36px,3.4vw,50px);font-weight:700;line-height:.95;text-transform:uppercase}
.lp-tilam-info>p{margin-top:10px;font-size:15px;line-height:1.6;color:var(--muted)}
/* Side view of the mattress: bar height = real thickness (0.12 px per mm). A solid filled profile
   (comfort layer on top, body below) so it reads as a drawing, not as an empty text box */
.lp-thick{display:flex;align-items:flex-end;gap:14px;margin-top:16px}
.lp-thick i{display:block;flex:none;width:150px;height:calc(var(--t) * .12px);border-radius:9px 9px 3px 3px;background:linear-gradient(#a9c6fb,#a9c6fb) top/100% 36% no-repeat,var(--blue)}
.lp-thick span{font-size:14px;font-weight:700;line-height:1.35;font-variant-numeric:tabular-nums}
.lp-thick small{display:block;font-size:14px;font-weight:400;color:var(--muted)}
/* Same accent price track as the water and air pages; stacked here because the price column is narrow */
.lp-tilam .lp-track{grid-template-columns:1fr;margin-top:0}
.lp-tilam .lp-track strong{font-size:clamp(34px,3vw,44px)}
.lp-tilam-price .lp-plan{margin-top:10px;font-size:14px;line-height:1.5}
.lp-tilam-price .lp-model-actions{flex-direction:column;align-items:flex-start;gap:6px;margin-top:16px}
/* Model names can be long ("BEREX Prime II"): the button wraps instead of pushing out of its column */
.lp-model-actions .button.wa{white-space:normal;text-align:center;max-width:100%}

/* ---------- Tilam: 7-Step Mattress Care (the order is the service, so the numbers stay) ---------- */
.lp-care{background:#fff}
.lp-care-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:end}
.lp-care-head p{font-size:16px;color:var(--muted);max-width:48ch}
.lp-steps{list-style:none;counter-reset:step;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0 16px;margin:44px 0 0;padding:0}
.lp-steps li{counter-increment:step;border-top:2px solid var(--ink);padding-top:14px;font-size:15px;font-weight:600;line-height:1.45}
.lp-steps li::before{content:counter(step);display:block;margin-bottom:10px;font-family:var(--display);font-size:46px;line-height:1;color:var(--blue)}
/* Steps with Coway's photo of each one: photo on top, then the number and the step */
.lp-steps.has-photos li{display:flex;flex-direction:column;border-top:0;padding-top:0}
.lp-steps.has-photos img{order:-1;width:100%;height:auto;aspect-ratio:600/391;object-fit:cover;border-radius:10px;margin-bottom:12px;border-bottom:2px solid var(--ink)}
.lp-steps.has-photos li::before{font-size:38px;margin-bottom:6px}
/* Heart Service: what CODY does, in Coway's photos */
.lp-service-photos{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:8px}
.lp-service-photos figure{margin:0}
.lp-service-photos img{width:100%;height:auto;aspect-ratio:600/382;object-fit:cover;border-radius:12px}
.lp-service-photos figcaption{margin-top:10px;font-size:15px;font-weight:700}

@media(max-width:1100px){
  .lp-tilam{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
  .lp-tilam-price{grid-column:2}
  .lp-tilam .lp-track{grid-template-columns:1fr 1fr}
  .lp-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 16px}
}
@media(max-width:760px){
  .lp-hero{padding:30px 20px 0}
  .lp-hero h1{font-size:clamp(46px,13.4vw,72px)}
  .lp-hero p{font-size:15px}
  .lp-water,.lp-air{padding-bottom:84px}
  /* minmax(0,…): the sideways-scrolling chip row must not stretch the column past the screen */
  .lp-room{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:28px;padding-top:22px}
  .lp-room-control output{font-size:64px}
  .lp-cover-row{grid-template-columns:34px 104px minmax(0,1fr);gap:10px;padding:8px 4px}
  .lp-cover-row img{width:34px;height:46px}
  .lp-cover-name{font-size:18px}
  .lp-cover-track b{margin-left:8px;font-size:14px}
  .lp-cover-row[data-best] .lp-cover-track em{display:none}
  .lp-cover-row[data-best] .lp-cover-best{display:inline-block;margin-top:5px;padding:2px 7px;border-radius:999px;background:#fff;color:var(--ink);font-family:var(--body);font-size:14px;font-weight:700}
  .lp-air .lp-jump,.lp-air .lp-room-hint{display:none}
  .lp-room-list .lp-filters{flex-wrap:nowrap;overflow-x:auto;margin:0 -20px 12px;padding:0 20px 4px;scrollbar-width:none}
  .lp-compare-head{grid-template-columns:1fr;gap:14px}
  /* The 10-column table becomes one card per model: no sideways scrolling, price always in view */
  .lp-compare-scroll{margin-top:24px;overflow:visible;border-top:0}
  .lp-compare-table{min-width:0}
  .lp-compare-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .lp-compare-table tbody,.lp-compare-table tr,.lp-compare-table th,.lp-compare-table td{display:block}
  .lp-compare-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:16px 0 8px;border-top:2px solid var(--ink)}
  .lp-compare-table tbody th{position:static;grid-column:1/-1;padding:0 0 8px;border:0;background:none;font-size:30px}
  .lp-compare-table td{padding:9px 0;border-bottom:0;border-top:1px solid var(--line)}
  .lp-compare-table td::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:14px;font-weight:600;color:var(--muted)}
  .lp-compare-table td:first-of-type,.lp-compare-table .lp-compare-price{grid-column:1/-1}
  .lp-compare-table .lp-compare-price{font-size:17px;font-weight:700;color:var(--blue)}
  .lp-intake-cell{white-space:normal}
  .lp-intake{width:34px;height:34px}
  .lp-air h1{font-size:clamp(42px,12vw,64px)}
  .lp-hero-head,.lp-bed,.lp-service,.lp-faq,.lp-size-head,.lp-care-head{grid-template-columns:1fr}
  .lp-hero-head{gap:16px}
  .lp-actions .button.wa{width:100%}
  .lp-stage-block{margin-top:30px}
  .lp-filters{flex-wrap:nowrap;overflow-x:auto;margin:0 -20px;padding:0 20px 4px;scrollbar-width:none}
  .lp-filters button{flex:none}
  /* The line-up bleeds to the screen edge and scrolls sideways; the page itself never does */
  .lp-stage{--mm:.205px;margin:18px -20px 0;padding:8px 20px 0}
  .lp-units{justify-content:flex-start;padding-left:52px;padding-right:20px}
  .lp-unit{min-width:70px}
  .lp-models{margin-top:-60px;padding:0 12px 4px}
  .lp-model{grid-template-columns:1fr;gap:18px;padding:20px}
  .lp-model-art{height:230px}
  .lp-track>div{padding:12px 14px}
  .lp-model-actions .button.wa{width:100%}
  .lp-fineprint{padding:0 8px}
  .lp-service{margin-top:48px}
  .lp-service-points>div{grid-template-columns:1fr;gap:6px}
  .lp-term-list{grid-template-columns:1fr;gap:22px}
  .lp-faq-side{position:static}
  .lp-faq-item summary{font-size:16px;padding:16px 0}
  .lp-bed{padding-bottom:36px;gap:28px}
  /* A small top view is enough to show the Queen / King difference; full width it filled a whole screen */
  .lp-plan-view{margin:22px 0 0;width:172px}
  .lp-tilam .lp-track strong{font-size:36px}
  .lp-tilam{grid-template-columns:minmax(0,1fr);gap:16px;padding:26px 0}
  .lp-model-actions .button.wa{white-space:normal;text-align:center}
  /* The line-up sits right under the button on phones, so the jump link only costs first-screen space */
  .lp-water .lp-jump{display:none}
  .lp-water h1{font-size:clamp(42px,12vw,64px)}
  .lp-tilam-price{grid-column:auto}
  .lp-tilam-price .lp-model-actions{align-items:stretch}
  .lp-steps{grid-template-columns:1fr;gap:0}
  .lp-steps li{display:grid;grid-template-columns:44px 1fr;align-items:baseline;padding:12px 0;border-top-width:1px}
  .lp-steps li::before{margin:0;font-size:32px}
  /* With photos: two per row, photo above number + step */
  .lp-steps.has-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}
  .lp-steps.has-photos li{display:flex;padding:0}
  .lp-steps.has-photos li::before{margin-bottom:4px;font-size:30px}
  .lp-service-photos{grid-template-columns:1fr;gap:18px}
  /* Four key facts sit 2 × 2 instead of 3 + 1 orphan */
  .lp-specs:has(>div:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}
  /* Sideways rows: fade the right edge until the visitor reaches the end (landing.js adds .is-end) */
  .lp-swipe-hint{display:inline}
  .lp-stage:not(.is-end),.lp-filters:not(.is-end),.lp-flow-picks:not(.is-end){-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 56px),transparent)}
  .lp-dock{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:64;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:14px;background:var(--ink);color:#fff;box-shadow:0 14px 32px -12px #00193599;transform:translateY(calc(100% + 24px));visibility:hidden;transition:transform .4s var(--ease),visibility .4s}
  .lp-dock.is-on{transform:none;visibility:visible}
  .lp-dock-info{flex:1;min-width:0;display:grid;gap:1px;margin:0;line-height:1.2}
  .lp-dock-info b{font-family:var(--display);font-size:21px;font-weight:700;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lp-dock-info span{font-size:14px;color:#c9dbff}
  .lp-dock .button.wa{flex:none;min-height:48px;padding:0 18px}
  /* The action bar replaces the round floating WhatsApp button on these pages */
  body:has(.lp-dock:not([hidden])) .wa-float{display:none}
  .lp-actions .lp-compare-cta{width:100%}
  .lp-compare-band{flex-direction:column;align-items:stretch;padding:20px}
  /* 4 small pictures per row, so the comparison itself starts within the first screen */
  .compare-picker-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .compare-pick{padding:8px 4px 7px;font-size:14px;border-radius:10px}
  .compare-pick img{height:44px}
  .compare-pick[aria-pressed="true"]::after{top:4px;right:4px;width:18px;height:18px;background-size:11px}
  .compare-picker{margin-bottom:18px}
  /* Tray + action bar both showing: lift the "dah ditambah" message above them */
  body:has(#compare-tray:not([hidden])):has(.lp-dock.is-on) .toast{bottom:calc(172px + env(safe-area-inset-bottom))}
  /* Compare dialog: two models fit side by side on a phone (three scroll sideways) */
  .compare-grid-rows{grid-template-columns:repeat(var(--columns),minmax(136px,1fr))}
  .compare-grid-rows .compare-column{padding:12px}
  .compare-grid-rows .compare-column img{height:112px;margin-bottom:12px}
  .compare-grid-rows .compare-column h3{font-size:19px}
  .compare-grid-rows .compare-column .button{padding:10px 8px;font-size:14px}
  /* When the compare tray is open it takes the bottom edge, so the action bar sits just above it */
  body:has(#compare-tray:not([hidden])) .lp-dock{bottom:calc(92px + env(safe-area-inset-bottom))}
}
/* ---- Penapis udara: "How each model differs" room (render-landing.cjs; air drawn by landing.js) ----
   A model picker, a small 3D room where the chosen purifier stands (dust drifts in from its intake sides,
   clean air rises from the top), and one plain-language panel. The full spec table folds underneath. */
.lp-flow-picks{display:flex;gap:10px;margin-top:36px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-bottom:6px}
.lp-flow-pick{flex:0 0 auto;display:flex;align-items:center;gap:12px;min-height:68px;padding:8px 18px 8px 8px;border:1.5px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-align:left;transition:border-color .2s,background .2s,color .2s,transform .15s var(--ease)}
.lp-flow-pick img{width:50px;height:50px;object-fit:contain;flex:none}
.lp-flow-pick b{display:block;font-family:var(--display);font-size:22px;line-height:1;font-weight:700}
.lp-flow-pick small{display:block;margin-top:4px;font-size:14px;color:var(--muted);white-space:nowrap}
.lp-flow-pick:hover{border-color:var(--ink)}
.lp-flow-pick:active{transform:scale(.98)}
.lp-flow-pick[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.lp-flow-pick[aria-pressed="true"] small{color:#b9c9de}
.lp-flow-body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:clamp(24px,4vw,56px);align-items:center;margin-top:20px}
.lp-flow-stage{position:relative;margin:0;aspect-ratio:16/11;border-radius:16px;overflow:hidden;background:#e6eef8;isolation:isolate}
.lp-flow-layer{position:absolute;inset:0;width:100%;height:100%;display:block}
.lp-flow-unit{position:absolute;left:0;top:0;width:var(--unit,180px);height:var(--unit,180px);object-fit:contain;transform:translate3d(var(--ux,50%),var(--uy,60%),0) translate(-50%,-93%);filter:drop-shadow(0 14px 14px rgb(7 30 57 / .2));transition:opacity .2s;pointer-events:none;z-index:1}
.lp-flow-unit.is-swapping{opacity:0}
.lp-flow-stage>canvas[data-flow-front]{z-index:2;pointer-events:none}
/* Legend sits on the empty back wall, so it never covers the floor or the unit */
.lp-flow-key{position:absolute;left:14px;top:12px;z-index:3;display:flex;flex-wrap:wrap;gap:4px 16px;padding:8px 12px;border-radius:12px;background:rgb(255 255 255 / .8);font-size:14px;font-weight:600;color:var(--ink)}
.lp-flow-key>span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.lp-flow-dot{width:14px;height:5px;border-radius:3px;flex:none}
.lp-flow-dot.is-room{background:#8c7a63}
.lp-flow-dot.is-clean{background:#3d8bff}
.lp-flow-panel h3{font-family:var(--display);font-size:clamp(40px,4vw,56px);line-height:.95;letter-spacing:-.01em}
.lp-flow-intake{display:flex;align-items:center;gap:14px;margin-top:18px;font-size:20px;font-weight:700;line-height:1.25}
.lp-flow-intake .lp-intake{width:52px;height:52px;flex:none}
.lp-flow-intake small{display:block;font-size:14px;font-weight:600;color:var(--muted)}
.lp-flow-place{margin-top:12px;font-size:17px;line-height:1.55;color:var(--ink)}
.lp-flow-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin:20px 0 22px}
.lp-flow-facts>div{padding:12px 0;border-top:1px solid var(--line)}
.lp-flow-facts dt{font-size:14px;font-weight:600;color:var(--muted)}
.lp-flow-facts dd{margin:2px 0 0;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.lp-flow-facts dd small{font-size:14px;font-weight:500;color:var(--muted)}
.lp-flow-facts>div:last-child dd{color:var(--blue)}
.lp-flow-panel:not([hidden]){animation:lp-flow-in .32s cubic-bezier(.16,1,.3,1)}
@keyframes lp-flow-in{from{opacity:0;transform:translateY(8px)}}
.lp-flow-all{margin-top:28px;border-top:2px solid var(--ink)}
.lp-flow-all summary{display:flex;align-items:center;justify-content:space-between;min-height:60px;cursor:pointer;font-size:17px;font-weight:700;list-style:none}
.lp-flow-all summary::-webkit-details-marker{display:none}
.lp-flow-all summary span{font-size:26px;font-weight:400;transition:transform .2s}
.lp-flow-all[open] summary span{transform:rotate(45deg)}
.lp-flow-all .lp-compare-scroll{margin-top:0}
@media(max-width:900px){
  .lp-flow-body{grid-template-columns:1fr}
  .lp-flow-stage{aspect-ratio:4/3.4}
}
@media(max-width:760px){
  .lp-flow-picks{margin-top:24px;margin-right:-21px;padding-right:21px}
  .lp-flow-pick{min-height:60px;padding-right:14px}
  .lp-flow-pick img{width:42px;height:42px}
  .lp-flow-pick b{font-size:20px}
  .lp-flow-key{left:10px;top:10px;padding:6px 10px}
  .lp-flow-intake{font-size:18px}
}
@media(prefers-reduced-motion:reduce){
  .lp-unit,.lp-unit img,.lp-faq-item summary::after,.lp-bed-outline,.lp-filters button,.lp-size-toggle button,.lp-dock,.lp-step button,.compare-pick,.lp-flow-pick,.lp-flow-all summary span{transition:none}
  .lp-flow-panel:not([hidden]){animation:none}
}
