/* ชายคาอุ่น แคร์โฮม · public site, family portal and private-link pages
   Look "ตะเกียงใต้ชายคา": linen + rosewood + slate + lamp gold. Base 20px (A− 18 / A 20 / A+ 24, 28 in high-contrast). Every text pair is checked with contrast.mjs. */
:root{
  --linen:#FBF5F1;--paper:#FFFFFF;--blush:#F4E7E4;--sky:#E8EFF3;--ink:#2A2227;--muted:#5E5560;
  --rose:#8C2F4B;--rose-deep:#6E2339;--rose-soft:#F0D9DE;--slate:#34465A;--slate-deep:#26364A;--lamp:#E2A92B;--lamp-ink:#7A5200;--lamp-pale:#FFE9A8;
  --ok:#1E6B45;--warn:#7A5200;--fail:#B3261E;--info:#2B5C8A;
  --line:#E3D3CF;--field-line:#7B6D75;--drift:#FBF5F1;--r:20px;--r-sm:12px;
  --shadow:0 2px 0 rgba(42,34,39,.04),0 12px 28px -14px rgba(110,35,57,.22);
  --serif:"Trirong","Noto Serif Thai",Georgia,serif;--sans:"Noto Sans Thai Looped","Noto Sans Thai",system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif;
  --icon-accent:#8C2F4B;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:20px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html[data-fs="0"]{font-size:18px}html[data-fs="2"]{font-size:24px}html[data-fs="3"]{font-size:28px}
body{margin:0;background:var(--linen);color:var(--ink);font:400 1rem/1.75 var(--sans);overflow-wrap:anywhere;padding-bottom:0}
img,svg{max-width:100%}img{height:auto;display:block}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.35;margin:0 0 .5em;color:var(--ink)}
h1{font-size:clamp(1.65rem,5vw,2.4rem)}h2{font-size:clamp(1.35rem,3.6vw,1.8rem);margin-top:1.6em}h3,.h3{font-size:1.2rem;font-family:var(--serif);font-weight:600}.h2{font-size:1.5rem}
h2:first-child,.sec-h h2{margin-top:0}
p{margin:0 0 1em;max-width:68ch}.center{text-align:center}.center p,.center .lead{margin-inline:auto}
a{color:var(--rose);text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:.08em}
a:hover{color:var(--rose-deep);text-decoration-thickness:.14em}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,canvas:focus-visible{outline:3px solid var(--rose);outline-offset:2px;box-shadow:0 0 0 5px #fff}
.ic{width:1.2em;height:1.2em;flex:none;vertical-align:-.2em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-80px;z-index:999;background:var(--rose);color:#fff;padding:12px 18px;border-radius:12px;text-decoration:none}.skip:focus{top:12px;color:#fff}
.wrap{width:min(1120px,100%);margin-inline:auto;padding-inline:16px}.wrap.narrow{width:min(780px,100%)}
.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.fine{font-size:.85rem;color:var(--muted);max-width:72ch}
.tag{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;padding:.05rem .6rem;border-radius:999px;background:var(--rose-soft);color:var(--rose-deep)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.inline{display:inline}.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;display:inline-flex;gap:.4rem;align-items:center;min-height:48px}
.linklike:hover{color:var(--rose-deep)}.foot .linklike:hover{color:var(--lamp-pale)}

/* demo bar */
.demo-bar{display:flex;gap:10px;align-items:center;justify-content:center;background:var(--ink);color:#fff;font-size:.8rem;line-height:1.5;padding:6px 16px;text-align:center}.demo-bar .ic{--icon-accent:#fff}

/* ── header: the eaves ─────────────────────────────────── */
.head{background:var(--drift);position:relative;transition:background-color 1.2s ease}
.eaves{position:relative;height:44px;overflow:hidden}
.eaves-roof{position:absolute;inset:0;width:100%;height:100%}
.eaves-roof .r1{fill:none;stroke:var(--rose);stroke-width:3.2;stroke-linecap:round;vector-effect:non-scaling-stroke}
.eaves-roof .r2{fill:none;stroke:var(--rose);stroke-width:1.5;opacity:.45;vector-effect:non-scaling-stroke}
.eaves-lamp{position:absolute;left:50%;top:0;width:36px;height:44px;margin-left:-18px}
.eaves-lamp .rope{stroke:var(--rose);stroke-width:2;fill:none}.eaves-lamp .shade{fill:var(--lamp);stroke:var(--rose);stroke-width:1.6}.eaves-lamp .bulb{fill:#FFF3C9}
.eaves-lamp .glow{fill:var(--lamp);opacity:.3;animation:breathe 7s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.18}50%{opacity:.5}}
.bar{background:var(--slate);color:#fff;border-top:4px solid var(--slate-deep);--icon-accent:#F0D9DE;position:relative}
.bar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:10px}
.bar a:focus-visible,.bar button:focus-visible,.foot a:focus-visible,.foot button:focus-visible,.dock a:focus-visible{outline-color:#fff;box-shadow:0 0 0 5px var(--slate-deep)}
.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;min-height:48px}.brand:hover{color:#fff}
.brand-mark{width:48px;height:48px;flex:none;color:#fff}
.wm b{display:block;font:600 1.15rem/1.2 var(--serif)}.wm small{display:block;font-size:.8rem;color:#DCE4EC;line-height:1.3}
.tools{display:flex;gap:8px;align-items:center}
.tools button,.foot-base [data-hc]{min-width:48px;min-height:48px;padding:0 12px;border-radius:14px;border:2px solid rgba(255,255,255,.7);background:transparent;color:#fff;font:600 1rem var(--sans);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}
.tools button:hover{background:#fff;color:var(--slate)}.tools button[aria-pressed="true"]{background:#fff;color:var(--slate)}
.nav{background:var(--slate-deep);color:#fff;--icon-accent:#F0D9DE}
.nav ul{display:flex;gap:4px;list-style:none;margin:0 auto;padding-block:0}
.nav a{display:flex;align-items:center;gap:.5rem;min-height:52px;padding:.4rem .95rem;color:#fff;text-decoration:none;font-weight:500;font-size:.92rem;border-bottom:4px solid transparent;white-space:nowrap}
.nav a:hover{background:#3F5670;color:#fff}.nav a[aria-current="page"]{border-bottom-color:var(--lamp);font-weight:600}
.strip{background:var(--drift);border-top:1px solid rgba(42,34,39,.12);border-bottom:1px solid rgba(42,34,39,.12);transition:background-color 1.2s ease}
.strip-in{display:grid;grid-template-columns:1fr auto;gap:8px 20px;align-items:center;padding-block:12px}
.strip-msg{display:flex;gap:10px;align-items:flex-start;margin:0;font-weight:500;max-width:none}.strip-msg .ic{color:var(--lamp-ink);margin-top:.3rem}
.strip-side{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.strip-caution{grid-column:1/-1;display:flex;gap:8px;align-items:center;margin:0;color:var(--fail);font-weight:600;max-width:none}.strip-caution[hidden]{display:none}
.strip-note{grid-column:1/-1;margin:0;font-size:.8rem;color:var(--muted);max-width:none}
.strip[data-kind="red"]{border-bottom:3px solid var(--fail)}

/* status pills, notices, chips */
.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.12rem .8rem;border-radius:999px;font-weight:600;font-size:.85rem;border:1.5px solid currentColor;background:#fff;line-height:1.5}
.pill-ok{color:var(--ok)}.pill-warn{color:var(--warn)}.pill-fail{color:var(--fail)}.pill-info{color:var(--info)}.pill-grey{color:var(--muted)}
.notice{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;border:2px solid var(--line);background:#fff;margin:0 0 16px;max-width:none}.notice>div,.notice>span{flex:1}
.notice.ok{border-color:var(--ok)}.notice.ok .ic{color:var(--ok)}.notice.err{border-color:var(--fail)}.notice.err .ic{color:var(--fail)}.notice.warn{border-color:var(--warn)}.notice.warn .ic{color:var(--warn)}.notice.info{border-color:var(--info)}.notice.info .ic{color:var(--info)}
.err-t{display:flex;gap:6px;align-items:center;color:var(--fail);font-weight:600;font-size:.9rem;margin-top:4px}.flash-wrap{padding-top:16px}
.chip{display:inline-flex;align-items:center;gap:.5rem;background:var(--paper);border:1.5px solid var(--rose-soft);border-radius:999px;padding:.3rem 1rem;font-size:.85rem;margin:0 0 1rem;max-width:100%}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 12px}.chips li{display:inline-flex;gap:6px;align-items:center;padding:4px 14px;border-radius:999px;background:var(--rose-soft);color:var(--rose-deep);font-size:.9rem;font-weight:500}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:52px;padding:.5rem 1.4rem;border-radius:999px;border:2px solid transparent;font:600 1rem/1.35 var(--sans);text-decoration:none;cursor:pointer;text-align:center;transition:background-color .15s,color .15s,border-color .15s}
.btn-primary{background:var(--rose);color:#fff;--icon-accent:#fff}.btn-primary:hover{background:var(--rose-deep);color:#fff}
.btn-ghost{background:transparent;color:var(--rose);border-color:var(--rose)}.btn-ghost:hover{background:var(--rose-soft);color:var(--rose-deep);border-color:var(--rose-deep)}
.btn-call{background:var(--ok);color:#fff;--icon-accent:#fff}.btn-call:hover{background:#17553A;color:#fff}
.hero-btns,.more{display:flex;flex-wrap:wrap;gap:12px;margin:1.2em 0 0;max-width:none}.more{margin-top:1.5rem}

/* sections */
.sec{padding:clamp(32px,6vw,68px) 0}.sec-blush{background:var(--blush)}.sec-sky{background:var(--sky)}.page-h{padding:clamp(28px,5vw,52px) 0 8px}
.band{padding:22px 0}.band-sky{background:var(--sky)}
.sec-h{margin-bottom:1.4rem}.sec-h h1,.sec-h h2{margin-bottom:.35em}.kick{display:flex;align-items:center;gap:.5rem;color:var(--rose);font-weight:600;font-size:.9rem;margin:0 0 .3rem;letter-spacing:.01em}
.lead{font-size:1.1rem;color:var(--ink);max-width:62ch}
.trim{height:16px;background:radial-gradient(circle at 12px 0,var(--blush) 11px,transparent 12.5px) repeat-x;background-size:24px 16px}.trim-sky{background-image:radial-gradient(circle at 12px 0,var(--sky) 11px,transparent 12.5px)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:24px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 36px;align-items:start}
.card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow);margin:0 0 20px}.grid2>.card,.grid3>.card,.two>.card{margin:0}
.card h2,.card h3{margin-top:0}.card>:last-child{margin-bottom:0}
.card.pic{padding:0;overflow:hidden}.card.pic img{width:100%;aspect-ratio:4/3;object-fit:cover}.cb{padding:16px 20px 20px}.cb>:last-child{margin-bottom:0}.card.pic figcaption{font-weight:500}
figure{margin:0}
.card-ok{border-top:6px solid var(--ok)}.card-no{border-top:6px solid var(--warn)}.card-em{border-left:8px solid var(--fail)}.card-ex{background:var(--blush)}
.card h3 .ic{color:var(--rose);margin-right:.35rem}

/* hero */
.hero{padding:clamp(24px,5vw,56px) 0 clamp(36px,6vw,64px)}.hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,5vw,56px);align-items:center}
.hero h1{font-size:clamp(1.9rem,5.4vw,2.9rem);line-height:1.25}.hero-note{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:.9rem;margin:1.2rem 0 0;max-width:none}.hero-note .ic{margin-top:.25rem;color:var(--info)}
.arch{margin:0;border-radius:260px 260px 28px 28px;overflow:hidden;box-shadow:0 0 0 6px var(--linen),0 0 0 9px var(--lamp),var(--shadow);background:var(--blush)}.arch img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:30% 50%}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;list-style:none;margin:0 0 14px;padding:0}.facts-4{grid-template-columns:repeat(4,minmax(0,1fr))}.facts-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.fact{display:flex;flex-direction:column;gap:2px;height:100%;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:14px 16px}.fact .ic{color:var(--rose);width:1.5em;height:1.5em}.fact b{font:600 1.25rem/1.3 var(--serif)}.fact span{color:var(--muted);font-size:.85rem;line-height:1.5}
.fact-row{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;max-width:none}

/* lists, tables, key-value */
.lamps{list-style:none;padding:0;margin:0 0 1em}.lamps li{position:relative;padding:.1rem 0 .1rem 1.9rem;margin-bottom:.55rem;max-width:68ch}
.lamps li::before{content:"";position:absolute;left:.1rem;top:.55rem;width:1rem;height:1rem;background:var(--lamp);border:2px solid var(--rose);border-radius:50% 50% 8px 8px/60% 60% 8px 8px}
.kv{list-style:none;margin:0 0 1em;padding:0}.kv li{display:flex;justify-content:space-between;gap:20px;padding:.5rem 0;border-bottom:1px dashed var(--line)}.kv li:last-child{border-bottom:0}.kv span{color:var(--muted)}.kv b{text-align:right;font-weight:600}
.tbl-wrap{overflow-x:auto;margin:0 0 1em}.tbl{width:100%;border-collapse:collapse;background:#fff;border:1.5px solid var(--line);border-radius:14px;overflow:hidden;font-size:.95rem}
.tbl th,.tbl td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.tbl tbody tr:last-child>*{border-bottom:0}.tbl thead th{background:var(--blush);font-weight:600}.tbl .r{text-align:right}.tbl small{display:block;color:var(--muted)}
.tbl th[scope="row"]{font-weight:600}
.steps{list-style:none;counter-reset:s;padding:0;margin:0 0 1em}.steps>li{counter-increment:s;display:grid;grid-template-columns:48px 1fr;gap:2px 16px;margin-bottom:20px;max-width:68ch}.steps>li::before{content:counter(s);grid-row:span 2;width:44px;height:44px;border-radius:50%;background:var(--rose);color:#fff;display:grid;place-items:center;font-weight:600}.steps>li>b,.steps>li>span{grid-column:2}
.n{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--rose);color:#fff;font-weight:600;font-size:.9rem;margin-right:.6rem;flex:none}
.timeline{list-style:none;padding:0 0 0 18px;margin:0 0 1em;border-left:3px dotted var(--rose)}.timeline li{position:relative;display:grid;grid-template-columns:96px 1fr;gap:12px;padding:0 0 20px 14px}
.timeline li::before{content:"";position:absolute;left:-27px;top:.5rem;width:14px;height:14px;border-radius:50%;background:var(--lamp);border:3px solid var(--rose)}.timeline time{font-weight:600;color:var(--rose)}.timeline b{display:flex;gap:.4rem;align-items:center}.timeline span{display:block;color:var(--muted)}
.agenda{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.agenda li{margin:0;padding:14px 18px}.agenda time{display:block;color:var(--rose);font-weight:600;font-size:.9rem}.agenda b{display:block}.agenda span{color:var(--muted);font-size:.9rem}
.people{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.person{display:flex;gap:14px;align-items:center;margin:0;padding:14px 18px}.person div b{display:block}.person div span{color:var(--muted);font-size:.9rem}
.av{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--rose-soft);color:var(--rose-deep);font:600 1.3rem var(--serif);flex:none}
.inout{display:grid;gap:16px}.inout .card{margin:0}
.toc{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:1rem 0 0}.toc a{display:inline-flex;align-items:center;min-height:48px;padding:.25rem 1rem;border-radius:999px;background:#fff;border:1.5px solid var(--rose-soft)}
.prose h2{margin-top:2em}.prose h3{margin-top:1.6em}.prose-big{font-size:1rem}
.price{margin:.4rem 0 .6rem}.price b{font:600 1.4rem var(--serif)}.price small{display:block;color:var(--muted);font-size:.85rem;line-height:1.5}
.price-range{font-size:1.1rem}

/* accordion */
.acc{background:#fff;border:1.5px solid var(--line);border-radius:14px;margin:0 0 10px}.acc summary{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:56px;padding:10px 18px;font-weight:600;cursor:pointer;list-style:none}
.acc summary::-webkit-details-marker{display:none}.acc summary .ic{transition:transform .2s;color:var(--rose)}.acc[open] summary .ic{transform:rotate(180deg)}.acc-b{padding:0 18px 12px}.acc-b p{margin-bottom:.5rem}

/* forms */
.form{max-width:none}.field{display:block;margin:0 0 18px}.lbl{display:block;font-weight:600;margin-bottom:6px}fieldset{border:0;margin:0;padding:0;min-width:0}legend{padding:0}
input[type=text],input[type=tel],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=file],select,textarea,.field input:not([type]){width:100%;min-height:52px;padding:10px 14px;font:inherit;color:var(--ink);background:#fff;border:2px solid var(--field-line);border-radius:var(--r-sm)}
textarea{min-height:130px;resize:vertical}input[type=file]{padding:10px}
input:focus,select:focus,textarea:focus{border-color:var(--rose)}.hint{display:block;color:var(--muted);font-size:.85rem;margin-top:4px}
.check{display:flex;gap:12px;align-items:flex-start;padding:8px 0;min-height:48px;cursor:pointer;max-width:68ch}.check input,.radio input{width:28px;height:28px;margin:2px 0 0;flex:none;accent-color:var(--rose)}.check small{display:block;color:var(--muted);font-weight:400}
.checks legend,.q legend{font-weight:600;margin-bottom:6px}.radio{display:flex;gap:12px;align-items:center;min-height:56px;padding:10px 16px;margin:0 0 10px;border:2px solid var(--line);border-radius:14px;background:#fff;cursor:pointer}.radio:has(input:checked){border-color:var(--rose);background:var(--rose-soft)}
.q{margin:0 0 24px}.q legend{display:flex;align-items:center;font-family:var(--serif);font-size:1.15rem}
.stepper{display:none;list-style:none;padding:0;margin:0 0 20px;gap:10px;flex-wrap:wrap}.stepper li{display:flex;align-items:center;gap:.4rem;padding:.2rem .9rem .2rem .3rem;border-radius:999px;border:2px solid var(--line);background:#fff;font-weight:500;font-size:.9rem}.stepper li.on{border-color:var(--rose);background:var(--rose-soft)}.stepper .n{margin-right:0;width:1.8rem;height:1.8rem}
.js .stepper{display:flex}.js .tstep{display:none}.js .tstep.on{display:block}.tstep legend{display:flex;align-items:center;font:600 1.3rem var(--serif);margin-bottom:12px}.step-nav{display:flex;gap:12px;flex-wrap:wrap;max-width:none}.js .tstep>.step-nav{margin-top:8px}
.check.big{font-weight:600}.sig-wrap{border:2px dashed var(--field-line);border-radius:14px;background:#fff;margin:4px 0 10px;touch-action:none;max-width:560px}.sig-wrap canvas{display:block;width:100%;height:auto;aspect-ratio:3/1;touch-action:none;cursor:crosshair}
.up-l{list-style:none;padding:0;margin:0}.demo-box{margin-top:24px}.demo-l{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.demo-l .btn{width:100%;flex-direction:column;align-items:flex-start;text-align:left;border-radius:16px;gap:0;padding:.7rem 1rem}.demo-l .btn span{font-weight:400;font-size:.85rem;color:var(--muted)}
.result{border-top:8px solid var(--rose)}.result h2{margin-top:.2em}

/* checklist */
.chk{list-style:none;margin:0 0 1.5rem;padding:0}.chk-i{display:grid;grid-template-columns:48px 1fr;gap:12px;border-left:8px solid var(--line)}.chk-green{border-left-color:var(--ok)}.chk-yellow{border-left-color:var(--warn)}.chk-red{border-left-color:var(--fail)}.chk-grey{border-left-color:var(--muted)}
.chk .why{color:var(--muted);margin-bottom:.6rem}.chk-e{background:var(--linen);border-radius:12px;padding:10px 14px}.chk-e p{margin:.4rem 0 0}

/* family portal */
.fam-head{background:var(--sky);padding:18px 0 0;border-bottom:1px solid var(--line)}.crumb{margin:0 0 6px;font-size:.9rem;color:var(--muted)}.res-h{display:flex;gap:14px;align-items:center}.res-h h1,.res-h h2{margin:0}.res-h p{margin:0}
.res{margin-bottom:20px}.res .lbl{margin-bottom:6px}.actions{display:flex;flex-wrap:wrap;gap:12px}
.tabs ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:14px 0}.tabs a{display:flex;align-items:center;gap:.45rem;min-height:52px;padding:.35rem 1rem;border-radius:999px;background:#fff;border:2px solid var(--rose-soft);color:var(--ink);text-decoration:none;font-weight:500;font-size:.92rem}
.tabs a:hover{background:var(--rose-soft);color:var(--rose-deep)}.tabs a[aria-current="page"]{background:var(--rose);border-color:var(--rose);color:#fff;--icon-accent:#fff}
.fam-body h2{display:flex;align-items:center;gap:.5rem}.fam-body h2 .ic{color:var(--rose)}.fam-foot{margin-top:2rem}
.entries{list-style:none;margin:0 0 1.5rem 8px;padding:0 0 0 22px;border-left:3px dotted var(--rose)}.entry{position:relative;margin:0 0 22px}.entry::before{content:"";position:absolute;left:-33px;top:1.1rem;width:16px;height:16px;border-radius:50%;background:var(--lamp);border:3px solid var(--rose)}
.entry article{background:#FFFDF8;border:1.5px solid var(--line);border-radius:16px;padding:16px 20px;box-shadow:var(--shadow)}.entry header{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-bottom:6px}.entry h3{margin:0}
.note-l{list-style:none;padding:0;margin:0 0 .5rem}.note-l li{padding:.15rem 0 .15rem 1.4rem;position:relative}.note-l li::before{content:"";position:absolute;left:0;top:.95rem;width:.6rem;height:.6rem;border-radius:50%;background:var(--lamp);border:2px solid var(--rose)}
.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:10px}.shots img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:2px solid var(--line)}
.note-page{position:relative;background:#FFFDF8;border:1.5px solid var(--line);border-radius:16px;padding:26px 22px 18px;box-shadow:var(--shadow)}.note-page::before{content:"";position:absolute;top:-10px;left:50%;width:84px;height:20px;margin-left:-42px;background:var(--lamp);opacity:.75;border-radius:3px}
.note-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 4px}.note-d{color:var(--muted);margin:0 0 8px}.note-f{display:flex;gap:8px;align-items:center;color:var(--ok);font-weight:600;font-size:.9rem;margin:8px 0 0}.note-f .ic{color:var(--ok)}
.spark{width:100%;max-width:340px;height:auto;margin:0 0 8px;display:block;background:var(--linen);border-radius:12px}
.bars{list-style:none;padding:0;margin:0}.bars li{display:grid;grid-template-columns:96px 1fr 52px;gap:10px;align-items:center;margin-bottom:8px}.bars .bar{display:block;height:14px;border-radius:7px;background:var(--blush);overflow:hidden}.bars .bar b{display:block;height:100%;background:var(--ok)}.bars em{font-style:normal;font-weight:600;text-align:right}
.slots{margin:0 0 14px}.slots legend{font-weight:600;margin-bottom:6px}.slot{display:flex;gap:10px;align-items:center;min-height:52px;padding:8px 14px;margin:0 0 8px;border:2px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.slot input{width:24px;height:24px;accent-color:var(--rose)}.slot.taken{background:var(--blush);color:var(--muted);cursor:not-allowed}.slot:has(input:checked){border-color:var(--rose);background:var(--rose-soft)}
.thread{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:10px}.msg{max-width:min(520px,92%);padding:12px 16px;border-radius:16px;border:1.5px solid var(--line);background:#fff}.msg p{margin:0 0 4px}.msg time{font-size:.8rem;color:var(--muted)}.msg-me{margin-left:auto;background:var(--rose-soft)}
.bill header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center;margin-bottom:6px}.bill h3{margin:0}.meds,.inc,.visit-l,.notices{list-style:none;padding:0;margin:0}.meds h3 small,.inc h3 small{display:block;font:400 .85rem var(--sans);color:var(--muted)}.notices li{padding:10px 0;border-bottom:1px dashed var(--line)}

/* footer */
.foot{background:var(--slate);color:#fff;--icon-accent:#F0D9DE;padding-bottom:calc(28px + env(safe-area-inset-bottom));margin-top:0}
.foot .trim{background:radial-gradient(circle at 12px 16px,transparent 11px,var(--slate) 12.5px) repeat-x;background-size:24px 16px;margin-top:-1px}
.foot a{color:#fff}.foot a:hover{color:var(--lamp-pale)}.foot h2{font:600 1rem var(--sans);color:var(--lamp-pale);margin:0 0 .5rem}.foot p,.foot li{color:#E6ECF2;max-width:none}
.foot-top{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:center;padding:24px 0 8px}.foot-top p{margin:0;max-width:44ch}
.foot-cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:24px;padding:16px 0}.foot ul{list-style:none;padding:0;margin:0}.foot ul li{margin-bottom:.1rem}.foot ul a{display:inline-flex;align-items:center;min-height:48px}.ck-foot{min-height:48px;padding:0 8px!important}
.foot-c li{display:flex;gap:10px;align-items:flex-start}.foot-c .ic{margin-top:.35rem}.foot-lic{font-size:.85rem;border-top:1px solid rgba(255,255,255,.25);padding-top:14px;margin-top:8px}
.foot-base{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;font-size:.85rem;color:#E6ECF2}.foot-base .linklike{color:#fff}.foot-soc{display:flex;gap:12px;flex-wrap:wrap}
.foot-base [data-hc]{border:0;min-height:48px}

/* mobile dock */
.dock{display:none}
@media (max-width:860px){
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .dock{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--slate);border-top:3px solid var(--lamp);padding-bottom:env(safe-area-inset-bottom);--icon-accent:#F0D9DE}
  .dock a{min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;color:#fff;text-decoration:none;font-weight:600;font-size:.8rem;line-height:1.3}
  .dock a .ic{width:1.5em;height:1.5em}.dock a:hover{background:var(--slate-deep);color:#fff}.dock a[aria-current="page"]{background:var(--slate-deep);color:var(--lamp-pale)}
  .dock a+a{border-left:1px solid rgba(255,255,255,.2)}
}
@media (max-width:960px){
  .hero-in,.two,.login-grid{grid-template-columns:1fr}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.facts-4,.facts-5{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-cols{grid-template-columns:repeat(2,1fr)}
  .arch{max-width:520px;margin-inline:auto}.arch img{aspect-ratio:4/4}
}
@media (max-width:720px){
  .grid2,.grid3,.agenda,.demo-l{grid-template-columns:1fr}.strip-in{grid-template-columns:1fr}.eaves{height:34px}.eaves-lamp{height:34px;width:28px;margin-left:-14px}
  .strip-msg{font-size:.9rem;line-height:1.6}.nav ul{overflow-x:auto;padding-inline:8px;scrollbar-width:thin}.nav a{padding:.3rem .85rem;font-size:.9rem}.nav a .ic{display:none}
  .t-hc{display:none!important}.brand{gap:8px}.brand-mark{width:40px;height:40px}.wm b{font-size:1rem}.wm small{display:none}.tools{gap:6px}.tools button{min-width:48px;padding:0 8px}
  .kv li{flex-direction:column;gap:0}.kv b{text-align:left}
  .tbl-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tbl-stack,.tbl-stack tbody,.tbl-stack tr,.tbl-stack th,.tbl-stack td{display:block;width:100%}.tbl-stack tr{border-bottom:2px solid var(--line);padding:8px 0}.tbl-stack tbody tr:last-child{border-bottom:0}
  .tbl-stack th,.tbl-stack td{border:0;padding:4px 14px;text-align:left!important}.tbl-stack td[data-label]::before{content:attr(data-label) ": ";font-weight:600;color:var(--muted)}
  .timeline li{grid-template-columns:1fr;gap:0}.bars li{grid-template-columns:84px 1fr 48px}.foot-cols{grid-template-columns:1fr}.facts{grid-template-columns:1fr}.facts-4,.facts-5{grid-template-columns:1fr}
  .tabs a{font-size:.85rem;padding:.3rem .8rem}.steps>li{grid-template-columns:44px 1fr}
}
@media (min-width:721px){.t-hc span{display:inline}}
@media (max-width:480px){.t-hc span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}

/* agency panel (demo only) */
.dk-pill{position:fixed;left:16px;bottom:16px;z-index:55;display:flex;align-items:center;gap:10px;border-radius:999px;padding:12px 18px;background:var(--slate);color:#fff;font:600 .8rem/1.3 var(--sans);cursor:pointer;border:2px solid var(--lamp);box-shadow:var(--shadow)}.dk-pill:hover{background:var(--slate-deep)}
.dk-dot{width:10px;height:10px;border-radius:50%;background:var(--lamp-pale)}.dk-s{display:none}
.dk{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(42,34,39,.6)}.dk[hidden]{display:none}
.dk-card{position:relative;width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#fff;color:var(--ink);border-radius:22px;padding:24px}
.dk-x{position:absolute;top:12px;right:12px;width:48px;height:48px;border-radius:50%;border:2px solid var(--line);background:#fff;cursor:pointer;display:grid;place-items:center;color:var(--slate)}
.dk-by{font-size:.8rem;color:var(--rose);font-weight:600;margin:0 0 6px}.dk-card h2{font-size:1.05rem;line-height:1.5;margin:0 56px 16px 0;font-family:var(--serif)}
.dk-feat{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:12px}.dk-feat li{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start}.dk-feat b{display:block;font-weight:600;font-size:.85rem;line-height:1.4}.dk-feat small{display:block;color:var(--muted);font-size:.8rem;line-height:1.5}
.dk-ic{width:22px;height:22px;flex:none}.dk-feat .dk-ic{width:44px;height:44px;padding:10px;border-radius:12px;background:var(--blush);color:var(--slate)}
.dk-try{background:var(--linen);border-radius:14px;padding:12px 14px;font-size:.85rem;margin-bottom:14px}.dk-try ol{margin:6px 0 0;padding-left:20px;color:var(--muted)}
.dk-price{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--line);padding-top:14px;margin-bottom:8px;font-size:.85rem;color:var(--muted)}.dk-price b{font:600 1.3rem var(--serif);color:var(--slate);white-space:nowrap}.dk-note{font-size:.8rem;color:var(--muted);margin:0 0 12px}
.dk-btns{display:grid;gap:8px}.dk-btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;border-radius:999px;border:2px solid var(--slate);color:var(--slate);text-decoration:none;font-weight:600}.dk-btn:hover{background:var(--slate);color:#fff}
.dk-btn.line{background:#0B6B33;border-color:#0B6B33;color:#fff}.dk-btn.line:hover{background:#095528;color:#fff}.dk-btn.order{background:var(--rose);border-color:var(--rose);color:#fff}.dk-btn.order:hover{background:var(--rose-deep);color:#fff}
.dk-more{text-align:center;font-size:.8rem;color:var(--muted);margin:12px auto 0}.dk-more a{color:var(--muted)}
@media (max-width:860px){.dk-pill{left:12px;bottom:calc(76px + env(safe-area-inset-bottom))}.dk-l{display:none}.dk-s{display:inline}.dk{align-items:flex-end}.dk-card{border-radius:22px 22px 0 0}}

/* high-contrast mode: black on white, 2px borders, no tints */
[data-theme="hc"]{--linen:#fff;--blush:#fff;--sky:#fff;--ink:#000;--muted:#000;--rose:#5A0F2B;--rose-deep:#3A0A1B;--rose-soft:#fff;--slate:#000;--slate-deep:#000;--lamp-ink:#000;--line:#000;--field-line:#000;--ok:#0B4D2C;--warn:#5A3A00;--fail:#8A0000;--info:#0A3D70;--shadow:none;--icon-accent:#000}
[data-theme="hc"] body{--drift:#fff!important}
[data-theme="hc"] .card,[data-theme="hc"] .fact,[data-theme="hc"] .acc,[data-theme="hc"] .tbl,[data-theme="hc"] .notice,[data-theme="hc"] .chk-e,[data-theme="hc"] .msg,[data-theme="hc"] .entry article,[data-theme="hc"] .note-page{border:2px solid #000}
[data-theme="hc"] .tbl th,[data-theme="hc"] .tbl td{border-bottom:2px solid #000}[data-theme="hc"] .tbl thead th{background:#fff;border-bottom:3px solid #000}
[data-theme="hc"] .btn-primary,[data-theme="hc"] .btn-call{background:#000;color:#fff;border-color:#000}[data-theme="hc"] .btn-ghost{border-color:#000;color:#000;background:#fff}[data-theme="hc"] .btn-ghost:hover{background:#000;color:#fff}
[data-theme="hc"] .btn-primary:hover,[data-theme="hc"] .btn-call:hover{background:#222;color:#fff}
[data-theme="hc"] .chips li,[data-theme="hc"] .tag,[data-theme="hc"] .toc a,[data-theme="hc"] .tabs a{border:2px solid #000;background:#fff;color:#000}[data-theme="hc"] .tabs a[aria-current="page"]{background:#000;color:#fff}
[data-theme="hc"] .head,[data-theme="hc"] .strip{border-bottom:3px solid #000}[data-theme="hc"] .eaves-roof .r1,[data-theme="hc"] .eaves-roof .r2{stroke:#000}
[data-theme="hc"] .nav a:hover,[data-theme="hc"] .dock a:hover{background:#333}[data-theme="hc"] .foot a:hover,[data-theme="hc"] .foot .linklike:hover{color:#FFE9A8}
[data-theme="hc"] .lamps li::before,[data-theme="hc"] .entry::before,[data-theme="hc"] .timeline li::before{background:#fff;border-color:#000}
[data-theme="hc"] a{color:#00008B}[data-theme="hc"] .bar a,[data-theme="hc"] .nav a,[data-theme="hc"] .foot a,[data-theme="hc"] .dock a,[data-theme="hc"] .tabs a,[data-theme="hc"] .toc a{color:inherit}[data-theme="hc"] .skip{background:#000;color:#fff}[data-theme="hc"] .dk-btn{color:#000}[data-theme="hc"] .dk-btn.order,[data-theme="hc"] .dk-btn.line{background:#000;color:#fff}
[data-theme="hc"] .btn-ghost,[data-theme="hc"] .toc a,[data-theme="hc"] .tabs a{color:#000}[data-theme="hc"] .tabs a[aria-current="page"]{color:#fff}[data-theme="hc"] .foot a,[data-theme="hc"] .bar a,[data-theme="hc"] .nav a,[data-theme="hc"] .dock a{color:#fff}
[data-theme="hc"] .pill{border-width:2px}.eaves-lamp .glow{opacity:.3}

/* motion */
html[data-fx="off"] *,html[data-fx="off"] *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){*,*::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.demo-bar,.eaves,.bar,.nav,.strip,.foot,.dock,.as,.dk-pill,.dk,.noprint,.skip,.tabs,.ck{display:none!important}body{background:#fff;font-size:12pt;padding:0}.card,.tbl{box-shadow:none}.sec{padding:12px 0}}
[data-theme="hc"] .demo-l .btn:hover span{color:#fff}
.foot a[href^="tel"]{white-space:nowrap}

/* LINE Login button: LINE green only as a border and in the icon, text keeps the palette colour */
.fl-wrap{margin:.25rem 0 1rem}.fl-btn{border-color:#06C755;gap:.55rem}.fl-btn:hover{border-color:#06C755}.fl-ic{width:1.35em;height:1.35em;flex:none}
.fl-btn[disabled]{cursor:not-allowed;color:var(--muted,#5E5560);border-color:#7A8A80;background:transparent}.fl-hint{display:block;margin-top:.35rem}
[data-theme="hc"] .fl-btn{border-color:#000}

/* cardfit:start */
/* Image boxes: fixed ratio whatever the upload; a missing file keeps the same box with a neutral placeholder */
:root{--ph:var(--blush) url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%232A2227'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='4'%20width='18'%20height='16'%20rx='2'/%3E%3Ccircle%20cx='9'%20cy='10'%20r='1.6'/%3E%3Cpath%20d='m21%2016-5-5-9%209'/%3E%3C/svg%3E") center/40px no-repeat}
.arch{background:var(--ph);overflow:hidden}
.card.pic img,.arch img,.shots img{position:relative;color:transparent;font-size:0}
.card.pic img::after,.arch img::after,.shots img::after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--ph)}
.card.pic img,.shots img{background:var(--ph);overflow:hidden}
/* cardfit:end */
