/* HCF APP visual system · hcf-booking-logo-20261014-r4 */
:root{--red:#c1121a;--red-hi:#a70b14;--ink:#17181b;--muted:#696c75;--line:#e1e2e7;--paper:#f6f6f7;--cyan:#087d86;--yellow:#f3c64c;--panel:#fff;--text:var(--ink);--gold:#966b12;color-scheme:light}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{min-height:100dvh;font:16px/1.7 "Noto Sans TC",-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 85% 5%,#ecf6f6,transparent 40%),radial-gradient(ellipse at 0 70%,#faeded,transparent 35%),repeating-linear-gradient(135deg,transparent 0 18px,#17181b02 18px 19px)}
button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:#c1121a18}button,a{touch-action:manipulation}a{color:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}
button:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}input:focus-visible,textarea:focus-visible{outline:3px solid #087d8630;outline-offset:2px}
.hd{position:sticky;top:0;z-index:20;background:#ffffffeb;backdrop-filter:blur(16px);border-top:4px solid var(--red);border-bottom:1px solid #e3e5e8}
.hd-in{max-width:1180px;margin:auto;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:18px;font-weight:900;line-height:1.4;letter-spacing:.04em}.brand img{object-fit:contain}.brand small{display:block;font-size:9px;letter-spacing:.2em;color:var(--muted);margin-top:4px}.back{font-size:13px;text-decoration:none;color:var(--muted);padding:10px 0;white-space:nowrap}.back span{color:var(--red);padding-left:6px}
main{max-width:1180px;width:100%;margin:auto;padding:54px 28px 50px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.18em;font-weight:800;color:var(--red)}.eyebrow i{width:22px;height:3px;background:var(--red);display:block}
.lede{display:grid;grid-template-columns:1.1fr 1fr;gap:30px 48px;align-items:center}.hero-copy{position:relative;z-index:2}.lede h1{font-size:clamp(40px,5.1vw,66px);font-weight:900;line-height:1.22;letter-spacing:-.05em;margin-top:22px}.lede em{color:var(--red);font-style:normal}.hero-sub{font-size:22px;line-height:1.5;margin-top:22px;font-weight:700;letter-spacing:.03em}.hero-description{color:var(--muted);font-size:14px;line-height:1.9;margin-top:14px}
.hero-price{color:var(--muted);font-size:12px;margin-top:14px}.hero-price b{color:var(--red);font-size:17px;margin-left:5px}.trust{display:flex;gap:6px;flex-wrap:wrap;margin-top:22px}.trust span{padding:5px 10px;border:1px solid #dde3e5;border-radius:30px;color:#48545b;font-size:11px;background:#fff9}.trust span::before{content:"✓";color:var(--cyan);font-weight:900;margin-right:5px}
.startbtn{width:100%;border:0;border-radius:16px;color:white;background:var(--red);padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;margin-top:28px;box-shadow:0 10px 26px #c1121a20;transition:background .18s,transform .18s}.startbtn>span{font-size:19px;font-weight:800}.startbtn small{display:block;font-size:11px;letter-spacing:.08em;opacity:.85;font-weight:400;margin-top:3px}.startbtn b{font:32px/1 sans-serif}.startbtn:hover{background:var(--red-hi);transform:translateY(-2px)}
.booking-note{font-size:11px;color:var(--muted);text-align:center;margin:12px 0}.booking-direct{font-size:13px;display:block;text-align:center;color:var(--ink);padding:9px;text-decoration:underline;text-underline-offset:5px}
.hero-brand{position:relative;min-height:480px;display:flex;flex-direction:column;align-items:center;justify-content:center;isolation:isolate}.hero-brand>img{position:relative;width:100%;height:auto;object-fit:contain;max-width:440px;filter:drop-shadow(0 20px 20px #17181b0a)}.brand-orbit{position:absolute;z-index:-1;width:100%;aspect-ratio:1;border:1px solid #087d8626;border-radius:50%;background:radial-gradient(circle,white 0 35%,#ffffff00 65%)}.brand-orbit::before{content:"";position:absolute;inset:18px;border:1px dashed #087d8626;border-radius:50%}.brand-orbit::after{content:"";position:absolute;width:8px;height:8px;background:var(--red);border:5px solid var(--paper);box-sizing:content-box;border-radius:50%;top:17%;left:7%}.brand-caption,.brand-bottom{font-family:monospace;font-size:10px;letter-spacing:.2em;color:var(--cyan)}.brand-caption{align-self:flex-end;margin-bottom:15px}.brand-bottom{margin-top:20px}.entry-card{width:95%;display:flex;align-items:center;gap:12px;background:#fffffff2;backdrop-filter:blur(12px);border:1px solid #e1e4e8;border-radius:16px;padding:17px 18px;box-shadow:0 12px 40px #1e323210;position:relative;margin-top:-20px;font-size:14px;font-weight:800}.entry-card small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:3px}.entry-card b{margin-left:auto;font-size:28px;color:#c1121a}.entry-dot{width:9px;height:9px;background:var(--cyan);box-shadow:0 0 0 5px #087d8614;border-radius:50%;flex-shrink:0}
.booking-steps{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none;counter-reset:step;padding:24px 0 0;border-top:1px solid var(--line);margin-top:16px}.booking-steps li{counter-increment:step;position:relative;padding-left:45px}.booking-steps li::before{content:'0' counter(step);position:absolute;left:0;top:0;font-size:20px;font-weight:900;color:var(--red)}.booking-steps b{font-size:14px;display:block}.booking-steps span{font-size:12px;color:var(--muted)}
.pg{position:relative;max-width:820px;margin:30px auto 0;padding:0 28px;z-index:2}.pg-bar{height:3px;border-radius:4px;background:#e2e3e7;overflow:hidden;margin-top:20px}.pg-fill{height:100%;width:25%;background:var(--red);transition:width .22s}.pg-txt{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:8px}.step-track{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;list-style:none;color:#838791;font-size:12px}.step-track li{display:flex;align-items:center;gap:8px}.step-track span{border:1px solid #cdd1d7;width:29px;height:29px;border-radius:8px;display:grid;place-items:center;font-size:10px;font-weight:800;background:#fff}.step-track li[aria-current]{color:var(--red);font-weight:800}.step-track li[aria-current] span{color:#fff;background:var(--red);border-color:var(--red)}.step-track li.complete span{background:#e8f3f1;border-color:#b8d9d6;color:var(--cyan)}
body:has(#formWrap[style*="block"]) main{max-width:820px;padding-top:24px;padding-bottom:140px}#formWrap{background:#fff;border:1px solid var(--line);border-radius:22px;padding:36px;box-shadow:0 10px 40px #1c202908}.step{display:none}.step.on{display:block;animation:step-in .22s ease-out}@keyframes step-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.step-heading{padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:24px}.step-heading h2{font-size:29px;font-weight:900;letter-spacing:-.035em;line-height:1.4;margin-top:10px;outline:none}.step-heading p{font-size:13px;color:var(--muted);margin-top:8px}
.q{margin-top:30px}.q>.t,.q>label.t{display:block;font-size:16px;font-weight:800;margin-bottom:12px}.req{color:var(--red);margin-left:5px}.hint{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:7px;line-height:1.8}.qmax{color:var(--cyan);font-size:12px;margin-bottom:12px}.optag{font-size:11px;color:var(--muted);font-weight:400;margin-left:7px}
input[type=text],input[type=tel],input[type=date],input[type=number],textarea{width:100%;border:1px solid #cdd1d8;border-radius:12px;background:#fafafb;font-size:16px;color:var(--ink);padding:15px 16px;min-height:54px;transition:border-color .15s}textarea{min-height:110px;resize:vertical;line-height:1.8}input:focus,textarea:focus{border-color:var(--cyan);background:#fff}input::placeholder,textarea::placeholder{color:#868b96}
.opts{display:grid;gap:10px}.opts.two,.q[data-group=goal] .opts{grid-template-columns:repeat(2,minmax(0,1fr))}.opt{display:flex;align-items:center;gap:12px;position:relative;min-height:59px;padding:15px 16px;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;overflow-wrap:anywhere}.opt:hover{border-color:#9ea7b2}.opt input{position:absolute;opacity:0;width:1px;height:1px}.opt:focus-within{outline:3px solid #087d8655;outline-offset:3px}.box{width:21px;height:21px;border:1.5px solid #b4bac4;border-radius:50%;flex-shrink:0;display:grid;place-items:center}.multi .box{border-radius:6px}.box::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--red);transform:scale(0)}.multi .box::after{border-radius:2px}.opt input:checked~.box{border-color:var(--red)}.opt input:checked~.box::after{transform:scale(1)}.opt:has(input:checked){border-color:var(--red);background:#fff5f5;box-shadow:0 0 0 1px #c1121a20}.lb{font-size:14px;font-weight:500;line-height:1.6}.lb b{color:var(--red);font-weight:900;white-space:nowrap}.opt .sub{font-size:12px;color:var(--muted);display:block;margin-top:5px;line-height:1.7}.err{display:none;color:#b20812;font-size:13px;padding-top:8px}.err.on{display:block}[aria-invalid=true]{border-color:var(--red)}
.branch{background:#f6f9f9;border:1px solid #d6e7e5;border-radius:15px;padding:20px;margin-top:24px}.branch .bt{font-size:15px;color:var(--cyan);font-weight:800}.branch .bd{font-size:12px;color:var(--muted);margin:6px 0 18px}.review-card{border:1px solid #e6d39d;background:#fffdf4;border-radius:16px;margin-top:28px;padding:20px}.review-title h3{font-size:20px;margin-top:6px}.review-title p{font-size:12px;color:var(--muted);margin-top:5px}.review-card dl{margin-top:14px}.review-card dl>div{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:11px 0;border-top:1px solid #e9e3d6;font-size:13px}.review-card dt{color:var(--muted)}.review-card dd{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.privacy-note{color:var(--muted);font-size:12px;margin-top:22px;line-height:1.9}.member{font-size:12px;text-align:center;border-top:1px solid var(--line);margin-top:28px;padding-top:20px;color:var(--muted)}.member a{color:var(--cyan);text-underline-offset:4px;font-weight:700}
.nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fffffff2;backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:14px 28px calc(14px + env(safe-area-inset-bottom))}.nav.on{display:block}.nav-in{max-width:760px;margin:auto;display:flex;align-items:center;gap:12px}.nav-hint{font-size:12px;margin-right:auto;font-weight:700;line-height:1.8}.nav-hint small{font-size:11px;display:block;color:var(--muted);font-weight:400}.btn{border:1px solid var(--line);border-radius:12px;padding:14px 24px;font-weight:800;font-size:15px;min-height:52px;white-space:nowrap}.btn-p{color:#fff;background:var(--red);border-color:var(--red);min-width:220px}.btn-p:hover{background:var(--red-hi)}.btn-s{background:white;color:var(--muted)}.submit-error{position:fixed;z-index:40;bottom:calc(90px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(720px,calc(100% - 32px));padding:16px;background:#fff4f4;color:#ad0b14;border:1px solid #e9bdc0;border-radius:14px;font-size:13px;box-shadow:0 8px 24px #0001}
.done{display:none;max-width:680px;margin:0 auto;text-align:center;background:white;border:1px solid var(--line);border-radius:24px;padding:38px}.done.on{display:block}.tick{display:grid;place-items:center;border-radius:50%;width:66px;height:66px;background:var(--cyan);margin:0 auto 24px;box-shadow:0 0 0 10px #087d8610}.done h2{font-size:32px;line-height:1.45;margin-top:12px;font-weight:900;outline:none}.done>p{font-size:14px;color:var(--muted);margin-top:16px;line-height:1.9}.msgbox{border:1px solid #e4d09b;border-radius:14px;background:#fffdf4;padding:20px;margin-top:24px}.msgbox .lb{font-size:12px;color:var(--muted)}.msgbox .m{font-size:14px;font-weight:500;margin-top:12px;overflow-wrap:anywhere;white-space:pre-wrap;text-align:left;line-height:1.8;max-height:360px;overflow:auto;padding:4px;user-select:text}.done .line-status{background:#eef7f3;border:1px solid #c9e3d7;border-radius:12px;padding:14px;color:#245943;text-align:left;font-size:13px}.copy-btn[hidden]{display:none}.copy-btn{background:white;border:1px solid var(--line);border-radius:9px;padding:9px 17px;font-size:13px;font-weight:700;margin-top:14px}#copyStatus{font-size:12px;color:var(--cyan);margin-top:8px}.line-btn{background:#087b3c;color:white;display:block;padding:16px;border-radius:12px;text-decoration:none;font-size:17px;font-weight:800;margin-top:16px}.card{text-align:left;border-top:1px solid var(--line);padding-top:24px;margin-top:28px}.card h3{font-size:16px;color:var(--red);margin-bottom:12px}.card ul{padding-left:20px;color:var(--muted);font-size:13px;line-height:2}.map-btn{display:block;text-decoration:none;border:1px solid var(--line);border-radius:12px;padding:13px;font-size:13px;margin-top:14px}
footer{font:10px/1.7 monospace;color:#8a8c94;text-align:center;letter-spacing:.13em;padding:10px 20px 30px}
@media(max-width:760px){.hd-in{padding:9px 20px}.brand{font-size:16px;gap:8px}.brand img{width:42px;height:42px}.brand small{font-size:7px}.back{font-size:12px}main{padding:30px 22px}.lede{display:block;position:relative}.hero-copy{max-width:500px;margin:auto}.lede h1{font-size:48px;line-height:1.25;margin-top:17px}.hero-sub{font-size:20px;margin-top:20px}.hero-description{font-size:13px;max-width:290px}.desktop-break{display:none}.hero-brand{position:absolute;inset:28px -5px auto auto;width:170px;min-height:180px;opacity:.10;z-index:0;pointer-events:none}.hero-brand>img{width:170px}.hero-brand .entry-card,.hero-brand .brand-caption,.hero-brand .brand-bottom,.brand-orbit{display:none}.hero-copy>.eyebrow{font-size:9px}.trust{margin-top:20px}.trust span{font-size:10px;padding:5px 8px}.startbtn{margin-top:24px;border-radius:14px;padding:16px 18px}.startbtn>span{font-size:17px}.booking-note{font-size:10px}.booking-direct{font-size:12px}.booking-steps{gap:10px;margin-top:30px;padding-top:22px}.booking-steps li{padding-left:0}.booking-steps li::before{position:static;display:block;font-size:18px;margin-bottom:4px}.booking-steps b{font-size:12px}.booking-steps span{font-size:10px;display:block}.pg{margin-top:22px;padding:0 20px}.step-track{font-size:10px;gap:8px}.step-track li{display:block;white-space:nowrap}.step-track span{margin-bottom:6px;width:26px;height:26px}.pg-bar{margin-top:13px}body:has(#formWrap[style*="block"]) main{padding:18px 12px 130px}#formWrap{padding:24px 18px;border-radius:19px}.step-heading{padding-bottom:19px;margin-bottom:21px}.step-heading h2{font-size:25px}.step-heading .eyebrow{font-size:10px}.step-heading p{font-size:12px}.q{margin-top:25px}.q>.t,.q>label.t{font-size:15px}.q[data-group=goal] .opts{grid-template-columns:1fr}.opts.two{gap:8px}.opt{padding:13px 12px;gap:9px;min-height:58px}.lb{font-size:13px}.box{width:19px;height:19px}.branch{padding:16px}.nav{padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.nav-hint{display:none}.btn{font-size:14px;padding:14px 18px}.btn-p{min-width:0;flex:1}.btn-s{flex:0 0 auto}.review-card{padding:17px}.review-card dl>div{grid-template-columns:80px 1fr;gap:9px;font-size:12px}.done{padding:28px 20px}.done h2{font-size:28px}footer{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.startbtn:hover{transform:none}}

/* Guided booking choices, lightweight motion, clear next steps. */
.goal-icon{width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;color:var(--cyan)}.goal-icon svg{width:29px;height:29px}.q[data-group=goal] .opt{padding:17px 13px;align-items:flex-start;gap:10px}.q[data-group=goal] .box{position:absolute;right:12px;top:13px;width:16px;height:16px}.q[data-group=goal] .lb{padding-right:16px}.q[data-group=goal] .lb b{white-space:normal;color:var(--ink);font-size:14px}.q[data-group=goal] .sub{font-size:11px}.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.plan-grid>.opt{align-items:flex-start;padding:17px 14px;display:block}.plan-grid>.opt:last-child{grid-column:1/-1;display:flex}.plan-grid .box{margin-bottom:12px}.plan-grid .lb{display:block}.plan-grid .lb b{white-space:normal;color:var(--ink);font-size:15px;min-height:48px;display:block}.plan-type{display:block;font-size:10px;color:var(--cyan);font-weight:800;margin-bottom:4px}.plan-price{display:block;color:var(--red);font-size:25px;margin:12px 0}.plan-grid .sub em{display:block;color:var(--ink);font-style:normal;font-weight:700;margin-top:10px}.optional-details{margin-top:28px;border:1px solid var(--line);border-radius:15px}.optional-details>summary{display:flex;justify-content:space-between;align-items:center;padding:18px;list-style:none;cursor:pointer;gap:12px}.optional-details>summary::-webkit-details-marker{display:none}.optional-details>summary b{font-size:15px}.optional-details>summary small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.optional-details[open]>summary{border-bottom:1px solid var(--line)}.optional-body{padding:0 18px 22px}.goal-prompts{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.goal-prompts button{border:1px solid #c7ddda;background:#f1f8f6;color:#21635d;padding:10px 12px;font-size:12px;border-radius:9px;min-height:44px}.review-card dl>div{grid-template-columns:100px minmax(0,1fr) auto;align-items:start}.edit-answer{font-size:12px;background:#fff;border:1px solid #d6ccb1;border-radius:8px;min-height:44px;min-width:44px;padding:6px;color:#6d5529}.receipt-card{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;background:#f4f8f7;border-radius:12px;padding:16px;margin-top:20px}.receipt-card>span{font-size:12px;color:var(--cyan)}.receipt-card>b{font-family:monospace;letter-spacing:.04em;overflow-wrap:anywhere;font-size:15px}.receipt-card>small{width:100%;color:var(--muted);font-size:11px}.arrival-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;gap:8px;font-size:11px;margin:20px 0;counter-reset:arrival}.arrival-steps li{counter-increment:arrival;display:grid;justify-items:center;gap:8px;color:var(--muted)}.arrival-steps li::before{content:counter(arrival);display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--line);border-radius:50%;font-weight:800}.arrival-steps .complete{color:var(--cyan)}.arrival-steps .complete::before{background:var(--cyan);color:white;border-color:var(--cyan)}.prep-note{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:14px}.opt:active{transform:scale(.99)}.box::after{transition:transform .15s}.copy-btn,.map-btn{min-height:44px}
@media(max-width:760px){.q[data-group=goal] .opts{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.q[data-group=goal] .opt{display:block;padding:14px 12px}.q[data-group=goal] .lb{padding:0}.q[data-group=goal] .lb b{font-size:13px}.q[data-group=goal] .goal-icon{margin-bottom:7px}.q[data-group=goal] .sub{font-size:11px}.plan-grid{grid-template-columns:1fr}.plan-grid>.opt{display:flex;gap:12px;padding:17px}.plan-grid .box{margin-top:5px}.plan-grid .lb{flex:1}.plan-grid .lb b{min-height:0;font-size:16px}.plan-price{font-size:23px;margin:8px 0}.plan-grid .sub{font-size:12px}.review-card dl>div{grid-template-columns:1fr auto;gap:5px 10px}.review-card dt{grid-column:1}.review-card dd{grid-column:1;font-size:13px}.edit-answer{grid-column:2;grid-row:1 / span 2}.optional-body{padding:0 13px 18px}}

.choice-preview{border:1px solid #c6ddd9;border-left:4px solid #087d86;background:#f2f9f7;border-radius:14px;max-width:760px;margin:0 auto 28px;padding:18px 20px;line-height:1.8}.choice-preview[hidden]{display:none}.choice-preview>b{color:#21635d;font-size:15px}.choice-preview p{font-size:14px;margin:5px 0}.choice-preview small{display:block;font-size:12px;color:#4e6265}.choice-preview button{margin-top:10px;background:white;border:1px solid #c5d5d3;padding:10px 12px;border-radius:8px;font:inherit;font-size:12px;min-height:44px}.first-visit-link{display:block;margin:18px 0 0;font-size:13px;line-height:1.7;color:#087d86;text-underline-offset:4px}.handoff-note{padding:14px;background:#fff8ec;border:1px solid #ead8b5;border-radius:12px;color:#73572c!important}.arrival-steps [aria-current=step]{color:#965d18;font-weight:700}.arrival-steps li::before{content:counter(arrival)}@media(max-width:760px){.booking-note{font-size:12px}.booking-steps{grid-template-columns:1fr;gap:14px}.booking-steps li{padding-left:36px;position:relative}.booking-steps li::before{position:absolute;left:0;top:0}.booking-steps b{font-size:14px}.booking-steps span{font-size:12px}.arrival-steps{grid-template-columns:1fr;gap:12px;text-align:left}.arrival-steps li{display:flex;justify-content:flex-start;align-items:center;font-size:13px}.choice-preview{padding:15px;margin-bottom:20px}.nav .btn{min-height:48px}.done{margin-bottom:60px}}
