/* v3 content layer — self-contained chrome + classes */
#app{min-height:40vh}
.appsec{padding:36px 0}
.appsec .container{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.shx{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;border-bottom:2px solid var(--line);padding-bottom:10px}
.shx h2{font-size:26px;margin:0;color:var(--heading-color)}
.shx a{color:var(--brand-2);text-decoration:none;font-size:14px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.ec{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm);transition:.15s}
.ec:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.ec .im{height:150px;background:linear-gradient(120deg,var(--brand-2),var(--navy))}
.ec .bd{padding:14px}
.ec .cat{display:inline-block;font-size:11px;color:var(--brand-2);background:var(--brand-soft);border-radius:10px;padding:2px 9px;margin-bottom:8px}
.ec h3{font-size:16px;margin:0 0 6px;color:var(--heading-color)}
.ec p{font-size:13px;color:var(--muted);margin:0;line-height:1.7}
.crumb{font-size:13px;color:var(--muted);margin:14px 0}.crumb a{color:var(--brand-2);text-decoration:none}
.dhero{background:linear-gradient(120deg,var(--navy),var(--brand-2));color:#fff;padding:38px 0}
.dhero .container{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.dhero h1{margin:0;font-size:34px;color:#fff}.dhero .tl{opacity:.92;font-size:17px;margin-top:8px}
.subnav{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.subnav span{background:var(--brand-soft);color:var(--brand-2);border-radius:18px;padding:5px 14px;font-size:13px}
.rich{font-size:16px;line-height:2.05;color:var(--ink);max-width:840px}.rich h3{color:var(--heading-color);margin:22px 0 8px}
.reqs{list-style:none;padding:0;margin:8px 0}.reqs li{padding:7px 0;border-bottom:1px dashed var(--line);padding-inline-start:22px;position:relative}.reqs li:before{content:'✓';color:var(--brand-2);position:absolute;inset-inline-start:0;font-weight:bold}
.stp{counter-reset:st;margin:8px 0;padding:0}.stp li{list-style:none;padding:8px 0;padding-inline-start:40px;position:relative}.stp li:before{counter-increment:st;content:counter(st);position:absolute;inset-inline-start:0;top:5px;width:27px;height:27px;border-radius:50%;background:var(--brand);color:#06222a;font-weight:bold;display:flex;align-items:center;justify-content:center;font-size:13px}
.ibox{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin:14px 0}.ibox b{color:var(--heading-color)}
.chipx{display:inline-block;background:var(--brand-soft);color:var(--brand-2);border-radius:16px;padding:4px 14px;font-size:14px;margin-inline-end:6px}
.tagx{display:inline-block;background:var(--brand);color:#06222a;border-radius:6px;padding:2px 10px;font-size:12px;font-weight:bold}
.svcgridx{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.prjx{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.deco-projects{position:relative;overflow:hidden;background:#f7fafc;padding-top:165px}
.deco-projects:before{content:"";position:absolute;top:30px;right:70px;width:150px;height:125px;background:url('../assets/logos/deco-flourish.svg') no-repeat center;background-size:contain;pointer-events:none;z-index:1}
.deco-projects .container{position:relative;z-index:2}
.deco-services{position:relative;background:#f7fafc}
.deco-services:before{content:"";position:absolute;top:-80px;left:0;width:1193px;height:699px;background:url('../assets/logos/ss-bg.png') no-repeat top left;background-size:1193px 699px;pointer-events:none;z-index:0}
.deco-services .container{position:relative;z-index:1}
.deco-content{position:relative;overflow:hidden;background:linear-gradient(180deg,#ffffff 0%,#e4eef7 100%)}
.deco-content:before{content:"";position:absolute;top:50%;left:26px;transform:translateY(-50%);width:300px;height:280px;background:url('../assets/logos/bg-text.svg') no-repeat center;background-size:contain;pointer-events:none;z-index:0}
.deco-content .container{position:relative;z-index:1}
.btnp{display:inline-block;background:var(--brand);color:#06222a;border-radius:8px;padding:12px 26px;font-weight:bold;text-decoration:none}
.search-wrap{position:relative}
.suggest-box{position:absolute;top:calc(100% + 6px);inset-inline-start:0;min-width:300px;max-width:360px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.20);z-index:1000;overflow:hidden;display:none;text-align:start}
.sg-item{display:flex;align-items:center;gap:8px;padding:9px 13px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.sg-item:hover{background:var(--bg-soft)}
.sg-t{flex:1;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-s{font-size:11px;color:var(--muted);background:var(--bg-soft);border-radius:8px;padding:1px 8px;flex:none}
.sg-all{display:block;padding:10px 13px;font-size:12.5px;color:var(--brand-2);text-decoration:none;font-weight:bold}
.sg-all:hover{background:var(--bg-soft)}
.sg-empty{padding:11px 13px;color:var(--muted);font-size:12.5px}
/* interactive services/editorial widgets */
.wctrls{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:18px}
.wsel{padding:7px 12px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:13px;background:#fff;color:var(--ink)}
.wchips{display:flex;flex-wrap:wrap;gap:5px}
.wchip{background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px 12px;font-size:12px;cursor:pointer;font-family:inherit;color:var(--muted)}
.wchip:hover{border-color:var(--brand)}
.wchip.on{background:var(--brand);border-color:var(--brand);color:#06222a;font-weight:bold}
.wsearch{margin-inline-start:auto;padding:8px 14px;border:1px solid var(--line);border-radius:9px;font-family:inherit;font-size:13.5px;min-width:210px;color:var(--ink)}
.empty{color:var(--muted);font-size:14px;font-style:italic;padding:16px 0}

/* ---- v3 booking calendar (service.booking) ---- */
.bkwrap{margin-top:6px}
.bklegend{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0;font-size:12.5px;color:#6b7a88}
.bk-l{display:inline-flex;align-items:center;gap:6px}
.bk-l:before{content:"";width:13px;height:13px;border-radius:4px;display:inline-block;border:1px solid #e3e9ef}
.bk-l.av:before{background:#fff}
.bk-l.bk:before{background:#fde3e3;border-color:#f3b9b9}
.bk-l.pd:before{background:#fff3df;border-color:#ecd09f}
.bk-l.se:before{background:#37BAC6;border-color:#37BAC6}
.bk-l.pa:before{background:#eef1f4}
.bkhint{font-size:13.5px;margin:4px 0 12px}
.bkclear{background:#eef2f6;border:0;border-radius:7px;padding:3px 10px;font-family:inherit;font-size:12px;cursor:pointer;color:#1f2d3d}
.bkclear:hover{background:#e2e8ee}
.bkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:14px}
.bkmon{background:#fff;border:1px solid #e3e9ef;border-radius:12px;padding:10px 12px}
.bkmon h4{margin:0 0 8px;font-size:14px;color:#304F78;text-align:center}
.bkdow,.bkdays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.bkdow span{font-size:10px;color:#9aa7b2;text-align:center}
.bkd{font-size:11.5px;text-align:center;padding:4px 0;border-radius:6px;border:1px solid transparent;user-select:none}
.bkd.av{background:#fff;border-color:#e3e9ef;cursor:pointer}
.bkd.av:hover{border-color:#37BAC6;background:#e8f6f8}
.bkd.bk{background:#fde3e3;color:#9c3a3a;cursor:not-allowed}
.bkd.pd{background:#fff3df;color:#9a6b1d;cursor:not-allowed}
.bkd.pa{background:#eef1f4;color:#aab4bd}
.bkd.se{background:#37BAC6;color:#06222a;font-weight:800;border-color:#37BAC6}
.bkd.off{visibility:hidden}
.bknote{font-size:12.5px;color:#6b7a88;margin-top:12px}

/* ---- v3 booking module: stepper + form + confirmation ---- */
.bkflow{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 16px}
.bkstep{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:#6b7a88;background:#fff;border:1px solid #e3e9ef;border-radius:20px;padding:5px 13px}
.bkstep .n{width:18px;height:18px;border-radius:50%;background:#eef2f6;color:#6b7a88;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.bkstep.cur{border-color:#37BAC6;background:#e8f6f8;color:#0d4f57;font-weight:700}
.bkstep.cur .n{background:#37BAC6;color:#06222a}
.bkstep.done{color:#0b8457;border-color:#bfe4cd}
.bkstep.done .n{background:#0b8457;color:#fff}
.bkstep.later{opacity:.7;border-style:dashed}
.bkselbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#e8f6f8;border:1px solid #bfe4e8;border-radius:11px;padding:10px 14px;margin:10px 0;font-size:13.5px}
.bkselbar b{color:#0d4f57}
.bkform{max-width:560px}
.bkform input,.bkform textarea{width:100%;padding:10px 13px;margin-bottom:9px;border:1px solid #e3e9ef;border-radius:9px;font-family:inherit;font-size:13.5px;box-sizing:border-box;background:#fff}
.bkform textarea{min-height:72px;resize:vertical}
.bkform .row{display:flex;gap:8px}.bkform .row input{min-width:0}
.bkgov{background:#f6f9fb;border:1px dashed #cdd7e1;border-radius:11px;padding:10px 14px;font-size:12.5px;color:#5b6b78;margin-top:16px}
.bkdone{text-align:center;padding:28px 12px;background:#fff;border:1px solid #e3e9ef;border-radius:14px}
.bkdone .big{width:54px;height:54px;border-radius:50%;background:#e7f6ee;color:#0b8457;font-size:26px;line-height:54px;margin:0 auto 10px}
.bkdone h2{color:#304F78;margin:0 0 8px}
.bkdone p{color:#5b6b78;font-size:13.5px}
.bkbadge{background:#fff3df;color:#9a6b1d;border-radius:10px;padding:2px 10px;font-size:12px;font-weight:700}

.bkstep.caseh{border-color:#d8b4fe;background:#faf5ff}
