@import url(vogue-tc.css);
/* BILA 2026-11 typography preview (only loaded on preview host) */
@font-face{font-family:'CH Didone';src:url(../fonts/vogue/bodoni-moda-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20AC;font-display:swap}
@font-face{font-family:'CH Didone';font-style:italic;src:url(../fonts/vogue/bodoni-moda-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F;font-display:swap}
@font-face{font-family:'CH Sans';src:url(../fonts/vogue/jost-latin-400-normal.woff2) format('woff2');font-display:swap}

body, body h1, body h2, body h3, body h4, body h5, body h6, body p, body span, body a, body div, body li, body label, body input, body textarea, body button {
  font-family:'CH Didone','CH TC',serif !important;
}
[class^="ion-"], [class*=" ion-"], [class^="ion-"]:before, [class*=" ion-"]:before { font-family:'Ionicons' !important; }

/* body copy: lighter, bigger, airier */
body p { font-weight:300; font-size:17px; line-height:2.05; letter-spacing:.06em; color:#e6e6e6; }

/* navigation: thin sans, wide tracking */
.navbar-nav > li > a, .mi_menu_2 a { font-family:'CH Sans','CH TC',sans-serif !important; font-size:13px !important; letter-spacing:.32em !important; text-transform:uppercase; }

/* service blocks: white Didone title, Chinese label below it */
.services-heading-wrapper { display:flex; flex-direction:column-reverse; align-items:center; top:0 !important; margin-bottom:22px; }
.services-number-title { position:relative !important; top:0 !important; width:auto !important; color:#fff !important; text-transform:none !important; font-weight:400 !important; font-size:64px !important; line-height:1.02 !important; letter-spacing:-.01em; }
.services-heading { padding:14px 0 0 !important; margin:0 !important; }
.services-heading a { font-weight:300 !important; font-size:16px !important; letter-spacing:.4em !important; color:#fff !important; }
/* dashes on the h4, not the link (link:before is the hover underline) */
.services-heading:before { content:"— "; font-weight:300; font-size:16px; color:#fff; letter-spacing:.4em; }
.services-heading:after { content:"—"; font-weight:300; font-size:16px; color:#fff; }

/* gallery hover: caption card slides up from the bottom, photo zooms in slightly */
.image-works { overflow:hidden; }
.image-works .mei-img { transition:transform .9s cubic-bezier(.2,.7,.2,1) !important; }
.image-works:hover .mei-img { transform:scale(1.06) !important; }
.image-works > .hover-effect { top:auto !important; bottom:0 !important; left:0 !important; right:0 !important; width:auto !important; height:auto !important; padding:22px 24px !important; background:rgba(255,255,255,.94) !important; opacity:1 !important; transform:translateY(101%); transition:transform .5s cubic-bezier(.2,.7,.2,1) !important; pointer-events:none; text-align:center; border-radius:14px 14px 0 0; }
.image-works:hover > .hover-effect { transform:translateY(0); opacity:1 !important; }
.hover-effect .mi_icon-works { display:block !important; top:auto !important; transform:none !important; overflow-wrap:anywhere; font-size:17px !important; font-weight:300 !important; letter-spacing:.12em !important; line-height:1.6 !important; color:#111 !important; }
@media (max-width: 767px) { .hover-effect .mi_icon-works { font-size:14px !important; } }

/* album filter (ALL / 新款發表 …): rounded-top tabs on a baseline, selected tab filled white */
.mi_album_sort { display:flex !important; justify-content:center; flex-wrap:wrap; gap:6px; border-bottom:1px solid rgba(255,255,255,.55); padding:0 !important; }
.mi_album_sort > a { display:block; }
.mi_album_sort li.c-btn { border-radius:14px 14px 0 0 !important; overflow:hidden; margin:0 !important; border-bottom:none !important; position:relative; }
/* fill rises from the bottom instead of sliding left-to-right */
.mi_album_sort li.c-btn::before { transform-origin:center bottom !important; transform:scale(1,0) !important; }
.mi_album_sort li.c-btn:hover::before, .mi_album_sort li.c-btn.active::before, .mi_album_sort a:hover li.c-btn::before { transform-origin:center bottom !important; transform:scale(1,1) !important; }
/* caption lines: 項目 / 日期 / 編號 */
.mi_icon-works.cap3 > span { display:block; }
.mi_icon-works .cap-t { font-size:17px; letter-spacing:.2em; color:#111; }
.mi_icon-works .cap-d { font-family:'CH Sans','CH TC',sans-serif !important; font-size:11px; letter-spacing:.3em; color:#777; margin-top:6px; }
.mi_icon-works .cap-n { font-family:'CH Sans','CH TC',sans-serif !important; font-size:11px; letter-spacing:.3em; color:#777; text-transform:uppercase; }

/* inner pages: frame + menu appear in place, no slide-in intro (homepage keeps it) */
html.no-intro .border-top, html.no-intro .border-bottom, html.no-intro .border-left, html.no-intro .border-right,
html.no-intro .border-bottom-wave, html.no-intro #wave, html.no-intro .main-navigation,
html.no-intro .bottom-credits, html.no-intro .social-icons-wrapper-share, html.no-intro .scroll-indicator-wrapper { transition:none !important; }
html.no-intro .top-position, html.no-intro .bottom-position, html.no-intro .left-position, html.no-intro .right-position { transform:none !important; }

/* service blocks: big English title is clickable too and triggers the label underline */
.services-number-title { cursor:pointer; }
.services-heading-wrapper:hover .link-underline:before { visibility:visible !important; transform:scaleX(1) !important; }

/* photographer "擅長捕捉光影間的情感" panel: text was wider than its column and got cut off */
#about-skills .img-fullwidth-bg-light[style*="padding: 0 100px"] { padding:0 8% !important; }
#about-skills .about-skills-heading { font-size:clamp(24px, 2.4vw, 38px) !important; line-height:1.4 !important; text-align:center !important; margin:0 0 40px !important; overflow-wrap:anywhere; }
#about-skills .about-skills p { overflow-wrap:anywhere; }

/* inner pages: no black side/bottom frame at all (it covered content); frame only on the homepage */
html.inner-page .border-left, html.inner-page .border-right { display:none !important; } /* bottom bar stays: it carries the footer */
/* homepage: frame only at the very top; once scrolled down it slides away instead of shrinking */
.border-left.left-position-primary { transform:translateX(-100%) !important; }
.border-right.right-position-primary { transform:translateX(100%) !important; }

/* top-menu dropdown (PHOTO / DRESS ...): solid black + thin light border instead of 80% see-through */
@media only screen and (min-width: 768px) { ul.mi_drop_DOWN_menu li:hover > ul { background-color:#000 !important; border:1px solid rgba(255,255,255,.35); } }

/* ================= Booking modal (redesign) ================= */
.contact-modal.bk { background:#fff; color:#111; }
.contact-modal.bk .bk-wrap { max-width:1180px; margin:0 auto; padding:72px 56px 40px; position:relative; }
.contact-modal.bk .bk-grid { display:grid; grid-template-columns:minmax(260px,5fr) 7fr; gap:72px; align-items:start; }
.contact-modal.bk .bk-intro { position:sticky; top:40px; text-align:left; }
.contact-modal.bk .bk-kicker { font-family:'CH Sans','CH TC',sans-serif !important; font-size:11px; letter-spacing:.4em; text-transform:uppercase; color:#888; margin:0 0 18px; }
.contact-modal.bk .bk-title { font-size:44px; font-weight:600; letter-spacing:.12em; margin:0 0 22px; color:#111; line-height:1.2; text-align:left; }
.contact-modal.bk .bk-lead { font-size:15px; line-height:2; color:#444; margin:0 0 36px; letter-spacing:.05em; }
.contact-modal.bk .bk-facts { list-style:none; margin:0 0 36px; padding:0; border-top:1px solid #e3e3e3; }
.contact-modal.bk .bk-facts li { display:flex; align-items:center; gap:22px; padding:20px 0; border-bottom:1px solid #e3e3e3; font-size:15px; letter-spacing:.08em; color:#222; line-height:1.6; }
.contact-modal.bk .bk-facts em { font-style:normal; font-size:12px; color:#888; letter-spacing:.05em; }
.contact-modal.bk .bk-num { font-family:'CH Didone',serif !important; font-size:46px; line-height:1; min-width:84px; color:#111; }
.contact-modal.bk .bk-hours { font-size:13px; line-height:2; color:#666; letter-spacing:.12em; margin:0; }

.contact-modal.bk .bk-form { margin:0; text-align:left; }
.contact-modal.bk fieldset.bk-step { border:0; margin:0 0 40px; padding:0; min-width:0; }
.contact-modal.bk legend { display:flex; align-items:baseline; gap:14px; width:100%; border:0; margin:0 0 18px; padding:0 0 12px; border-bottom:1px solid #111; font-size:17px; letter-spacing:.15em; color:#111; }
.contact-modal.bk legend b { font-family:'CH Didone',serif !important; font-weight:400; font-size:22px; letter-spacing:0; }
.contact-modal.bk legend small, .contact-modal.bk legend i, .contact-modal.bk label i { margin-left:auto; font-style:normal; font-size:12px; color:#999; letter-spacing:.1em; }
.contact-modal.bk label i { margin-left:6px; }
.contact-modal.bk .bk-row { display:flex; gap:24px; }
.contact-modal.bk .bk-field { flex:1 1 0; min-width:0; position:relative; }
.contact-modal.bk .bk-field.bk-w2 { flex:2 1 0; }
.contact-modal.bk label { display:block; width:auto; margin:6px 0 0; font-size:12px; letter-spacing:.15em; color:#777; text-align:left; font-weight:400; }
.contact-modal.bk #form input, .contact-modal.bk #form select, .contact-modal.bk #form textarea {
  width:100%; height:44px; margin:4px 0 14px; padding:6px 0; background:transparent; border:0; border-bottom:1px solid #cfcfcf; border-radius:0;
  font-size:16px; color:#111; letter-spacing:.05em; text-align:left; box-shadow:none; outline:none; -webkit-appearance:none; appearance:none; }
.contact-modal.bk #form select { background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6' fill='%23111'/%3E%3C/svg%3E") no-repeat right 4px center; padding-right:20px; }
.contact-modal.bk #form textarea { height:110px; border:1px solid #cfcfcf; padding:12px 14px; resize:vertical; }
.contact-modal.bk #form input:focus, .contact-modal.bk #form select:focus, .contact-modal.bk #form textarea:focus { border-color:#111; }
.contact-modal.bk .bk-tags { display:flex; flex-wrap:wrap; gap:10px; margin:0; text-align:left; }
.contact-modal.bk #contact-form form .t1_tag, .contact-modal.bk #contact-form form .t2_tag {
  margin:0; padding:10px 18px; border:1px solid #cfcfcf; border-radius:999px; background:#fff; color:#333; font-size:14px; letter-spacing:.1em; transition:all .25s ease; }
.contact-modal.bk #contact-form form .t1_tag:hover, .contact-modal.bk #contact-form form .t2_tag:hover { border-color:#111; }
.contact-modal.bk #contact-form form .t1_tag_selected, .contact-modal.bk #contact-form form .t2_tag_selected { background:#111; border-color:#111; color:#fff; }
.contact-modal.bk .bk-submit { display:block; width:100%; height:58px; margin:8px 0 0; border:1px solid #111; background:#111; color:#fff; font-size:15px; letter-spacing:.5em; cursor:pointer; transition:all .3s ease; }
.contact-modal.bk .bk-submit:hover { background:#fff; color:#111; }
.contact-modal.bk .error { display:block; margin:-8px 0 10px; font-size:12px; color:#b0413e; letter-spacing:.05em; }
.contact-modal.bk .success { padding:40px 0; font-size:18px; letter-spacing:.15em; text-align:center; color:#111; }
.contact-modal.bk .bk-close { position:absolute; top:24px; right:24px; margin:0; width:44px; height:44px; line-height:44px; font-size:22px; color:#111; }
@media (max-width: 900px) {
  .contact-modal.bk .bk-wrap { padding:64px 22px 32px; }
  .contact-modal.bk .bk-grid { grid-template-columns:1fr; gap:36px; }
  .contact-modal.bk .bk-intro { position:static; }
  .contact-modal.bk .bk-title { font-size:34px; }
  .contact-modal.bk .bk-facts li { padding:14px 0; }
  .contact-modal.bk .bk-num { font-size:36px; min-width:66px; }
  .contact-modal.bk .bk-row { flex-wrap:wrap; gap:0 16px; }
  .contact-modal.bk .bk-field.bk-w2 { flex-basis:100%; }
}

/* larger, airier type on the homepage (luxury-house feel: bigger but light, wide tracking) */
h3.section-heading { font-size:22px !important; font-weight:300 !important; letter-spacing:.2em !important; line-height:1.9 !important; }
.section-subheading span { font-family:'CH Sans','CH TC',sans-serif !important; font-size:12px !important; letter-spacing:.45em !important; }
.services-top-txt, .services-bottom-txt { font-size:17px !important; max-width:34em; margin-left:auto !important; margin-right:auto !important; }
.contact-info-text { font-size:16px !important; letter-spacing:.12em !important; }
.bottom-credits { width:640px !important; margin-left:-320px !important; white-space:nowrap; }
.bottom-credits, .bottom-credits a { font-family:'CH Sans','CH TC',sans-serif !important; font-size:11px !important; letter-spacing:.28em !important; }
@media (max-width: 767px) { .bottom-credits { width:100% !important; left:0 !important; margin-left:0 !important; } .bottom-credits, .bottom-credits a { font-size:9px !important; letter-spacing:.15em !important; } }
.contact-modal-launcher-wrapper .button-link span { font-size:14px !important; letter-spacing:.35em !important; }
@media (max-width: 767px) { body p, .services-top-txt, .services-bottom-txt { font-size:15px !important; } h3.section-heading { font-size:18px !important; } }
/* remove the bottom-right share widget (share arrow + pop-out social icons) */
.social-icons-wrapper-share { display:none !important; }
/* breathing room between the hero photos and 客製化的專屬服務 */
#services > .container.sections { padding-top:110px !important; }
@media (max-width: 767px) { #services > .container.sections { padding-top:64px !important; } }
/* English kicker above a Chinese heading: more air + a short hairline between them */
.section-subheading { margin:0 0 34px !important; position:relative; }
.section-subheading span { display:inline-block; padding-bottom:26px; position:relative; }
.section-subheading span:after { content:""; position:absolute; left:50%; bottom:0; width:36px; height:1px; margin-left:-18px; background:rgba(255,255,255,.55); }
@media (max-width: 767px) { .section-subheading span { font-size:10px !important; letter-spacing:.3em !important; line-height:2; } }
/* dropdown: compact panel that hugs its items (no tall empty block) */
@media only screen and (min-width: 768px) {
  ul.mi_drop_DOWN_menu li:hover > ul { padding:10px 0 !important; top:12px !important; }
  ul.mi_drop_DOWN_menu li > ul > li > a { padding:11px 26px !important; line-height:1.6 !important; }
}
.contact-modal.bk #form input[type=date] { cursor:pointer; }

/* booking v2: each step is a soft grey card, fields are quiet boxes (fewer lines) */
.contact-modal.bk fieldset.bk-step { background:#f6f5f3; padding:28px 30px 24px; margin:0 0 18px; }
.contact-modal.bk legend { float:left; border-bottom:0; padding:0; margin:0 0 18px; }
.contact-modal.bk legend + * { clear:both; }
.contact-modal.bk .bk-step > .bk-row:first-of-type, .contact-modal.bk .bk-step > .bk-tags, .contact-modal.bk .bk-step > textarea { clear:both; }
.contact-modal.bk #form input, .contact-modal.bk #form select { height:48px; padding:0 14px; background-color:#fff; border:1px solid #e4e2de; border-radius:2px; margin:6px 0 14px; }
.contact-modal.bk #form select { background-position:right 14px center; padding-right:34px; }
.contact-modal.bk #form textarea { background:#fff; border:1px solid #e4e2de; border-radius:2px; margin:0 0 14px; }
.contact-modal.bk #form input:focus, .contact-modal.bk #form select:focus, .contact-modal.bk #form textarea:focus { border-color:#111; }
.contact-modal.bk .bk-tags { margin-bottom:14px; }
.contact-modal.bk #contact-form form .t1_tag, .contact-modal.bk #contact-form form .t2_tag { border-color:#e4e2de; }
.contact-modal.bk .bk-submit { margin-top:10px; }
@media (max-width: 900px) { .contact-modal.bk fieldset.bk-step { padding:20px 16px 8px; } }
/* album filter tabs: bigger text, tabs sit right on the baseline */
.mi_album_sort { align-items:flex-end; }
.mi_album_sort > a { line-height:0; }
.mi_album_sort li.c-btn { font-size:16px !important; letter-spacing:.25em !important; line-height:1.4 !important; vertical-align:bottom; margin-bottom:0 !important; }
@media (max-width: 767px) { .mi_album_sort li.c-btn { font-size:14px !important; letter-spacing:.15em !important; } }
.contact-modal.bk #form input[type=date] { -webkit-user-select:none; user-select:none; }
.contact-modal.bk #form input[type=date]::-webkit-datetime-edit-year-field:focus, .contact-modal.bk #form input[type=date]::-webkit-datetime-edit-month-field:focus, .contact-modal.bk #form input[type=date]::-webkit-datetime-edit-day-field:focus { background:transparent; color:inherit; }
/* booking: validation messages — Chinese, left aligned, tucked under the field */
.contact-modal.bk #form .error, .contact-modal.bk .error { position:static !important; display:block !important; text-align:left !important; text-transform:none !important; font-size:13px !important; letter-spacing:.08em !important; color:#c0392b !important; margin:-6px 0 20px !important; line-height:1.4; }
.contact-modal.bk .error:before { content:"＊"; margin-right:2px; }
.contact-modal.bk #form .inputError { border-color:#c0392b !important; }
.contact-modal.bk #form fieldset.bk-step > .error { margin:-4px 0 6px !important; }

/* ================= PACKAGE page: each package is its own framed card ================= */
.pkg-section { padding:0 !important; }
.pkg-section .dividerOT { display:none; }
.pkg-card { max-width:1140px; margin:0 auto 90px !important; padding:64px 56px 0 !important; border:1px solid rgba(255,255,255,.22); position:relative; }
.pkg-section:first-of-type .pkg-card { margin-top:30px !important; }
.pkg-card .work_title { text-align:center; }
.pkg-card .work_title img { width:200px !important; height:200px !important; object-fit:cover; margin:0 auto 26px; display:block; }
.pkg-card .work_title > div:first-of-type { font-family:'CH Didone','CH TC',serif !important; font-size:26px; letter-spacing:.08em; color:#fff; line-height:1.4; }
.pkg-card .work_title > div:last-of-type, .pkg-card .work_title > a { display:block; margin-top:6px; font-size:15px; letter-spacing:.3em; color:#aaa; }
.pkg-card .work_header { padding:56px 0 18px !important; border-bottom:1px solid rgba(255,255,255,.35) !important; font-weight:400 !important; }
.pkg-card .work_header > div:first-child { font-size:18px; letter-spacing:.25em; color:#fff; }
.pkg-card .work_header > div:last-child { margin-top:4px; font-family:'CH Sans','CH TC',sans-serif !important; font-size:11px; letter-spacing:.35em; text-transform:uppercase; color:#999; }
.pkg-card .work_content { padding:26px 6px 0 !important; }
.pkg-card .work_content p { font-size:16px !important; line-height:2.1 !important; color:#ddd; }
.pkg-card .work_price { margin:48px -44px 0; padding:30px 20px !important; border-top:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.04);
  font-family:'CH Didone','CH TC',serif !important; font-size:30px !important; letter-spacing:.1em; color:#fff; }
@media (min-width: 992px) {
  .pkg-card .col-md-4 + .col-md-4 .work_area { border-left:1px solid rgba(255,255,255,.12); }
  .pkg-card .col-md-4 .work_area { padding:0 18px; height:100%; }
  .pkg-card .work_wrapper { display:flex; flex-wrap:wrap; }
  .pkg-card .work_wrapper > .col-md-12 { flex:0 0 100%; }
}
@media (max-width: 767px) {
  .pkg-card { padding:40px 18px 0 !important; margin:0 12px 56px !important; }
  .pkg-card .work_price { margin:36px -6px 0; font-size:24px !important; }
  .pkg-card .work_title img { width:150px !important; height:150px !important; }
}

/* 白紗 / 晚禮服: no breadcrumb under the page title */
html.page-whitedress .mi_breadcrumb, html.page-eveningdress .mi_breadcrumb { display:none !important; }
/* 晚禮服 color filter: same rounded-top tabs as 白紗 */
.mi_album_sort2 { display:flex !important; justify-content:center; align-items:flex-end; flex-wrap:wrap; gap:6px; width:80%; margin:0 auto !important; padding:0 !important; border-bottom:1px solid rgba(255,255,255,.55); }
.mi_album_sort2 li.c-btn { border-radius:14px 14px 0 0 !important; overflow:hidden; margin:0 !important; border-bottom:none !important; position:relative; padding-left:28px !important; padding-right:28px !important;
  font-size:16px !important; letter-spacing:.25em !important; line-height:1.4 !important; }
.mi_album_sort2 li.c-btn a { font-size:16px !important; letter-spacing:.25em !important; }
.mi_album_sort2 .mi_color_container { display:flex; align-items:center; justify-content:center; gap:10px; }
.mi_album_sort2 .mi_color_fill { position:static !important; width:14px !important; height:14px !important; margin:0 !important; flex:0 0 14px; }
.mi_album_sort2 li.c-btn::before { transform-origin:center bottom !important; transform:scale(1,0) !important; }
.mi_album_sort2 li.c-btn:hover::before, .mi_album_sort2 li.c-btn.active::before { transform-origin:center bottom !important; transform:scale(1,1) !important; }
@media (max-width: 767px) { .mi_album_sort2 { width:100%; } .mi_album_sort2 li.c-btn, .mi_album_sort2 li.c-btn a { font-size:14px !important; letter-spacing:.12em !important; padding-left:16px !important; padding-right:16px !important; } }
/* dress pages: same air under the big title; tabs sit ~72px above the photos */
html.page-whitedress .mi_album_sort, html.page-eveningdress .mi_album_sort2 { margin-top:80px !important; }
html.page-eveningdress .mi_album_sort2 { margin-bottom:72px !important; }
html.page-whitedress .mi_album_sort { margin-bottom:-18px !important; }

/* logo diamond: a small star glint that twinkles over the stone */
li.hidden-xs a.logo:after, a.navbar-brand.logo:after {
  content:""; position:absolute; width:18px; height:18px; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23ff8fb8'/%3E%3Cstop offset='.35' stop-color='%23fff1c9'/%3E%3Cstop offset='.5' stop-color='%23ffffff'/%3E%3Cstop offset='.68' stop-color='%2390f4ff'/%3E%3Cstop offset='1' stop-color='%237d8cff'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M10 0 L11.2 8.8 L20 10 L11.2 11.2 L10 20 L8.8 11.2 L0 10 L8.8 8.8 Z' fill='url(%23g)'/%3E%3C/svg%3E") no-repeat center/contain;
  filter:drop-shadow(0 0 2px rgba(255,255,255,.95)) drop-shadow(-2px -2px 4px rgba(255,120,170,.75)) drop-shadow(2px 2px 5px rgba(80,220,255,.8));
  opacity:0; transform:scale(.2) rotate(0deg); animation:ch-glint 3.6s ease-in-out infinite; }
li.hidden-xs a.logo img { width:63px !important; height:auto !important; } /* logo +5% */
li.hidden-xs a.logo:after { left:calc(15px + 63px * .745 - 9px); top:calc(26px + 30.3px * .5 - 9px); }
a.navbar-brand.logo:after { animation-delay:.4s; }
@keyframes ch-glint {
  0%, 62% { opacity:0; transform:scale(.2) rotate(0deg); }
  72% { opacity:1; transform:scale(1) rotate(45deg); }
  80% { opacity:.85; transform:scale(.7) rotate(70deg); }
  90%, 100% { opacity:0; transform:scale(.2) rotate(90deg); }
}
@media (prefers-reduced-motion: reduce) { li.hidden-xs a.logo:after, a.navbar-brand.logo:after { animation:none; } }

/* package page: first card clears the fixed top bar */
html.page-package .pkg-section:first-of-type .pkg-card { margin-top:150px !important; }
@media (max-width: 880px) { html.page-package .pkg-section:first-of-type .pkg-card { margin-top:96px !important; } }

/* footer logo: the diamond glints once when it scrolls into view */
.footer-credits-logo a { position:relative; display:inline-block; line-height:0; }
.footer-credits-logo a:after { content:""; position:absolute; left:74.5%; top:50%; width:40px; height:40px; margin:-20px 0 0 -20px; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23ff8fb8'/%3E%3Cstop offset='.35' stop-color='%23fff1c9'/%3E%3Cstop offset='.5' stop-color='%23ffffff'/%3E%3Cstop offset='.68' stop-color='%2390f4ff'/%3E%3Cstop offset='1' stop-color='%237d8cff'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M10 0 L11.2 8.8 L20 10 L11.2 11.2 L10 20 L8.8 11.2 L0 10 L8.8 8.8 Z' fill='url(%23g)'/%3E%3C/svg%3E") no-repeat center/contain;
  filter:drop-shadow(0 0 4px rgba(255,255,255,.95)) drop-shadow(-4px -4px 9px rgba(255,120,170,.75)) drop-shadow(4px 4px 11px rgba(80,220,255,.8)); opacity:0; transform:scale(.2); }
.footer-credits-logo a:after { animation:ch-glint 3.6s ease-in-out 1.2s infinite; } /* footer glints on a loop too */
@keyframes ch-glint-once { 0% { opacity:0; transform:scale(.2) rotate(0deg); } 40% { opacity:1; transform:scale(1.1) rotate(45deg); } 60% { opacity:.9; transform:scale(.8) rotate(70deg); } 100% { opacity:0; transform:scale(.2) rotate(90deg); } }

/* contact numbers/email: clean sans figures, easier to read than Didone */
.contact-info-text, .contact-info-text a { font-family:'CH Sans','CH TC',sans-serif !important; letter-spacing:.14em !important; }

/* 立即安排預約試穿服務: quiet hover — lead line reaches toward the text, arrow nudges right, text brightens */
.contact-modal-launcher-wrapper a.button-link { cursor:pointer; }
.contact-modal-launcher-wrapper a.button-link:before { height:1px !important; width:30px !important; transition:width .5s cubic-bezier(.2,.7,.2,1) !important; }
.contact-modal-launcher-wrapper a.button-link:hover:before { width:50px !important; }
.contact-modal-launcher-wrapper a.button-link span { color:#cfcfcf; transition:color .4s ease; }
.contact-modal-launcher-wrapper a.button-link:hover span { color:#fff; }
.contact-modal-launcher-wrapper a.button-link i { transition:left .5s cubic-bezier(.2,.7,.2,1) !important; }
.contact-modal-launcher-wrapper a.button-link:hover i { left:18px !important; }

/* booking modal: rounded corners on the panel, step cards, fields and button */
.contact-modal.bk.open { border-radius:18px; }
.contact-modal.bk fieldset.bk-step { border-radius:16px; }
.contact-modal.bk #form input, .contact-modal.bk #form select, .contact-modal.bk #form textarea { border-radius:10px !important; }
.contact-modal.bk .bk-submit { border-radius:12px; }
@media (max-width: 640px) { .contact-modal.bk.open { border-radius:0; } }

/* dropdown items: hover line sits right under the words, clear of the panel edge */
@media only screen and (min-width: 768px) {
  ul.mi_drop_DOWN_menu li > ul { padding-bottom:16px !important; }
  ul.mi_drop_DOWN_menu li > ul > li > a.link-underline-menu:before { left:26px !important; right:26px !important; width:auto !important; bottom:4px !important; }
}
/* booking intro facts: clearer titles */
.contact-modal.bk .bk-facts li > span:last-child { font-size:18px; font-weight:600; color:#111; letter-spacing:.1em; line-height:1.5; }
.contact-modal.bk .bk-facts em { display:inline-block; margin-top:4px; font-size:13px; font-weight:400; color:#777; letter-spacing:.06em; }
/* package columns: each line is its own item — small diamond marker, left aligned, hairline between items */
.pkg-card .work_content { text-align:left; padding-top:14px !important; }
.pkg-list { list-style:none; margin:0 auto; padding:0; max-width:24em; }
.pkg-list li { position:relative; padding:13px 0 13px 22px; border-bottom:1px solid rgba(255,255,255,.09); list-style:none !important; }
.pkg-list li:last-child { border-bottom:0; }
.pkg-list li:before { content:""; position:absolute; left:2px; top:22px; width:6px; height:6px; background:#fff; transform:rotate(45deg); opacity:.85; }
.pkg-list .pkg-t { display:block; font-size:16px; line-height:1.7; letter-spacing:.06em; color:#f2f2f2; }
.pkg-list .pkg-n { display:block; margin-top:3px; font-size:13px; line-height:1.6; letter-spacing:.06em; color:#9a9a9a; }
@media (max-width: 991px) { .pkg-list { max-width:none; } }
.pkg-list .pkg-t b { font-weight:600; color:#fff; letter-spacing:.04em; }
.pkg-list .pkg-t { color:#d8d8d8; }
.pkg-card .work_header > div:first-child { font-size:20px !important; font-weight:600; }
.pkg-card .work_title { margin-bottom:48px !important; }
.pkg-card .work_header { padding-top:36px !important; }
/* hover caption card: black with white text */
.image-works > .hover-effect { background:rgba(0,0,0,.86) !important; }
.hover-effect .mi_icon-works, .mi_icon-works .cap-t { color:#fff !important; }
.mi_icon-works .cap-d, .mi_icon-works .cap-n { color:#b5b5b5 !important; }
/* top menu: dropdown floats over the page, so hovering DRESS/PHOTO never widens the item or shifts the logo */
@media only screen and (min-width: 768px) {
  ul.mi_drop_DOWN_menu > li { position:relative; }
  ul.mi_drop_DOWN_menu li:hover > ul { position:absolute !important; left:50% !important; top:100% !important; transform:translateX(-50%); min-width:150px; width:max-content; margin-top:12px; z-index:50; }
  ul.mi_drop_DOWN_menu li > ul > li { float:none !important; width:auto !important; }
  ul.mi_drop_DOWN_menu li > ul > li > a { white-space:nowrap; text-align:center; display:block; }
}
@media only screen and (min-width: 768px) {
  ul.mi_drop_DOWN_menu li > ul:before { content:""; position:absolute; left:0; right:0; top:-14px; height:14px; } /* hover bridge over the gap */
}
/* dropdown: forgiving hover — fades in, and stays ~0.3s after the pointer leaves so small slips don't close it */
@media only screen and (min-width: 768px) {
  ul.mi_drop_DOWN_menu > li > ul { display:block !important; position:absolute !important; left:50% !important; top:100% !important; transform:translateX(-50%) translateY(6px);
    min-width:150px; width:max-content; margin-top:12px; z-index:50; background:#000 !important; border:1px solid rgba(255,255,255,.35); padding:10px 0 16px !important;
    opacity:0; visibility:hidden; transition:opacity .25s ease .3s, transform .25s ease .3s, visibility 0s linear .55s; }
  ul.mi_drop_DOWN_menu > li:hover > ul, ul.mi_drop_DOWN_menu > li > ul:hover { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); transition:opacity .2s ease, transform .2s ease, visibility 0s; }
  ul.mi_drop_DOWN_menu > li > ul:before { top:-26px; height:26px; left:-20px; right:-20px; }
}
.contact-modal.bk .bk-contact { list-style:none; margin:22px 0 0; padding:20px 0 0; border-top:1px solid #e3e3e3; }
.contact-modal.bk .bk-contact li { display:flex; gap:18px; align-items:baseline; margin:0 0 10px; font-size:14px; color:#444; }
.contact-modal.bk .bk-contact span { flex:0 0 auto; font-size:12px; letter-spacing:.2em; color:#999; }
.contact-modal.bk .bk-contact a { color:#111; letter-spacing:.08em; text-decoration:none; border-bottom:1px solid transparent; transition:border-color .3s; }
.contact-modal.bk .bk-contact li:first-child a { font-family:'CH Sans','CH TC',sans-serif !important; font-size:16px; letter-spacing:.14em; }
.contact-modal.bk .bk-contact a:hover { border-bottom-color:#111; }
/* inner page titles are now H1 (SEO) — same look as the old H2 */
section h1.section-heading { position:relative; font-family:'CH Didone','CH TC',serif !important; font-size:80px; font-weight:800; text-transform:uppercase; line-height:1.3; text-align:center; color:#fff; padding:0; margin:20px 0 10px; z-index:1; }
@media only screen and (max-width: 880px) { section h1.section-heading { font-size:60px; font-weight:700; } }
@media only screen and (max-width: 640px) { section h1.section-heading { font-size:40px; } }
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* dropdowns never overlap: when the pointer is on another menu item, the previous dropdown fades out right away
   (the short grace delay only applies when leaving the menu bar altogether) */
@media only screen and (min-width: 768px) {
  ul.mi_drop_DOWN_menu:hover > li:not(:hover) > ul:not(:hover) { opacity:0; visibility:hidden; transition:opacity .15s ease, transform .15s ease, visibility 0s linear .15s; }
}
/* service titles: on hover the big English words take on a flowing prism (Siri / diamond) gradient */
.services-number-title { background-image:linear-gradient(100deg, #ffffff 0%, #ffffff 100%); -webkit-background-clip:text; background-clip:text; transition:color .4s ease; }
.services-heading-wrapper:hover .services-number-title {
  color:transparent !important; -webkit-text-fill-color:transparent;
  background-image:linear-gradient(100deg, #ff8fb8 0%, #c79bff 20%, #7d8cff 40%, #6fe3ff 60%, #fff1c9 80%, #ff8fb8 100%);
  background-size:250% 100%; animation:ch-prism 4s linear infinite; }
@keyframes ch-prism { from { background-position:0% 50%; } to { background-position:250% 50%; } }
@media (prefers-reduced-motion: reduce) { .services-heading-wrapper:hover .services-number-title { animation:none; } }
/* homepage HAND MADE panel: more breathing room around the text */
@media (min-width: 992px) {
  html.page-home #about-skills .img-fullwidth-wrapper, html.page-home #about-skills .img-fullwidth { min-height:700px; }
  html.page-home #about-skills .img-fullwidth-bg-light { padding:80px 10% !important; }
  html.page-home #about-skills .about-skills { max-width:30em; margin:0 auto; }
  html.page-home #about-skills .about-skills p { line-height:2.1 !important; }
}

/* 立即安排預約試穿服務 — new treatment: an outlined button; on hover white rises from the bottom (same motion as the filter tabs), text turns black, arrow nudges */
.contact-modal-launcher-wrapper a.button-link { position:relative; display:inline-flex !important; align-items:center; gap:18px; padding:18px 40px !important; border:1px solid rgba(255,255,255,.7); border-radius:999px; overflow:hidden; z-index:0; }
.contact-modal-launcher-wrapper a.button-link:before { content:"" !important; position:absolute !important; left:0 !important; top:0 !important; width:100% !important; height:100% !important; background:#fff !important; transform:scaleY(0); transform-origin:center bottom; transition:transform .5s cubic-bezier(.2,.7,.2,1) !important; z-index:-1; }
.contact-modal-launcher-wrapper a.button-link:hover:before { left:0 !important; width:100% !important; transform:scaleY(1); }
.contact-modal-launcher-wrapper a.button-link span { padding:0 !important; color:#fff; font-size:14px !important; letter-spacing:.35em !important; transition:color .4s ease; }
.contact-modal-launcher-wrapper a.button-link i { position:relative; top:1px !important; left:0 !important; padding:0 !important; font-size:18px !important; color:#fff; transition:transform .5s cubic-bezier(.2,.7,.2,1), color .4s ease !important; }
.contact-modal-launcher-wrapper a.button-link:hover span, .contact-modal-launcher-wrapper a.button-link:hover i { color:#111 !important; }
.contact-modal-launcher-wrapper a.button-link:hover i { left:0 !important; transform:translateX(6px); }
@media (max-width: 640px) { .contact-modal-launcher-wrapper a.button-link { padding:14px 26px !important; gap:12px; } .contact-modal-launcher-wrapper a.button-link span { font-size:12px !important; letter-spacing:.2em !important; } }
/* HAND MADE photo: keep the designer on the left in frame */
html.page-home #about-skills .img-fullwidth-about-skills { background-position:12% 30% !important; }
/* footer: logo on top, booking button below it */
#credits .footer-cta { margin:48px auto 44px !important; }
/* package price band: hover inverts, click opens booking */
.pkg-card .work_price { cursor:pointer; transition:background .45s ease, color .45s ease; }
.pkg-card .work_price:after { content:"預約試穿 →"; display:block; margin-top:8px; font-family:'CH Sans','CH TC',sans-serif; font-size:13px; letter-spacing:.35em; color:#999; transition:color .45s ease; }
.pkg-card .work_price:hover { background:#fff !important; color:#000 !important; }
.pkg-card .work_price:hover:after { color:#000; }
.pkg-card .work_price::selection { background:transparent; }
.pkg-card .work_price { -webkit-user-select:none; user-select:none; }
/* HAND MADE photo on desktop: zoom in on the designer so she is the subject, not the bride */
@media (min-width: 992px) { html.page-home #about-skills .img-fullwidth-about-skills { background-size:165% auto !important; background-position:2% 22% !important; } }
/* footer: social icons sit at the very bottom, just above the copyright line */
#credits .social-icons-wrapper { margin-top:80px !important; }
#credits .dividerOT.out-bottom { height:84px !important; min-height:0 !important; padding:0 !important; }
/* booking CTA: faster bottom-to-top fill */
.contact-modal-launcher-wrapper a.button-link:before { transition:transform .25s cubic-bezier(.3,.7,.3,1) !important; }
.contact-modal-launcher-wrapper a.button-link span { transition:color .2s ease !important; }
.contact-modal-launcher-wrapper a.button-link i { transition:transform .25s cubic-bezier(.3,.7,.3,1), color .2s ease !important; }
.pkg-card .work_price:after { content:none !important; display:none !important; }
.services-heading-wrapper { cursor:pointer; }
/* mobile: album filter tabs stay on one row (swipe if needed) instead of stacking */
@media (max-width: 767px) {
  .mi_album_sort, .mi_album_sort2 { flex-wrap:nowrap !important; justify-content:safe center !important; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none; gap:4px !important; width:100% !important; padding:0 4px !important; }
  .mi_album_sort::-webkit-scrollbar, .mi_album_sort2::-webkit-scrollbar { display:none; }
  .mi_album_sort > a, .mi_album_sort2 > li, .mi_album_sort li.c-btn, .mi_album_sort2 li.c-btn { flex:0 0 auto; }
  .mi_album_sort li.c-btn, .mi_album_sort2 li.c-btn { padding-left:12px !important; padding-right:12px !important; border-radius:10px 10px 0 0 !important; white-space:nowrap; }
  .mi_album_sort li.c-btn, .mi_album_sort2 li.c-btn, .mi_album_sort2 li.c-btn a { font-size:13px !important; letter-spacing:.08em !important; }
  .mi_album_sort2 .mi_color_container { gap:6px; }
  .mi_album_sort2 .mi_color_fill { width:10px !important; height:10px !important; flex-basis:10px; }
  html.page-whitedress .mi_album_sort, html.page-eveningdress .mi_album_sort2 { margin-top:40px !important; }
}
/* mobile header logo: pin the glint onto the diamond */
a.navbar-brand.logo { position:relative !important; }
a.navbar-brand.logo:after { left:calc(15px + 80px * .745 - 9px); top:calc(15px + 39px * .5 - 9px); }
/* mobile menu: clear two-tier hierarchy */
@media (max-width: 767px) {
  #navbar-collapse { background:#000 !important; border-top:1px solid rgba(255,255,255,.14) !important; padding:6px 28px 36px !important; max-height:calc(100vh - 70px) !important; overflow-y:auto !important; box-shadow:none !important; }
  #navbar-collapse .mi_drop_DOWN_menu { display:block !important; float:none !important; width:100% !important; margin:0 !important; padding:0 !important; }
  #navbar-collapse .mi_drop_DOWN_menu > li { float:none !important; display:block !important; position:static !important; width:auto !important; margin:0 !important; padding:0 !important; border-bottom:1px solid rgba(255,255,255,.14); text-align:left !important; }
  #navbar-collapse .mi_drop_DOWN_menu > li.hidden-xs { display:none !important; }
  #navbar-collapse .mi_drop_DOWN_menu > li > a { display:block !important; position:relative; padding:22px 0 !important; margin:0 !important; border:0 !important; background:none !important; font-size:15px !important; letter-spacing:.32em !important; line-height:1.2 !important; color:#fff !important; text-align:left !important; width:auto !important; height:auto !important; }
  #navbar-collapse .mi_drop_DOWN_menu a:before, #navbar-collapse .mi_drop_DOWN_menu a:after { display:none !important; }
  /* group heads (DRESS / PHOTO): small grey label, children listed under it */
  #navbar-collapse .mi_drop_DOWN_menu > li > a.menu_line { padding:22px 0 12px !important; font-size:11px !important; letter-spacing:.4em !important; color:#8a8a8a !important; pointer-events:none; }
  #navbar-collapse .mi_menu_2 { position:static !important; display:grid !important; grid-template-columns:1fr 1fr; gap:0 20px; float:none !important; width:auto !important; margin:0 !important; padding:0 0 14px !important; border:0 !important; background:none !important; opacity:1 !important; visibility:visible !important; transform:none !important; box-shadow:none !important; left:auto !important; top:auto !important; }
  #navbar-collapse .mi_menu_2 > li { float:none !important; display:block !important; width:auto !important; margin:0 !important; padding:0 !important; border:0 !important; text-align:left !important; }
  #navbar-collapse .mi_menu_2 > li > a { display:flex !important; align-items:center; gap:12px; padding:11px 0 !important; margin:0 !important; border:0 !important; background:none !important; font-size:15px !important; letter-spacing:.18em !important; line-height:1.4 !important; color:#fff !important; text-align:left !important; }
  #navbar-collapse .mi_menu_2 > li > a:before { content:"" !important; display:block !important; position:static !important; width:10px !important; height:1px !important; background:rgba(255,255,255,.45) !important; flex:0 0 10px; }
  /* booking: full-width pill at the bottom */
  #navbar-collapse .mi_drop_DOWN_menu > li:last-child { border-bottom:0; padding-top:28px !important; }
  #navbar-collapse .mi_drop_DOWN_menu > li > a.booking-cell { text-align:center !important; padding:16px 0 !important; border:1px solid rgba(255,255,255,.8) !important; border-radius:999px; font-size:13px !important; letter-spacing:.4em !important; }
}
@media (max-width: 767px) {
  #navbar-collapse .mi_drop_DOWN_menu a { float:none !important; }
  #navbar-collapse .mi_menu_2 { width:100% !important; }
  #navbar-collapse .mi_menu_2:before, #navbar-collapse .mi_menu_2:after { display:none !important; }
  #navbar-collapse .mi_menu_2 > li > a { width:100% !important; white-space:nowrap !important; }
  #navbar-collapse .mi_menu_2 > li > a:before { background:rgba(255,255,255,.6) !important; }
  #navbar-collapse .mi_drop_DOWN_menu > li > a.booking-cell { position:static !important; left:auto !important; top:auto !important; right:auto !important; width:100% !important; transform:none !important; }
  #navbar-collapse.in { min-height:calc(100vh - 62px); }
}
/* mobile: no sideways wobble from bootstrap rows */
/* (no html overflow rule: it would turn <body> into its own scroller and break scroll-triggered effects) */
/* mobile: filter tabs become a 2-column grid of pills (overrides the swipe row above) */
@media (max-width: 767px) {
  .mi_album_sort, .mi_album_sort2 { display:grid !important; grid-template-columns:1fr 1fr; gap:10px !important; overflow:visible !important; border-bottom:0 !important; width:auto !important; padding:0 20px !important; }
  .mi_album_sort li.c-btn, .mi_album_sort2 li.c-btn { width:100% !important; border-radius:999px !important; border:1px solid rgba(255,255,255,.75) !important; text-align:center; padding-top:10px !important; padding-bottom:10px !important; display:flex !important; align-items:center; justify-content:center; height:auto !important; }
  .mi_album_sort li.c-btn::before, .mi_album_sort2 li.c-btn::before { transform-origin:center center !important; }
  .mi_album_sort > a { display:block; width:100%; }
  html.page-eveningdress .mi_album_sort2 { margin-bottom:36px !important; }
  html.page-whitedress .mi_album_sort { margin-bottom:24px !important; }
}
/* mobile services: no side frame bars covering text; each service separated with air + hairline */
@media (max-width: 767px) {
  .border-left, .border-right { display:none !important; }
  .services-padding { margin-top:0 !important; margin-bottom:0 !important; padding:56px 28px 48px !important; }
  .services-padding + .services-padding, .row + .row > .services-padding:first-child { border-top:1px solid rgba(255,255,255,.18); }
  .services-padding .services-heading-wrapper { margin-bottom:26px !important; }
  .services-padding .services-top-txt { padding:0 !important; margin:0 !important; font-size:15px !important; line-height:2 !important; }
  .border-left-services, .border-top-services { border-left:0 !important; }
}
/* mobile: theme gives .sections 10px side padding but rows pull -15px -> 5px sideways overflow */
@media (max-width: 767px) { .sections { padding-left:15px !important; padding-right:15px !important; } .services-columns { padding-left:15px; padding-right:15px; } }
/* mobile HAND MADE: designer in frame, breathing room around the text */
@media (max-width: 991px) {
  html.page-home #about-skills .img-fullwidth-about-skills { background-size:cover !important; background-position:15% 25% !important; }
  html.page-home #about-skills .img-fullwidth-bg-light { padding:56px 28px 64px !important; height:auto !important; }
  html.page-home #about-skills .about-skills p { font-size:15px !important; line-height:2 !important; }
}
/* mobile package card: fully inside the screen */
@media (max-width: 767px) {
  .pkg-card { box-sizing:border-box; width:auto !important; max-width:none !important; margin:0 16px 56px !important; padding:44px 20px 0 !important; }
  .pkg-section:first-of-type .pkg-card { margin-top:96px !important; }
  .pkg-card .row { margin-left:0 !important; margin-right:0 !important; }
  .pkg-card .work_price { margin:32px -20px 0 !important; }
}
/* touch screens: the prism + underline switch on by themselves while a service title sits in the middle of the screen */
.services-heading-wrapper.ch-inview .services-number-title {
  color:transparent !important; -webkit-text-fill-color:transparent;
  background-image:linear-gradient(100deg, #ff8fb8 0%, #c79bff 20%, #7d8cff 40%, #6fe3ff 60%, #fff1c9 80%, #ff8fb8 100%);
  background-size:250% 100%; animation:ch-prism 4s linear infinite; }
.services-heading-wrapper.ch-inview .link-underline:before { visibility:visible !important; transform:scaleX(1) !important; }
/* mobile menu: breathing room between the logo and the menu's top line */
@media (max-width: 767px) { #navbar-collapse { margin-top:18px !important; } #navbar-collapse.in { min-height:calc(100vh - 80px); } }
/* mobile hamburger: staggered lines, morphs into an X when the menu is open */
.navbar-toggle .icon-bar { transition:transform .35s cubic-bezier(.2,.7,.2,1), opacity .25s ease, width .35s cubic-bezier(.2,.7,.2,1) !important; transform-origin:center; margin-left:auto !important; }
.navbar-toggle.collapsed .icon-bar:nth-of-type(3) { width:16px !important; }
.navbar-toggle.collapsed .icon-bar:nth-of-type(4) { width:10px !important; }
.navbar-toggle.collapsed:hover .icon-bar { width:22px !important; }
.navbar-toggle:not(.collapsed) .icon-bar { width:22px !important; }
.navbar-toggle:not(.collapsed) .icon-bar:nth-of-type(2) { transform:translateY(6px) rotate(45deg); }
.navbar-toggle:not(.collapsed) .icon-bar:nth-of-type(3) { opacity:0; transform:scaleX(0); }
.navbar-toggle:not(.collapsed) .icon-bar:nth-of-type(4) { transform:translateY(-6px) rotate(-45deg); }
@media (max-width: 767px) { #navbar-collapse.in, #navbar-collapse.collapsing { box-shadow:0 -18px 0 #000, 0 -1px 0 #000 !important; } }
/* gradient text is painted only inside the box: give descenders (g, p, y) room so they aren't sliced off */
.services-number-title { padding-bottom:.16em !important; margin-bottom:-.16em !important; padding-top:.04em !important; margin-top:-.04em !important; }
/* "scroll down" arrow: only a hint at the very top, fades away once the visitor starts scrolling */
.scroll-indicator { transition:opacity .4s ease, visibility 0s linear 0s; }
html.ch-scrolled .scroll-indicator { opacity:0 !important; visibility:hidden !important; pointer-events:none !important; transition:opacity .4s ease, visibility 0s linear .4s; }
/* mobile HAND MADE (fix 2026-11-06): the text panel was absolutely positioned inside a 500px box, so the longer text ran past it and got covered by the next section — let it grow with its text */
@media (max-width: 991px) {
  html.page-home #about-skills .col-md-6:last-child .img-fullwidth-wrapper { min-height:0 !important; height:auto !important; }
  html.page-home #about-skills .img-fullwidth-bg-light { position:relative !important; top:auto !important; bottom:auto !important; min-height:0 !important; height:auto !important; }
}
/* mobile menu open: no scrollbar strip on the right, and the bottom ▼ scroll button hides so it can't sit on BOOKING */
@media (max-width: 767px) {
  #navbar-collapse { scrollbar-width:none; -ms-overflow-style:none; }
  #navbar-collapse::-webkit-scrollbar { display:none; width:0; height:0; }
  html.menu-open .scroll-indicator, html:has(#navbar-collapse.in) .scroll-indicator { display:none !important; }
  #navbar-collapse { padding-bottom:48px !important; }
}
/* mobile menu open: the whole screen behind the menu is solid black (no strip of the page peeking through on the right) */
@media (max-width: 767px) {
  html.menu-open nav.navbar-fixed-top, html:has(#navbar-collapse.in) nav.navbar-fixed-top { background:#000 !important; }
}
/* mobile menu: BOOKING sits a bit lower, set apart from the list */
@media (max-width: 767px) { #navbar-collapse .mi_drop_DOWN_menu > li:last-child { padding-top:64px !important; } }
@media (max-width: 767px) { #navbar-collapse .mi_drop_DOWN_menu > li > a.booking-cell { background:#fff !important; color:#000 !important; border-color:#fff !important; } }
/* breadcrumb under page titles: only the last item stays, as a quiet subtitle (dress pages hide it entirely) */
.mi_breadcrumb > i, .mi_breadcrumb > li:not(:last-child) { display:none !important; }
.mi_breadcrumb > li:last-child { display:inline-block !important; font-size:16px !important; letter-spacing:.2em !important; color:#fff !important; }
.mi_breadcrumb > li:last-child:before, .mi_breadcrumb > li:last-child:after { content:none !important; display:none !important; }
/* booking modal: no scrollbar strip on the right edge, so both sides match (still scrolls by wheel/touch) */
.contact-modal.bk { scrollbar-width:none; -ms-overflow-style:none; }
.contact-modal.bk::-webkit-scrollbar { display:none; width:0; height:0; }
/* desktop dropdown: sits further below the menu bar (hover bridge grows with the gap) */
@media only screen and (min-width: 768px) {
  ul.mi_drop_DOWN_menu > li > ul { margin-top:30px !important; }
  ul.mi_drop_DOWN_menu > li > ul:before { top:-44px !important; height:44px !important; }
}
/* mobile: no scroll-down arrow at all */
@media (max-width: 767px) { .scroll-indicator, .scroll-indicator-wrapper { display:none !important; } }
/* service titles (Wedding Dress / Evening Dress …): the old theme forces a fixed 300/400px width that is wider than a phone column, so the words sat off to the right — use the column's own width so they center */
.services-heading-wrapper .services-number-title { width:100% !important; max-width:100% !important; left:auto !important; right:auto !important; margin-left:0 !important; margin-right:0 !important; text-align:center !important; }
/* touch screens (phones): the caption card (項目/日期/編號) fades in and out smoothly along with the scroll — fully shown while the photo is around the middle of the screen; no tap needed, a tap can't leave it stuck */
@media (hover: none) {
  .image-works > .hover-effect, .image-works:hover > .hover-effect { transform:translateY(calc((1 - var(--ch-a, 0)) * 24px)) !important; opacity:var(--ch-a, 0) !important; transition:opacity .6s cubic-bezier(.25,.6,.3,1), transform .6s cubic-bezier(.25,.6,.3,1) !important; will-change:opacity, transform; }
  .image-works .mei-img, .image-works:hover .mei-img { transform:scale(calc(1 + var(--ch-a, 0) * .04)) !important; transition:transform .9s cubic-bezier(.25,.6,.3,1) !important; }
}
/* mobile package card: the theme's ".sections { width:100% !important }" loads later and won, so card + side margins ran past the right edge — win it back with a more specific selector */
@media (max-width: 767px) { .container.sections.pkg-card { width:auto !important; max-width:none !important; box-sizing:border-box !important; } }
/* gallery photos before they load: a dark-grey frame in the photo's own shape — never a white box or a broken-image icon — then the photo fades in */
.image-works, .mi_img { background:#1c1c1c; }
.mi_img { display:block; overflow:hidden; }
.mi_img > img.jsElemImg { display:block; width:100%; height:100%; object-fit:cover; }
img.jsElemImg:not([src]), img.jsElemImg[src=""] { visibility:hidden; }
html.ch-fade img.jsElemImg { opacity:0; transition:opacity .6s ease; }
html.ch-fade img.jsElemImg.ch-loaded { opacity:1; }
/* 白紗 and 晚禮服: same gap between the filter buttons and the first photo */
@media (max-width: 767px) { html.page-whitedress .mi_album_sort { margin-bottom:36px !important; } }
/* homepage 3-photo collage (desktop): photos push in one by one as you scroll down — left one from the left, middle one from below, right one from the right */
@media only screen and (min-width: 1024px) {
  html.ch-push .section-about .about-section-img { opacity:var(--ch-p, 0); transition:transform .7s cubic-bezier(.22,.7,.25,1), opacity .7s ease; will-change:transform, opacity; }
  html.ch-push .section-about .about-section-img:nth-of-type(1) { transform:translateX(calc((1 - var(--ch-p, 0)) * -160px)); }
  html.ch-push .section-about .about-section-img:nth-of-type(2) { transform:translateY(calc((1 - var(--ch-p, 0)) * 180px)); }
  html.ch-push .section-about .about-section-img:nth-of-type(3) { transform:translateX(calc((1 - var(--ch-p, 0)) * 160px)); }
}
@media (prefers-reduced-motion: reduce) { html.ch-push .section-about .about-section-img { opacity:1 !important; transform:none !important; } }
/* service descriptions: the text block has a max width but sat flush left — center the block under its title (shows on tablet / narrow windows) */
.services-padding .services-top-txt { margin-left:auto !important; margin-right:auto !important; }
/* about-photo carousel arrows: black squares with white arrows (theme had white with black) */
.about-section-images-carousel .owl-prev:before, .about-section-images-carousel .owl-next:before { background:rgba(0,0,0,.82) !important; }
.about-section-images-carousel .owl-prev, .about-section-images-carousel .owl-next, .about-section-images-carousel .owl-custom { color:#fff !important; }
/* desktop service grid: the cross-shaped divider lines 15% fainter */
.services-columns .border-left-services { border-left-color:rgba(224,224,224,.85) !important; }
.services-columns .border-top-services:after { border-bottom-color:rgba(224,224,224,.85) !important; }
/* opened photo (PhotoSwipe): caption shows 項目 / 日期 / 編號 under the photo */
.pswp__caption { background:rgba(0,0,0,.72) !important; }
.pswp__caption__center { text-align:center !important; max-width:none !important; padding:14px 16px 18px !important; }
.pswp__caption__center h4 { margin:0 !important; font-weight:400 !important; color:#fff !important; display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; gap:6px 16px; }
.pswp__caption__center .pswp-cap-t { font-size:16px; letter-spacing:.2em; }
.pswp__caption__center .pswp-cap-d, .pswp__caption__center .pswp-cap-n { font-family:'CH Sans','CH TC',sans-serif; font-size:12px; letter-spacing:.3em; color:#c8c8c8; text-transform:uppercase; }
.pswp__caption__center h4:empty { display:none; }
/* opened photo caption, final look: small grey text in the bottom-left corner, no bar */
.pswp__caption { background:transparent !important; }
.pswp__caption__center { text-align:left !important; padding:0 20px 18px !important; }
.pswp__caption__center h4 { justify-content:flex-start; gap:4px 12px; }
.pswp__caption__center .pswp-cap-t { font-size:12px; letter-spacing:.18em; color:#9a9a9a; }
.pswp__caption__center .pswp-cap-d, .pswp__caption__center .pswp-cap-n { font-size:11px; color:#9a9a9a; }
/* photo viewer: no share button / share menu */
.pswp__button--share, .pswp__share-modal, .pswp__share-tooltip { display:none !important; }
/* photo viewer toolbar trimmed to what people use: close, counter, prev/next arrows.
   zoom button -> pinch (phone) / click the photo (desktop) already zooms; fullscreen -> unsupported on iPhone and rarely used on desktop */
.pswp__button--zoom, .pswp__button--fs { display:none !important; }
/* photo viewer: the dress number sits up in the top bar, where the share button used to be (left of the close X) */
.pswp__caption { top:0 !important; bottom:auto !important; left:auto !important; right:50px !important; width:auto !important; min-height:44px !important; display:flex; align-items:center; background:transparent !important; z-index:1700; }
.pswp__caption__center { padding:0 10px !important; text-align:right !important; }
.pswp__caption__center h4 { flex-wrap:nowrap; justify-content:flex-end; white-space:nowrap; gap:10px; }
.pswp__caption__center .pswp-cap-t, .pswp__caption__center .pswp-cap-d { display:none; }
.pswp__caption__center .pswp-cap-n { font-size:12px; letter-spacing:.25em; color:#8a8a8a; }
/* gallery grid: rows are as tall as the tallest (portrait) photo — a landscape photo now sits centered on black
   in its card instead of on a white block underneath */
.mei-list .image-works { background:#000 !important; display:flex !important; flex-direction:column; justify-content:center; }
.mei-list .image-works > a.mi_img { flex:0 0 auto; width:100%; }
/* desktop/tablet: breathing room between the filter tabs' baseline and the first row of photos (白紗 and 晚禮服 the same) */
@media (min-width: 768px) { html.page-whitedress .mi_album_sort, html.page-eveningdress .mi_album_sort2 { margin-bottom:72px !important; } }
/* gallery list: landscape photos are shown in a portrait (2:3) frame, cropped to the centre; tapping opens the full landscape photo */
.mei-list .mi_img > img.jsElemImg { object-fit:cover; object-position:50% 40%; }
/* ===== phone: 白紗 / 晚禮服 easier to browse ===== */
@media (max-width: 767px) {
  /* two photos per row */
  html.page-eveningdress .mei-list, html.page-whitedress .mei-list { padding:6px !important; }
  html.page-eveningdress .mei-list li, html.page-whitedress .mei-list li { width:50% !important; padding:4px !important; }
  /* small cells: the caption card shows only the dress number */
  html.page-eveningdress .mei-list .hover-effect, html.page-whitedress .mei-list .hover-effect { padding:8px 6px !important; border-radius:8px 8px 0 0 !important; }
  html.page-eveningdress .mei-list .cap-t, html.page-eveningdress .mei-list .cap-d,
  html.page-whitedress .mei-list .cap-t, html.page-whitedress .mei-list .cap-d { display:none !important; }
  html.page-eveningdress .mei-list .cap-n, html.page-whitedress .mei-list .cap-n { margin:0 !important; font-size:10px !important; letter-spacing:.12em !important; line-height:1.4 !important; }
  /* filter buttons stay at the top while scrolling; once stuck they shrink to one swipeable row */
  .ch-filter-bar { position:relative; }
  .ch-filter-bar.ch-stuck .mi_album_sort, .ch-filter-bar.ch-stuck .mi_album_sort2 {
    display:flex !important; flex-wrap:nowrap !important; overflow-x:auto !important; gap:6px !important;
    margin:0 !important; padding:8px 12px !important; scrollbar-width:none; justify-content:flex-start !important; }
  .ch-filter-bar.ch-stuck .mi_album_sort::-webkit-scrollbar, .ch-filter-bar.ch-stuck .mi_album_sort2::-webkit-scrollbar { display:none; }
  .ch-filter-bar.ch-stuck .mi_album_sort > a, .ch-filter-bar.ch-stuck li.c-btn { flex:0 0 auto !important; width:auto !important; }
  .ch-filter-bar.ch-stuck li.c-btn { padding:6px 14px !important; font-size:12px !important; letter-spacing:.1em !important; }
  .ch-filter-bar.ch-stuck li.c-btn a { font-size:12px !important; }
  .ch-filter-bar.ch-stuck { border-bottom:1px solid rgba(255,255,255,.12); }
}
/* phone, stuck filter row: small enough that every button fits on screen (nothing cut off at the edge) */
@media (max-width: 767px) {
  .ch-filter-bar.ch-stuck .mi_album_sort, .ch-filter-bar.ch-stuck .mi_album_sort2 { gap:4px !important; padding:6px 8px !important; justify-content:center !important; overflow-x:auto !important; }
  .ch-filter-bar.ch-stuck li.c-btn { padding:4px 9px !important; min-height:0 !important; height:auto !important; font-size:11px !important; letter-spacing:.06em !important; line-height:1.4 !important; }
  .ch-filter-bar.ch-stuck li.c-btn a { font-size:11px !important; letter-spacing:.06em !important; line-height:1.4 !important; padding:0 !important; }
  .ch-filter-bar.ch-stuck .mi_color_container { gap:4px !important; }
  .ch-filter-bar.ch-stuck .mi_color_fill { width:7px !important; height:7px !important; flex-basis:7px !important; }
  .ch-filter-bar.ch-stuck li.c-btn.mi_pl35 { padding-left:9px !important; }
}
/* phone, stuck filter row: sits above the header's black band so the buttons' top outline isn't clipped; hidden while the menu is open */
@media (max-width: 767px) {
  .ch-filter-bar.ch-stuck { z-index:1000 !important; padding-top:4px; }
  html.menu-open .ch-filter-bar, html:has(#navbar-collapse.in) .ch-filter-bar { visibility:hidden; }
}

/* phone: a separate compact filter row slides/fades in under the header once the page's own buttons scroll away
   (no jump in the page — the original buttons never change size) */
.ch-mini-bar { display:none; }
@media (max-width: 767px) {
  .ch-mini-bar { display:block; position:fixed; left:0; right:0; top:var(--ch-head, 64px); z-index:1000; background:rgba(0,0,0,.92);
    -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom:1px solid rgba(255,255,255,.12);
    opacity:0; transform:translateY(-10px); pointer-events:none; transition:opacity .35s ease, transform .35s cubic-bezier(.2,.7,.2,1); will-change:opacity, transform; }
  .ch-mini-bar.on { opacity:1; transform:none; pointer-events:auto; }
  html.menu-open .ch-mini-bar, html:has(#navbar-collapse.in) .ch-mini-bar { opacity:0 !important; pointer-events:none !important; }
  .ch-mini-bar ul { display:flex !important; flex-wrap:nowrap !important; gap:4px !important; overflow-x:auto; justify-content:center; margin:0 !important; padding:8px 8px !important; border:0 !important; width:auto !important; scrollbar-width:none; list-style:none; }
  .ch-mini-bar ul::-webkit-scrollbar { display:none; }
  .ch-mini-bar ul > a, .ch-mini-bar li.c-btn { flex:0 0 auto !important; width:auto !important; }
  .ch-mini-bar li.c-btn { padding:4px 9px !important; height:auto !important; min-height:0 !important; font-size:11px !important; letter-spacing:.06em !important; line-height:1.4 !important; border-radius:999px !important; margin:0 !important; }
  .ch-mini-bar li.c-btn a { font-size:11px !important; letter-spacing:.06em !important; line-height:1.4 !important; padding:0 !important; }
  .ch-mini-bar .mi_color_container { display:flex; align-items:center; gap:4px !important; }
  .ch-mini-bar .mi_color_fill { width:7px !important; height:7px !important; flex-basis:7px !important; }
}
@media (max-width: 767px) {
  html body .ch-mini-bar ul.mi_album_sort, html body .ch-mini-bar ul.mi_album_sort2 { margin:0 !important; padding:8px !important; display:flex !important; }
}
/* phone two-column lists: layered reveal is done in the scroll script (right-hand card reaches full a little later in the scroll) — no timed delay, which stalled while scrolling */
/* phone mini filter row: above every header layer (the theme's #header sits at z-index 1001) so nothing clips its top */
@media (max-width: 767px) { .ch-mini-bar { z-index:1002 !important; padding-top:2px; } }
/* phone mini filter row: never clip the buttons (no scroll box around them; they fit on one line) */
@media (max-width: 767px) {
  html body .ch-mini-bar ul.mi_album_sort, html body .ch-mini-bar ul.mi_album_sort2 { overflow:visible !important; padding:10px 6px !important; align-items:center !important; flex-wrap:nowrap !important; }
  .ch-mini-bar li.c-btn { padding:4px 8px !important; box-sizing:border-box; }
  .ch-mini-bar li.c-btn::before { border-radius:999px !important; }
}

/* footer copyright line inside the footer (home + package), always visible at the very bottom */
.ch-foot-copy { margin-top:36px; padding-bottom:8px; color:#e6e6e6; font-family:'CH Sans','CH TC',sans-serif !important; font-size:11px; letter-spacing:.28em; text-transform:uppercase; font-weight:600; }
@media (max-width: 767px) { .ch-foot-copy { font-size:9px; letter-spacing:.15em; margin-top:28px; } }
html.page-home .bottom-credits.bottom-credits-home-call, html.page-package .bottom-credits.bottom-credits-home-call { opacity:0 !important; }

/* ===== Package page on phone: overview list, price up top, folded details, plan chips bar ===== */
.pkg-nav, .pkg-price-top, .pkg-mini { display:none; }
@media (max-width: 767px) {
  .pkg-nav { display:block; margin:92px 12px 28px; border:1px solid rgba(255,255,255,.22); padding:20px 18px 8px; }
  .pkg-nav-h { text-align:center; font-size:17px; letter-spacing:.3em; color:#fff; font-weight:600; margin-bottom:10px; }
  .pkg-nav-h span { display:block; margin-top:4px; font-size:11px; letter-spacing:.2em; color:#888; font-weight:400; }
  .pkg-nav ul { list-style:none; margin:0; padding:0; }
  .pkg-nav li { list-style:none !important; border-top:1px solid rgba(255,255,255,.1); }
  .pkg-nav li:first-child { border-top:0; }
  .pkg-nav a { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:15px 2px; color:#eee !important; text-decoration:none !important; }
  .pkg-nav a .n { font-family:'CH Didone','CH TC',serif; font-size:16px; letter-spacing:.06em; }
  .pkg-nav a .p { font-family:'CH Sans','CH TC',sans-serif; font-size:14px; letter-spacing:.08em; color:#fff; white-space:nowrap; }
  .pkg-nav a .p:after { content:"›"; margin-left:10px; color:#777; font-size:18px; }
  html.page-package .pkg-section:first-of-type .pkg-card { margin-top:0 !important; }
  .pkg-section { position:relative; }
  .pkg-anchor { position:absolute; top:calc(-1 * (var(--ch-head, 66px) + 58px)); left:0; }

  .pkg-card .work_title { margin-bottom:20px !important; }
  .pkg-card .work_title img { width:110px !important; height:110px !important; margin-bottom:18px; }
  .pkg-card .work_title .pkg-price-top { display:block !important; margin:14px 0 0 !important; font-family:'CH Sans','CH TC',sans-serif !important; font-size:22px !important; letter-spacing:.12em !important; color:#fff !important; }

  .pkg-fold .work_header { position:relative; cursor:pointer; padding:20px 30px 16px 0 !important; text-align:left; -webkit-tap-highlight-color:transparent; }
  .pkg-fold .work_header:after { content:""; position:absolute; right:6px; top:50%; width:9px; height:9px; margin-top:-8px; border-right:1px solid #ccc; border-bottom:1px solid #ccc; transform:rotate(45deg); transition:transform .35s ease, margin .35s ease; }
  .pkg-fold.open .work_header:after { transform:rotate(-135deg); margin-top:-2px; }
  .pkg-fold .work_content { overflow:hidden; max-height:0; padding-top:0 !important; transition:max-height .45s ease, padding .45s ease; }
  .pkg-fold.open .work_content { padding-top:10px !important; }

  .pkg-mini { display:block; position:fixed; left:0; right:0; top:var(--ch-head, 66px); z-index:1002; background:rgba(0,0,0,.92); border-bottom:1px solid rgba(255,255,255,.12);
    opacity:0; transform:translateY(-8px); pointer-events:none; transition:opacity .35s ease, transform .35s ease; }
  .pkg-mini.on { opacity:1; transform:none; pointer-events:auto; }
  html.menu-open .pkg-mini { opacity:0 !important; pointer-events:none !important; }
  .pkg-mini ul { display:flex; gap:8px; overflow-x:auto; margin:0; padding:10px 12px; list-style:none; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .pkg-mini ul::-webkit-scrollbar { display:none; }
  .pkg-mini li { list-style:none !important; flex:0 0 auto; }
  .pkg-mini a { display:block; padding:6px 13px; border:1px solid rgba(255,255,255,.35); border-radius:999px; font-size:12px; letter-spacing:.06em; color:#ddd !important; text-decoration:none !important; white-space:nowrap; transition:background .3s ease, color .3s ease; }
  .pkg-mini a.cur { background:#fff; color:#000 !important; border-color:#fff; }
}

/* prices: clean sans digits (Bodoni's hairline numerals were hard to read) */
.pkg-nav a .p, .pkg-card .work_title .pkg-price-top, .pkg-card .work_price { font-family:'CH Sans','Helvetica Neue',Arial,sans-serif !important; font-variant-numeric:lining-nums tabular-nums; font-feature-settings:"lnum" 1, "tnum" 1; }
.pkg-nav a .p { font-size:16px !important; letter-spacing:.04em !important; color:#fff !important; }
.pkg-nav a .p small { font-size:11px; letter-spacing:.12em; color:#aaa; margin-right:5px; }
.pkg-card .work_title .pkg-price-top { font-size:24px !important; letter-spacing:.04em !important; }
.pkg-card .work_title .pkg-price-top small, .pkg-card .work_price small { font-size:.5em; letter-spacing:.15em; color:#aaa; margin-right:6px; vertical-align:.25em; }
.pkg-card .work_price { letter-spacing:.05em !important; }
/* home + package already carry the copyright inside the footer: drop the floating copy that covered the last 50px */
html.page-home .bottom-credits, html.page-package .bottom-credits { display:none !important; }
.contact-modal.bk .bk-close { z-index:30; will-change:transform; }

/* menu: Chinese sub-label on ABOUT / PACKAGE / NEWS (phone only), sub-items aligned to the headings */
.m-zh { display:none; }
@media (max-width: 767px) {
  #navbar-collapse .mi_drop_DOWN_menu > li > a { display:flex !important; justify-content:space-between; align-items:center; }
  #navbar-collapse .mi_drop_DOWN_menu > li > a.menu_line, #navbar-collapse .mi_drop_DOWN_menu > li > a.booking-cell { display:block !important; }
  #navbar-collapse .m-zh { display:inline-block; font-family:'CH TC','PingFang TC',sans-serif !important; font-size:12px; letter-spacing:.3em; color:#8a8a8a; text-transform:none; margin-right:-.3em; }
  #navbar-collapse .mi_menu_2 > li > a:before { display:none !important; }
  #navbar-collapse .mi_menu_2 > li > a { gap:0 !important; }
  #navbar-collapse .mi_menu_2 { gap:0 28px !important; }
  html.menu-open .bottom-credits, html:has(#navbar-collapse.in) .bottom-credits { opacity:0 !important; pointer-events:none; }
}
/* menu sub-items: centred in their two columns (not hugging the left edge) */
@media (max-width: 767px) {
  #navbar-collapse .mi_menu_2 { gap:0 !important; }
  #navbar-collapse .mi_menu_2 > li > a { justify-content:center !important; text-align:center !important; letter-spacing:.24em !important; padding-left:.24em !important; }
}
/* booking form on phone: section titles stay on one line, the grey note drops below */
@media (max-width: 600px) {
  .contact-modal.bk legend { flex-wrap:wrap; row-gap:4px; }
  .contact-modal.bk legend small { flex:0 0 100%; margin-left:36px; }
}
