/* Seoul Édit — warm ivory, rosewood and an editorial photographic rhythm.
   Presentation only: selection, pricing and consultation share the existing state. */
:root {
  --paper:#faf7f3;
  --white:#fffdfa;
  --ink:#3c2d30;
  --muted:#75686a;
  --green:#573d45;
  --gold:#96765c;
  --champagne:#eadaca;
  --line:#e4dcd5;
  --lounge-soft:#f0e8e3;
}
::selection { background:#e8d6d3; color:var(--ink); }
html[lang=ja] { --sans:'Noto Sans JP',sans-serif; --heading:'Noto Serif JP',serif; }
html[lang=ja] body { letter-spacing:0; line-break:strict; }
html[lang=ja] :is(p,h1,h2,h3,h4,label,small,summary) { word-break:normal; }
html[lang=ja] .hero h1 { letter-spacing:-.025em; }
html[lang=ja] .base-service-preview h3 { font-family:var(--sans); }
body { background:var(--paper); color:var(--ink); }
.header { background:#faf7f3f5; border-color:var(--line); }
.brand,.footer-brand { letter-spacing:.07em; }
.brand-subtitle { font-size:10px; letter-spacing:.17em; color:var(--muted); }
.desktop-nav { font-size:14px; gap:32px; }
.header-journey { border:1px solid var(--line); border-radius:3px; padding:10px 16px; }
.count-badge { background:var(--lounge-soft); }
.button { border-radius:3px; }
.button.dark,.button.champagne { background:var(--green); color:var(--white); }
.button.outline { border-color:#b59d93; }
.button:hover { background:#6c4b55; color:var(--white); }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }

/* A quiet headline and a generous official photograph. */
.hero { min-height:540px; background:var(--paper); color:var(--ink); }
.hero-content { padding:64px max(64px,calc((100vw - 1312px)/2)) 68px; }
.hero h1 { font-size:clamp(34px,3.15vw,46px); line-height:1.5; letter-spacing:-.055em; font-weight:400; max-width:48%; }
.hero-kicker { color:#84656b; font-size:11px; letter-spacing:.17em; margin-bottom:24px; }
.hero-copy { max-width:39%; font-size:15px; line-height:1.9; margin-top:22px; color:var(--muted); }
.hero-copy .director-direct { display:block; color:var(--green); font-weight:600; }
.hero-copy .director-care { display:block; }
.whatsapp-person { color:var(--green); font-weight:600; }
.hero .button { margin-top:28px; min-width:230px; box-shadow:0 5px 16px #573d4510; }
.vip-hero-note { color:var(--muted); margin-top:14px; }
.hero-image,html[dir=rtl] .hero-image {
  inset:26px max(32px,calc((100vw - 1376px)/2)) 26px 52%;
  border-start-start-radius:112px; border-end-end-radius:4px;
  background-color:var(--lounge-soft); box-shadow:0 12px 40px #3c2d3009;
}
html[dir=rtl] .hero-image { inset-inline:52% max(32px,calc((100vw - 1376px)/2)); }
.hero-slide { object-position:var(--hero-position,center); }
.hero-media-controls { inset-inline-end:max(50px,calc((100vw - 1340px)/2)); bottom:42px; }
.hero-media-controls .hero-image-note,.hero-playback { border-radius:3px; background:#30252bba; backdrop-filter:blur(8px); }
.hero-media-controls .hero-image-note { padding-inline:13px; letter-spacing:.04em; }
html[lang=en] .hero h1 { font-size:clamp(44px,4.5vw,66px); line-height:1.1; letter-spacing:-.035em; font-weight:400; max-width:46%; }
html[dir=rtl] .hero h1 { max-width:46%; font-size:38px; font-weight:400; line-height:1.6; letter-spacing:0; }

/* Included services read as a small, cohesive photo collection. */
.base-package { padding-block:28px 0; border-top:0; border-bottom:1px solid var(--line); background:var(--white); }
.base-heading .eyebrow { color:#84656b; letter-spacing:.07em; }
.base-service-preview { gap:28px; margin-top:20px; }
.base-service-photo { overflow:hidden; border-radius:4px; }
.base-service-preview img { aspect-ratio:2.6; transition:transform .6s ease; }
.base-service-preview h3 { font-size:18px; margin-top:14px; font-weight:500; }
.base-service-preview p { font-size:14px; }
.base-care-assurance { border:0; padding:13px 16px; margin-top:20px; background:var(--paper); border-radius:3px; gap:4px 28px; }
.base-care-assurance p:first-child { color:var(--green); }
.base-disclosure { border-top:0; }
.base-disclosure>summary { color:var(--muted); }
.service-credential,.service-included { color:#775e64; }
.service-image { border-radius:4px; overflow:hidden; }
.private-service-grid { padding-top:6px; }
.service-stepper { border-radius:3px; background:var(--white); overflow:hidden; }

/* Clear tactile navigation, with softer borders and less visual clutter. */
.custom-intro,html[dir=rtl] .custom-intro { padding-block:32px 10px; }
.custom-intro h2 { font-size:14px; color:var(--muted); font-weight:400; }
.category-navigation { background:#faf7f3f5; border:0; box-shadow:0 7px 15px #3c2d3005; }
.category-tabs { padding-block:10px 12px; gap:12px; }
.category-tabs>[role=tab] { border-color:var(--line); border-radius:5px; min-height:88px; box-shadow:0 2px 5px #3c2d3004; }
.category-tabs>[role=tab]+[role=tab] { border-inline-start-color:var(--line); }
.category-tabs>[role=tab][aria-selected=true]:not(:disabled) { background:var(--green); border-color:var(--green); box-shadow:0 4px 12px #573d451a; }
.category-tabs>[aria-selected=true] .category-tab-copy>span:first-child { font-weight:500; }
.category-tabs .category-thumb { border-radius:2px; }
#category-kpop:disabled,#category-kpop:disabled:not([aria-selected=true]):hover { background:#f2ede9; color:var(--muted); border-color:var(--line); }
.category-status,#category-kpop .category-status { background:#e9dfd9; color:#75605c; }
.category-action { color:#94747c; }
:is(#beauty-filters,#dining-filters) { padding:4px; gap:8px; margin-bottom:28px; }
:is(#beauty-filters,#dining-filters) .filter-button { border-color:#d6c8c2; border-radius:24px; padding-inline:20px; box-shadow:none; font-weight:400; }
:is(#beauty-filters,#dining-filters) .filter-button[aria-pressed=true] { background:var(--green); border-color:var(--green); font-weight:500; box-shadow:none; }
#stay-types { border-color:var(--line); }
#stay-types .stay-type.active { color:var(--green); border-color:var(--green); }

/* Venue photographs lead; names, care and estimates follow in that order. */
.collection-layout { padding-top:42px; }
.collection-section[role=tabpanel] { margin-bottom:64px; }
.collection-section[role=tabpanel] .section-heading h2 { font-size:34px; font-weight:400; letter-spacing:-.04em; line-height:1.5; }
.section-description { font-size:15px; color:var(--muted); margin-top:12px; margin-bottom:26px; }
/* Clear reading hierarchy within the artist request, preserving the lounge palette. */
#kpop .section-heading h2 { text-wrap:balance; }
#kpop .section-description { font-size:16px; line-height:1.8; color:#5f5054; }
#kpop .kpop-request label { font-size:15px; font-weight:500; color:var(--ink); }
#kpop .kpop-request :is(input,select,textarea) { font-size:16px; font-weight:400; line-height:1.6; }
#kpop .kpop-request :is(input,textarea)::placeholder { color:#75686a; opacity:1; }
#kpop .kpop-group-hint { font-size:15px; line-height:1.65; color:#65575b; }
#kpop .kpop-options>summary { font-size:15px; color:#5f5054; }
#kpop .kpop-fee { font-size:15px; line-height:1.7; color:#5f5054; }
#kpop .kpop-fee strong { color:var(--green); }
#kpop .kpop-notice { font-size:13px; line-height:1.75; color:var(--muted); }
.experience-grid,.dining-grid,.hotel-grid,.villa-grid { gap:42px 30px; }
.place-card { min-width:0; }
.place-photo,.hotel-grid .place-photo,.villa-grid .place-photo { aspect-ratio:1.4; border-radius:5px; overflow:hidden; background:var(--lounge-soft); }
.place-photo img { object-position:center; }
.place-photo[data-detail=chahong] img { object-position:50% 54%; }
.place-photo[data-detail=gogyeol] img { object-fit:contain; background:#ccc; }
.place-photo[data-detail=eid] img { object-fit:contain; padding:24px; background:#fff; }
.photo-open { width:auto; height:auto; min-width:44px; min-height:44px; border-radius:3px; background:#fffdfaef; font-size:12px; padding:9px 14px; bottom:12px; inset-inline-end:12px; }
.place-body { padding-top:23px; }
.care-focus,.place-category { color:#84656b; font-size:12px; font-weight:400; letter-spacing:.015em; margin-bottom:7px; }
.place-body h3,.villa-grid .place-body h3 { font-family:var(--heading); font-size:25px; font-weight:500; line-height:1.5; letter-spacing:-.035em; margin-bottom:12px; }
html[lang=en] .place-body h3 { font-size:30px; }
html[dir=rtl] .place-body h3 { font-size:23px; font-weight:500; letter-spacing:0; }
.place-experience,.villa-features { color:var(--muted); font-size:15px; line-height:1.8; margin-bottom:18px; }
.place-card .place-price { margin-bottom:18px; gap:4px 10px; }
.place-card .place-price strong { font-size:19px; font-weight:500; }
.card-select { border:1px solid #d6c8c2; border-radius:3px; background:var(--white); min-height:50px; padding:12px 16px; font-size:15px; color:var(--green); }
.selected .card-select { background:var(--green); border-color:var(--green); color:var(--white); }
.selected .card-select svg { color:var(--champagne); }
.selected .place-photo { outline-color:#a88782; outline-offset:4px; }
.dining-status { margin-block:0 16px; }
.dining-status.listed-certified { color:#516647; }
.category-next { padding-top:28px; margin-top:32px; }
.category-next .button:disabled,.category-next .button:disabled:hover { background:var(--lounge-soft); color:var(--muted); opacity:1; }

/* The consultation and planning views keep the same calm material palette. */
.concierge-section { background:#453239; padding-block:64px; }
.concierge-content h2 { font-size:34px; font-weight:400; line-height:1.55; }
.concierge-section .eyebrow { color:#d8bdb1; }
.concierge-content p { color:#e0d2cd; font-size:15px; }
.concierge-content p.vip-restriction { color:#c7b5b0; }
.concierge-options .button { border-color:#b9a18e; background:transparent; color:var(--white); }
.faq-section { padding-block:72px; gap:56px; }
.faq-section h2 { font-weight:400; font-size:29px; }
.faqs details { border-color:var(--line); }
.faqs summary { padding-block:22px; font-size:15px; }
.faqs details p { font-size:15px; }
.footer { background:var(--lounge-soft); }
.footer-bottom { border-color:#dacbc5; }
dialog { border:1px solid #d9c8c1; border-radius:6px; box-shadow:0 24px 100px #2c1b2340; }
dialog::backdrop { background:#291d25a3; }
.dialog-close { border-radius:50%; background:var(--paper); border-color:var(--line); }
.dialog-shell>h2,.detail-content-body h2 { font-weight:400; letter-spacing:-.035em; }
.detail-content-body { padding:32px 36px; }
.detail-photo,.detail-gallery { background:var(--lounge-soft); }
.detail-price,.detail-notice,.consult-summary,.connection-notice { background:var(--lounge-soft); border-color:var(--line); border-radius:4px; }
.detail-description { font-size:15px; line-height:1.9; }
.dining-detail { background:#edf0e9; border-radius:4px; }
.room-option { border-radius:4px; overflow:hidden; background:var(--white); }
.room-option.selected { border-color:#a88782; box-shadow:inset 0 -2px #a88782; }
.room-option h4 { font-family:var(--heading); }
.room-option .card-select { padding-inline:12px; }
.estimate-panel { background:var(--lounge-soft); border-top:1px solid #b89d96; border-radius:4px; padding:26px; }
.estimate-total { color:var(--green); }
.estimate-breakdown,.estimate-controls { border-color:#d8c9c3; }
.estimate-controls input,.visit-control input,.journey-rooms input,.form-grid input,.form-grid select,textarea { background:var(--white); border-color:#cbb9b2; border-radius:3px; }
.package-preview-card { border-color:var(--line); border-radius:4px; overflow:hidden; }
.package-preview-copy>p,.journey-category-label,#journey-dialog .journey-package-kicker { color:#84656b; }
.package-preview-image { background:var(--lounge-soft); }
.journey-footer { background:var(--white); border-color:var(--line); }
.journey-live-total>strong { color:var(--green); }
.whatsapp-contact { border-color:var(--line); }
.mobile-journey { background:#faf7f3f5; border-color:var(--line); }
.mobile-journey>button:last-child { background:var(--green); border-radius:3px; }
.toast { background:var(--green); }
@media(hover:hover) {
  .base-service-photo:hover img { transform:scale(1.035); }
  .card-select:hover { background:#f1e6e3; border-color:#a88782; color:var(--green); }
  .selected .card-select:hover { background:#6c4b55; color:var(--white); }
  .category-tabs>[role=tab]:not(:disabled):not([aria-selected=true]):hover,
  :is(#beauty-filters,#dining-filters) .filter-button:not([aria-pressed=true]):hover { background:#f1e6e3; border-color:#a88782; }
  .category-tabs>[role=tab][aria-selected=true]:not(:disabled):hover,
  :is(#beauty-filters,#dining-filters) .filter-button[aria-pressed=true]:hover { background:#6c4b55; }
}
@media(min-width:701px) and (max-width:1000px) {
  .hero { min-height:480px; }
  .hero-content { padding:42px 32px; }
  .hero h1 { font-size:30px; max-width:48%; }
  .hero-copy { max-width:43%; font-size:14px; }
  .hero-image,html[dir=rtl] .hero-image { inset-block:24px; inset-inline:53% 24px; border-start-start-radius:72px; }
  .hero-media-controls { inset-inline-end:34px; bottom:34px; }
  html[lang=en] .hero h1 { font-size:42px; }
  html[dir=rtl] .hero h1 { font-size:30px; }
  .desktop-nav { gap:16px; }
  .header-journey { padding-inline:10px; font-size:13px; }
  .brand { font-size:27px; }
  .brand-subtitle { font-size:9px; }
  .base-service-preview { gap:18px; }
  .base-service-preview img { aspect-ratio:1.9; }
  .base-service-preview h3 { font-size:16px; }
  .experience-grid,.dining-grid,.hotel-grid,.villa-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 24px; }
  .category-tabs { gap:8px; }
}
@media(max-width:700px) {
  .header { height:64px; padding-inline:20px; }
  .brand { font-size:27px; letter-spacing:.055em; }
  .header-journey { padding:0; border:0; }
  .hero,html[dir=rtl] .hero { min-height:0; background:#3c2d30; color:var(--white); }
  .hero-image,html[dir=rtl] .hero-image { inset:0; border-radius:0; box-shadow:none; }
  /* Match the three official interiors to a warm midtone on small screens.
     A matching base tone also prevents an exposure dip during the crossfade. */
  .hero-image,html[dir=rtl] .hero-image { background-image:none; background-color:#776d63; }
  .hero-slide[data-venue=spa1978] { filter:brightness(1.18) contrast(.86) saturate(.88); }
  .hero-slide[data-venue=chahong] { filter:brightness(.64) contrast(.96) saturate(.86); }
  .hero-slide[data-venue=circle] { filter:brightness(1.06) contrast(.96) saturate(.88); }
  /* Let the official interiors show through; keep the stronger shade behind the reading edge. */
  .hero-shade,html[dir=rtl] .hero-shade { display:block; background:linear-gradient(90deg,#2d202bce,#30222bad 62%,#30222b52); }
  html[dir=rtl] .hero-shade { background:linear-gradient(270deg,#2d202bce,#30222bad 62%,#30222b52); }
  .hero-content,html[dir=rtl] .hero-content { padding:22px 20px 55px; }
  .hero-kicker { font-size:10px; letter-spacing:.12em; color:#f0dbd3; margin-bottom:12px; }
  .hero h1 { max-width:100%; font-size:30px; font-weight:400; line-height:1.45; letter-spacing:-.05em; text-shadow:0 2px 12px #24192352; }
  .hero-copy,html[lang=en] .hero-copy,html[dir=rtl] .hero-copy { max-width:100%; font-size:13px; color:#fff8f3; line-height:1.75; margin-top:12px; }
  .hero-copy .director-direct { color:#fff8f3; }
  .vip-hero-note,html[dir=rtl] .vip-hero-note { font-size:11px; line-height:1.7; color:#f5e7e1; margin-top:8px; }
  .hero-kicker,.hero-copy,.vip-hero-note { text-shadow:0 1px 4px #241923cc; }
  html[lang=en] .hero h1 { font-size:35px; line-height:1.1; max-width:100%; }
  html[dir=rtl] .hero h1 { font-size:28px; line-height:1.5; max-width:100%; }
  .hero-media-controls { inset-inline-end:12px; bottom:5px; }
  .hero-media-controls .hero-image-note { font-size:11px; padding-inline:9px; }
  .base-package { padding:14px 20px 0; }
  .base-heading .eyebrow { font-size:12px; letter-spacing:0; }
  .base-service-preview { gap:9px; margin-top:10px; }
  .base-service-preview img { aspect-ratio:1.7; }
  .base-service-preview h3 { font-size:13px; line-height:1.5; min-height:1.5em; margin:8px 0 3px; }
  .base-service-preview p { font-size:12px; line-height:1.5; }
  .base-care-assurance { padding:9px 10px; margin-top:12px; }
  .base-care-assurance p { font-size:12px; line-height:1.65; }
  .base-package .base-disclosure { margin-top:4px; }
  .custom-intro,html[dir=rtl] .custom-intro { padding:12px 20px 4px; }
  .custom-intro h2 { font-size:13px; line-height:1.6; }
  .category-navigation { top:64px; }
  .category-tabs { gap:6px; padding:6px 8px 8px; }
  .category-tabs>[role=tab],html[lang=en] .category-tabs>[role=tab],html[dir=rtl] .category-tabs>[role=tab] { min-height:80px; font-size:16px; }
  .collection-layout { padding-top:28px; }
  .collection-section[role=tabpanel] { margin-bottom:44px; }
  .collection-section[role=tabpanel] .section-heading h2 { font-size:27px; line-height:1.5; font-weight:400; }
  .section-description { font-size:14px; line-height:1.8; margin-block:10px 20px; }
  :is(#beauty-filters,#dining-filters) { margin-bottom:24px; gap:7px; }
  :is(#beauty-filters,#dining-filters) .filter-button { min-height:44px; padding:8px 10px; font-size:14px; }
  #dining-filters { scrollbar-color:#b79e9c transparent; }
  .experience-grid,.hotel-grid,.dining-grid,.villa-grid { grid-template-columns:1fr; gap:38px; }
  .place-photo,.hotel-grid .place-photo,.villa-grid .place-photo { aspect-ratio:1.4; }
  .place-body { padding-top:18px; }
  .place-body h3,.villa-grid .place-body h3 { font-size:24px; margin-bottom:11px; }
  html[lang=en] .place-body h3 { font-size:29px; }
  .place-experience,.villa-features { font-size:15px; margin-bottom:16px; }
  .place-card .place-price { margin-bottom:16px; }
  .card-select { min-height:50px; }
  .concierge-section { padding:38px 24px; gap:24px; }
  .concierge-content h2 { font-size:27px; }
  .concierge-content p { font-size:14px; }
  .faq-section { padding-block:40px; gap:20px; }
  .faq-section h2 { font-size:26px; }
  .faqs summary { font-size:15px; padding-block:18px; }
  .faqs details p { font-size:14px; }
  .footer { padding-block:30px 24px; }
  dialog { border-radius:6px; }
  .dialog-shell>h2,.detail-content-body h2 { font-size:27px; }
  .detail-content-body { padding:24px 20px; }
  .dialog-close { width:44px; height:44px; }
  .estimate-panel { padding:20px 16px; }
  .room-option h4 { font-size:20px; }
  .mobile-journey { padding-inline:16px; }
  .mobile-journey>button:last-child { min-height:48px; }
  .journey-footer { padding:12px 20px max(14px,env(safe-area-inset-bottom)); }
}
@media(max-width:360px) {
  .header,.hero-content,.base-package,.custom-intro { padding-inline:16px; }
  .hero h1 { font-size:27px; }
  html[lang=en] .hero h1 { font-size:32px; }
  html[dir=rtl] .hero h1 { font-size:26px; }
  .category-tabs>[role=tab],html[lang=en] .category-tabs>[role=tab],html[dir=rtl] .category-tabs>[role=tab] { font-size:14px; }
  .base-service-preview h3 { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) {
  .base-service-preview img { transition:none; }
}

/* A short, illustrative rhythm keeps the bespoke journey tangible. */
.selection-guide { margin:0 0 28px; padding:16px 18px; background:var(--lounge-soft); border:1px solid var(--line); border-radius:4px; }
.selection-guide ol { list-style:none; display:flex; flex-wrap:wrap; gap:14px 28px; margin:0; padding:0; }
.selection-guide li { display:flex; gap:8px; align-items:baseline; min-width:0; font-size:13px; line-height:1.6; color:var(--green); }
.selection-step-number { font-size:11px; color:var(--gold); font-variant-numeric:tabular-nums; flex-shrink:0; }
html[lang=ko] .selection-guide li { word-break:keep-all; }
.selection-guide p { margin-top:10px; font-size:12px; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }
.journey-send-hint { margin:8px 0 0; font-size:12px; line-height:1.65; color:var(--muted); text-align:start; overflow-wrap:anywhere; }
@media(max-width:700px) {
 .selection-guide { padding:14px 12px; margin-bottom:22px; }
 .selection-guide ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
 .selection-guide li { display:block; font-size:12px; }
 .selection-step-number { display:block; margin-bottom:3px; }
}
.journey-example { padding-block:12px 64px; }
.example-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:26px; }
.example-heading h2 { font-family:var(--heading); font-size:32px; font-weight:400; line-height:1.5; margin-top:10px; word-break:keep-all; }
.example-heading>p { max-width:350px; font-size:14px; color:var(--muted); line-height:1.8; }
.example-steps { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.example-steps li { min-width:0; }
.example-steps img { width:100%; height:auto; aspect-ratio:1.55; object-fit:cover; border-radius:4px; display:block; }
.example-steps li>div { position:relative; padding-top:17px; }
.example-number { display:block; font-size:11px; color:var(--gold); letter-spacing:.12em; margin-bottom:5px; }
.example-steps h3 { font-family:var(--heading); font-size:20px; font-weight:500; line-height:1.5; word-break:keep-all; }
.example-steps p { font-size:13px; color:var(--muted); line-height:1.75; margin-top:7px; }
.example-note { font-size:11px; line-height:1.8; color:var(--muted); margin-top:20px; }
.example-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.example-actions .button { min-height:48px; }
.dialog-shell>.consult-before-choice { color:var(--green); font-size:13px; line-height:1.75; }
.brief-fields { margin-block:18px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.brief-fields label,.brief-fields select { min-width:0; max-width:100%; }
.estimate-panel .estimate-scope { font-size:12px; line-height:1.8; color:var(--muted); margin:6px 0 10px; }
.estimate-panel .estimate-missing { font-size:13px; line-height:1.8; color:var(--ink); margin:10px 0 6px; }
.estimate-panel .estimate-missing[hidden] { display:none; }
@media(min-width:701px) and (max-width:1000px) {
 .example-heading { display:block; }
 .example-heading>p { max-width:none; margin-top:10px; }
 .example-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }
}
@media(max-width:700px) {
 .mobile-journey { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:8px; }
 .mobile-journey>button { min-width:0; min-height:48px; padding:8px; font-size:13px; line-height:1.5; gap:6px; border-radius:3px; }
 .mobile-journey>button:first-child { border:1px solid var(--line); color:var(--green); }
 .mobile-journey>button:first-child b { color:var(--green); background:var(--lounge-soft); }
 .mobile-journey>button:last-child { justify-content:center; font-size:13px; line-height:1.5; padding:8px; gap:6px; }
 .mobile-journey svg { flex-shrink:0; width:16px; height:16px; }
 .journey-example { padding-block:4px 40px; }
 .example-heading { display:block; margin-bottom:20px; }
 .example-heading h2 { font-size:25px; line-height:1.55; }
 .example-heading>p { font-size:14px; margin-top:12px; }
 .example-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 14px; }
 .example-steps img { aspect-ratio:1.3; }
 .example-steps li>div { padding-top:12px; }
 .example-steps h3 { font-family:var(--sans); font-size:15px; }
 .example-steps p { font-size:13px; line-height:1.7; }
 .example-actions { display:grid; grid-template-columns:minmax(0,1fr); }
 .example-actions .button { justify-content:space-between; font-size:14px; }
 .brief-fields { grid-template-columns:minmax(0,1fr); gap:16px; }
}

/* The supplied LINE QR is a complete square image, unlike the WhatsApp contact card. */
.whatsapp-contact[data-channel=line] .whatsapp-qr img { position:static; width:100%; height:100%; max-width:100%; object-fit:contain; }
#line-handoff { grid-column:1 / -1; min-width:0; }
#line-handoff[hidden],#line-copy-fallback[hidden] { display:none; }
.line-copy-button { display:inline-flex; align-items:center; min-height:44px; padding:8px 12px; color:var(--green); font-size:14px; text-decoration:underline; text-underline-offset:4px; }
#line-copy-status { color:var(--muted); font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
#line-copy-status:empty { display:none; }
#line-copy-fallback label { display:block; margin-top:16px; font-size:14px; }
#line-message-fallback { display:block; width:100%; min-width:0; margin-block:10px; padding:12px; border:1px solid var(--line); background:var(--white); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.75; resize:vertical; }
@media(max-width:700px) {
 .whatsapp-contact[data-channel=line] .whatsapp-qr,
 .whatsapp-contact[data-channel=line] [data-i18n=whatsappScan] { display:none; }
 .whatsapp-contact[data-channel=line] { text-align:start; }
 .whatsapp-contact[data-channel=line] .whatsapp-auto-note { font-size:14px; line-height:1.85; }
 .whatsapp-contact[data-channel=line] small { font-size:12px; }
}

/* Room photographs and rates are available directly in the stay collection. */
.hotel-room-guidance { color:var(--muted); font-size:13px; line-height:1.8; margin:0 0 30px; max-width:70ch; }
#hotel-grid { grid-template-columns:minmax(0,1fr); gap:56px; }
.hotel-stay { min-width:0; }
.hotel-stay+.hotel-stay { border-top:1px solid var(--line); padding-top:40px; }
.hotel-stay-heading { display:grid; grid-template-columns:104px minmax(0,1fr) auto; align-items:center; gap:22px; margin-bottom:24px; }
.hotel-stay-photo { display:block; width:104px; height:88px; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--lounge-soft); }
.hotel-stay-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.hotel-stay-intro { min-width:0; }
.hotel-stay-intro .place-category { margin:0 0 4px; color:var(--gold); font-size:12px; }
.hotel-stay-intro h3 { font-family:var(--heading); font-size:28px; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
.hotel-stay-description { color:var(--muted); font-size:14px; line-height:1.8; margin-top:5px; }
.hotel-stay-details { display:inline-flex; align-items:center; gap:12px; min-width:44px; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:3px; color:var(--green); font-size:13px; }
.hotel-stay-details svg { width:16px; height:16px; flex-shrink:0; }
.hotel-room-options { margin-top:0; }
.hotel-room-options .room-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; align-items:stretch; }
.hotel-room-options .room-option { display:flex; flex-direction:column; border-color:var(--line); }
.hotel-room-options .room-option.selected { border-color:#a88782; }
.hotel-room-options .room-option>img { display:block; width:100%; aspect-ratio:1.5; object-fit:cover; }
.hotel-room-options .room-option>div { display:flex; flex-direction:column; flex:1; padding:18px; min-width:0; }
.hotel-room-options .room-tier { font-size:12px; line-height:1.6; color:var(--muted); letter-spacing:.02em; }
.hotel-room-options h4 { font-size:20px; font-weight:500; line-height:1.6; margin:6px 0 12px; min-height:3.2em; overflow-wrap:anywhere; }
.hotel-room-options .room-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 8px; margin-top:auto; color:var(--ink); line-height:1.7; }
.hotel-room-options .room-price bdi { font-size:18px; font-weight:500; }
.hotel-room-options .room-price span { font-size:12px; color:var(--muted); }
.hotel-room-options .room-option small { font-size:12px; line-height:1.8; margin-top:6px; }
.hotel-room-options .room-source { font-size:12px; margin:8px 0 10px; min-height:44px; }
.hotel-room-options .card-select { min-height:50px; margin-top:0; font-size:14px; }
@media(max-width:1199px) {
 .hotel-room-options .room-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .hotel-room-guidance { font-size:12px; margin-bottom:22px; }
 #hotel-grid { gap:38px; }
 .hotel-stay+.hotel-stay { padding-top:30px; }
 .hotel-stay-heading { grid-template-columns:76px minmax(0,1fr); gap:12px 16px; margin-bottom:18px; }
 .hotel-stay-photo { width:76px; height:76px; }
 .hotel-stay-intro h3 { font-size:23px; line-height:1.5; }
 .hotel-stay-description { font-size:13px; line-height:1.7; }
 .hotel-stay-details { grid-column:2; justify-self:start; }
 .hotel-room-options .room-grid { grid-template-columns:minmax(0,1fr); gap:22px; }
 .hotel-room-options .room-option>img { aspect-ratio:1.5; }
 .hotel-room-options h4 { min-height:0; font-size:21px; }
 .hotel-room-options .room-price { margin-top:0; }
}
