.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.booking-panel{max-width:900px;margin:55px auto 0;padding:40px 45px;background:#fdfcf790;border:1px solid var(--line);text-align:left}
.booking-heading{margin-bottom:32px}
.booking-heading h3{font-size:27px;letter-spacing:.035em;line-height:1.6;margin:10px 0}
.booking-heading>p:last-child{font-size:14px;color:var(--muted)}
.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:28px 36px}
.booking-field label,.booking-period legend{display:block;font-size:15px;letter-spacing:.06em;margin-bottom:10px}
.required-mark{font-size:12px;color:var(--orange)}
.field-optional{font-size:12px;color:var(--muted);letter-spacing:0}
.booking-field input,.hour-range select{width:100%;min-width:0;border:0;border-bottom:1px solid #adb5ac;border-radius:0;background:transparent;font:16px/1.5 var(--sans);color:var(--ink);padding:10px 0;outline-offset:4px;box-shadow:none}
.booking-field input::placeholder{color:#92978e;font-size:14px}
.booking-field input:focus,.hour-range select:focus{border-bottom-color:var(--orange);outline:2px solid var(--orange)}
.booking-period{border:0;min-width:0;margin:0;padding:0;grid-column:1/-1}
.period-options{display:flex;gap:28px;margin-bottom:16px}
.period-options label{display:flex;align-items:center;gap:10px;font-size:15px;cursor:pointer;min-height:28px}
.booking-panel input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--orange);cursor:pointer;flex-shrink:0}
.hour-range{display:flex;align-items:center;gap:20px;max-width:370px}
.hour-range select{flex:1;cursor:pointer}
.booking-consent{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:30px 0 28px;font-size:14px}
.booking-consent a{color:var(--orange);text-decoration:underline;text-underline-offset:5px}
.booking-consent label{cursor:pointer}
.booking-actions{display:flex;align-items:center;gap:26px}
.booking-submit{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:54px;padding:14px 22px;background:#203b4b;color:#fff;font-size:16px;letter-spacing:.08em}
.booking-submit span{font-size:10px;letter-spacing:.12em}
.booking-submit:hover{background:#2d4e5d}
.booking-submit:disabled{opacity:.6;cursor:wait}
.booking-help{font-size:12px;line-height:1.9;color:var(--muted);max-width:280px}
.booking-status:empty{display:none}
.booking-status{font-size:15px;line-height:1.9;margin-top:24px;padding:16px 18px;border-left:3px solid #547567;background:#e8eee5}
.booking-status[data-state=error]{border-color:#b45438;background:#f3e7de;color:#7d3926}
dialog.privacy-dialog{position:fixed;inset:0;width:min(920px,calc(100% - 40px));height:auto;max-height:85dvh;max-width:none;margin:auto;border:1px solid var(--line);padding:0;background:var(--paper) url('/assets/paper.svg');color:var(--ink);overflow:auto;box-shadow:0 24px 90px #152f3b35}
dialog.privacy-dialog::backdrop{background:#152f3bbd;backdrop-filter:blur(4px)}
dialog.privacy-dialog[open]{display:block;animation:none}
.privacy-dialog-bar{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;background:#f4f3eb;border-bottom:1px solid var(--line);padding:12px 24px;gap:20px;font-size:12px;letter-spacing:.04em}
.privacy-dialog-bar button{display:grid;place-items:center;width:44px;height:44px;background:transparent;font:34px/1 var(--sans);color:var(--ink);flex-shrink:0}
.privacy-content{padding:32px 42px 40px;font-size:15px;line-height:1.9;overflow-wrap:anywhere}
.privacy-content h2{font-size:27px;line-height:1.6;letter-spacing:.04em;margin-bottom:28px}
.privacy-content h3{font:500 16px/1.8 var(--sans);letter-spacing:.02em;margin-bottom:6px}
.privacy-content p{max-width:none;margin:0}
.privacy-clauses{margin:24px 0}
.privacy-clauses section{margin:0 0 18px;padding:0}
.privacy-clauses ol{padding-left:25px;margin:8px 0 0}
.privacy-clauses li{padding-left:3px;margin-bottom:6px}
.privacy-content .privacy-consent-text{margin:26px 0 20px}
body.privacy-open{overflow:hidden}
.privacy-page{max-width:940px;margin:50px auto;padding:0 20px 40px}
.privacy-page>.text-link{margin-left:42px}
@media(max-width:700px){.booking-panel{margin-top:36px;padding:27px 22px}.booking-heading h3{font-size:23px}.booking-fields{grid-template-columns:1fr;gap:25px}.booking-actions{align-items:flex-start;flex-direction:column;gap:15px}.booking-submit{width:100%}.booking-help{max-width:none}.booking-consent{margin:27px 0}.privacy-content{padding:25px 24px 30px}.privacy-content h2{font-size:23px}.privacy-dialog-bar{padding:8px 16px}.privacy-page>.text-link{margin-left:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Closing composition: project information at left, reservation at right. */
.visit{padding:88px 6%;text-align:left}
.visit-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:center;gap:clamp(42px,5.2vw,78px);width:100%;max-width:1200px;margin:0 auto}
.visit-info{min-width:0;padding:4px 0}
.visit-intro{position:relative;padding-top:2px}
.visit-intro .overline{font-size:10px;letter-spacing:.18em;margin:0 0 24px}
.visit .visit-flower{display:block;width:38px;height:38px;margin:0 0 18px}
.visit-location{font-size:12px;letter-spacing:.13em;color:var(--muted);margin:0 0 9px}
.visit .visit-info h2{font-size:clamp(29px,2.8vw,40px);line-height:1.5;letter-spacing:.045em;color:#203b4b;white-space:nowrap}
.visit-size{display:flex;align-items:center;gap:17px;margin:27px 0 21px;color:#203b4b}
.visit-size strong{font:400 clamp(72px,6.7vw,92px)/.95 Georgia,serif;letter-spacing:-.03em}
.visit-size>span{font:23px/1.4 var(--serif);padding-top:8px}
.visit-size small{display:block;margin-top:7px;font:11px/1.6 var(--sans);letter-spacing:.1em;color:var(--muted)}
.visit-slogan{font:25px/1.65 var(--serif);letter-spacing:.04em;color:#203b4b;margin:0 0 17px}
.visit-description{font-size:14px;line-height:2;letter-spacing:.01em;color:#6c7269;max-width:29em}
.visit-info .visit-contact{grid-template-columns:1fr;gap:23px;max-width:none;margin:31px 0 0;padding:25px 0 0;border-top:1px solid #c9c7bc;border-bottom:0}
.visit-info .visit-contact dt{font-size:11px;letter-spacing:.1em;margin-bottom:7px}
.visit-info .visit-phone dd{font-size:33px;line-height:1.3}
.visit-info .visit-address dd{font-family:var(--sans);font-size:16px;line-height:1.8;letter-spacing:.01em}
.visit-layout .booking-panel{min-width:0;width:100%;max-width:none;margin:0;padding:37px 36px 34px;background:#fbfaf5d9;border:1px solid #d3d1c5;box-shadow:0 12px 32px #28382c05}
.visit-layout .booking-heading{margin-bottom:21px;padding-bottom:23px;border-bottom:1px solid #d8d9cd}
.visit-layout .booking-heading .overline{font-size:9px;letter-spacing:.16em;margin:0 0 8px}
.visit-layout .booking-heading h3{font-size:29px;letter-spacing:.07em;color:#203b4b;margin:0 0 7px}
.visit-layout .booking-heading>p:last-child{font-size:13px;line-height:1.9;letter-spacing:.01em}
.visit-layout .booking-fields{grid-template-columns:1fr;gap:0}
.visit-layout .booking-field,.visit-layout .booking-period{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;align-items:center;border-bottom:1px solid #c9cec2;padding:12px 0;min-height:68px}
.visit-layout .booking-field label,.visit-layout .booking-field-label{font-size:14px;letter-spacing:.02em;line-height:1.7;margin:0}
.visit-layout .field-optional{font-size:10px;white-space:nowrap}
.visit-layout .booking-field input{border:0;padding:9px 0;background:transparent}
.visit-layout .booking-field input::placeholder{font-size:13px}
.visit-layout .booking-period{align-items:start;padding:17px 0 20px}
.visit-layout .booking-field-label{padding-top:3px}
.visit-layout .booking-period-controls{min-width:0}
.visit-layout .period-options{gap:25px;margin:0 0 10px}
.visit-layout .period-options label{font-size:14px}
.visit-layout .hour-range{max-width:none;gap:13px}
.visit-layout .hour-range select{font-size:14px;padding:7px 0}
.visit-layout .booking-consent{margin:26px 0 25px;font-size:13px;gap:8px;line-height:1.8}
.visit-layout .booking-consent a{white-space:nowrap}
.visit-layout .booking-actions{flex-direction:column;align-items:flex-end;gap:14px}
.visit-layout .booking-submit{min-width:214px;min-height:52px;font-size:15px}
.visit-layout .booking-help{font-size:11px;max-width:none;line-height:1.8}
@media(max-width:1000px) and (min-width:801px){.visit{padding:70px 5%}.visit-layout{gap:32px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.visit-layout .booking-panel{padding:30px 26px}.visit-layout .booking-field,.visit-layout .booking-period{grid-template-columns:90px minmax(0,1fr);gap:9px}.visit .visit-info h2{font-size:30px}.visit-info .visit-address dd{font-size:15px}}
@media(max-width:800px){.visit{padding:58px 7% 65px}.visit-layout{grid-template-columns:1fr;gap:38px;max-width:580px}.visit-info{padding:0}.visit .visit-info h2{font-size:34px}.visit-size{margin:24px 0 20px}.visit-size strong{font-size:78px}.visit-slogan{font-size:25px}.visit-info .visit-contact{margin-top:28px;gap:20px}.visit-info .visit-phone dd{font-size:32px}.visit-layout .booking-panel{padding:30px 26px}.visit-layout .booking-actions{align-items:stretch}.visit-layout .booking-submit{width:100%}.visit-layout .booking-help{text-align:left}}
@media(max-width:430px){.visit .visit-info h2{font-size:30px}.visit-layout .booking-panel{padding:27px 20px}.visit-layout .booking-heading h3{font-size:27px}.visit-layout .booking-field,.visit-layout .booking-period{grid-template-columns:1fr;gap:5px;min-height:0;padding:16px 0}.visit-layout .booking-period{gap:12px}.visit-layout .booking-field-label{padding:0}.visit-layout .booking-consent{gap:7px;font-size:12px}.visit-layout .booking-field input{padding:7px 0}.visit-layout .booking-heading>p:last-child{font-size:12px}.visit-info .visit-address dd{font-size:15px}}

/* Lining numerals keep every digit on a shared baseline. */
:root{--number-font:Arial,Helvetica,"Noto Sans TC",sans-serif}
body{font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
.numeric{font-family:var(--number-font)!important;font-variant-numeric:lining-nums tabular-nums!important;font-feature-settings:"lnum" 1,"tnum" 1!important;font-size:inherit!important;line-height:inherit!important;font-weight:inherit;color:inherit!important;letter-spacing:inherit;display:inline!important;vertical-align:baseline!important;white-space:nowrap;margin:0!important;padding:0!important}
.visit-info .visit-phone dd,.visit-layout input,.visit-layout select{font-family:var(--number-font);font-variant-numeric:lining-nums tabular-nums}
.visit .visit-info h2{font-size:34px;letter-spacing:.025em;line-height:1.5}
.visit-intro .overline{margin-bottom:18px}
.visit-info .visit-location{margin:9px 0 0;font-size:13px;letter-spacing:.06em}
.visit-info .visit-size{display:flex;align-items:baseline;gap:9px;font:500 58px/1.15 var(--number-font);color:#203b4b;margin:27px 0 13px;letter-spacing:-.02em}
.visit-info .visit-size>.visit-size-unit{font:22px/1.5 var(--sans);padding:0}
.visit-info .visit-size>small{display:inline;margin:0 0 0 6px;font:13px/1.5 var(--sans);letter-spacing:.025em;color:var(--muted)}
.visit-facts{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 0;font-size:15px;line-height:1.7;color:#4c5a56;margin-bottom:17px}
.visit-facts>span+span{margin-left:17px;padding-left:17px;border-left:1px solid #c9c7bc}
.visit-info .visit-description{font-size:14px;line-height:1.95;letter-spacing:0}
.visit-info .visit-contact{margin-top:25px;padding-top:22px;gap:22px}
.visit-info .visit-phone dd{font-size:28px;font-weight:400;letter-spacing:.015em}
.visit-info .visit-address dd{font-size:15px;line-height:1.8}
@media(max-width:1000px) and (min-width:801px){.visit .visit-info h2{font-size:29px}.visit-info .visit-size{font-size:54px}.visit-facts{font-size:14px}.visit-facts>span+span{margin-left:12px;padding-left:12px}}
@media(max-width:800px){.visit .visit-info h2{font-size:32px}.visit-info .visit-size{font-size:56px;margin-top:24px}.visit-info .visit-phone dd{font-size:27px}}
@media(max-width:430px){.visit .visit-info h2{font-size:29px}.visit-info .visit-size{font-size:52px}.visit-facts{font-size:14px}.visit-info .visit-phone dd{font-size:26px}}

/* A clear introduction, three aligned specifications, and the project map. */
html{scroll-padding-top:24px}
.home-hero{min-height:max(720px,100svh)}
.visit-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:clamp(38px,5vw,70px)}
.visit-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:26px 0 0;padding:22px 0;border-block:1px solid #c9c7bc}
.visit-specs>div{min-width:0;padding-right:14px}
.visit-specs>div+div{border-left:1px solid #c9c7bc;padding-left:20px}
.visit-specs dt{font-size:11px;color:var(--muted);letter-spacing:.06em;margin-bottom:8px}
.visit-specs dd{display:flex;align-items:baseline;gap:5px;margin:0;font:400 34px/1.2 var(--number-font);color:#203b4b;white-space:nowrap}
.visit-specs dd small{font:13px/1.5 var(--sans)}
.visit-info .visit-contact{border:0;margin:23px 0 0;padding:0;gap:18px}
.visit-info .visit-contact dt{margin-bottom:5px}
.visit-info .visit-phone dd{font-size:26px}
.visit-info .visit-address dd{font-size:14px;line-height:1.8}
.project-location{margin:25px 0 0;padding:22px 0 0;border-top:1px solid #c9c7bc;scroll-margin-top:24px}
.project-location-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.project-location-heading h3{font:500 16px/1.6 var(--sans);letter-spacing:.04em;color:#203b4b}
.project-location-heading a{font-size:11px;line-height:1.8;color:var(--orange);text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.project-location-address{font-size:13px;line-height:1.8;color:var(--muted);margin:8px 0 15px}
.project-map{width:100%;height:245px;background:#e2e5dc;border:1px solid #c9cec2;overflow:hidden}
.project-map iframe{display:block;width:100%;height:100%;border:0}
#reservation{scroll-margin-top:24px}
.quick-nav a{gap:7px;font-size:10px;letter-spacing:.03em;min-width:70px}
.quick-nav svg{width:23px;height:23px;flex-shrink:0}
@media(max-width:1000px) and (min-width:801px){.visit-layout{gap:32px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.visit-specs>div+div{padding-left:13px}.visit-specs dd{font-size:30px}.visit-specs>div{padding-right:8px}.quick-nav a{min-width:60px;font-size:9px}}
@media(max-width:800px){.home-hero{min-height:max(650px,100svh)}.visit-layout{grid-template-columns:1fr;gap:36px}.visit-specs dd{font-size:33px}.visit-info .visit-phone dd{font-size:26px}.quick-nav a{min-width:56px;font-size:9px}}
@media(max-width:560px){.quick-nav a{font-size:11px;min-width:0;gap:7px;padding:13px 5px}.quick-nav svg{width:19px;height:19px}.project-map{height:235px}}
@media(max-width:380px){.visit-specs dd{font-size:29px}.visit-specs>div{padding-right:8px}.visit-specs>div+div{padding-left:12px}.visit-specs dt{font-size:10px}.quick-nav a{font-size:10px}}
