.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24; }
.lang-icon { position:relative; display:inline-flex; align-items:center; justify-content:center; width:1.1rem; height:1.1rem; flex:0 0 auto; color:currentColor; }
.lang-icon-globe::before { content:""; width:1rem; height:1rem; border:1.6px solid currentColor; border-radius:999px; box-sizing:border-box; background:linear-gradient(currentColor,currentColor) center/1.5px 100% no-repeat; }
.lang-icon-globe::after { content:""; position:absolute; width:0.55rem; height:1rem; border-left:1.3px solid currentColor; border-right:1.3px solid currentColor; border-radius:50%; box-sizing:border-box; }
.lang-icon-caret { width:0.85rem; height:0.85rem; }
.lang-icon-caret::before { content:""; width:0.45rem; height:0.45rem; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(45deg) translateY(-0.08rem); box-sizing:border-box; }
body { font-family: 'Manrope', sans-serif; }
h1, h2, h3 { font-family: 'Noto Serif', serif; }
.hero-overlay { background: linear-gradient(135deg, rgba(18,36,28,0.52), rgba(18,36,28,0.24)); }
.home-hero-copy { max-width: 56rem; width: 100%; min-width: 0; }
.page-hero-copy { width: 100%; min-width: 0; }
.home-hero-title { letter-spacing: -0.055em; line-height: 0.95; text-shadow: 0 2px 22px rgba(10,20,16,0.20); }
.home-hero-subtitle { max-width: 38rem; line-height: 1.7; text-shadow: 0 1px 18px rgba(10,20,16,0.22); }
.nav-scrolled { background: rgba(252,249,243,0.95) !important; backdrop-filter: blur(16px) !important; border-bottom-color: rgba(194,200,194,0.3) !important; }
.nav-scrolled .nav-logo, .nav-scrolled .nav-link, .nav-scrolled .nav-link-active { color: #173124 !important; }
.nav-scrolled .nav-link:hover { color: #775a19 !important; }
.nav-scrolled .nav-cta { background: #173124 !important; color: #ffffff !important; }
.nav-scrolled .lang-toggle { color: #173124 !important; }
.nav-utility { background: rgba(252,249,243,0.95) !important; backdrop-filter: blur(16px) !important; border-bottom-color: rgba(194,200,194,0.3) !important; }
.nav-utility .nav-logo, .nav-utility .nav-link, .nav-utility .nav-link-active { color: #173124 !important; }
.nav-utility .nav-link:hover { color: #775a19 !important; }
.nav-utility .nav-cta { background: #173124 !important; color: #ffffff !important; }
.nav-utility .lang-toggle { color: #173124 !important; }
.lang-dropdown { display:none; position:absolute; top:100%; right:0; margin-top:0.5rem; min-width:10rem; background:rgba(252,249,243,0.98); backdrop-filter:blur(12px); border-radius:0.5rem; box-shadow:0 4px 24px rgba(0,0,0,0.08); padding:0.5rem 0; z-index:100; }
.lang-dropdown.open { display:block; }
.lang-dropdown a { display:block; padding:0.5rem 1rem; font-size:0.8125rem; color:#424844; transition:all 0.15s; }
.lang-dropdown a:hover { background:#f0eee8; color:#173124; }
.lang-dropdown a.font-bold { color:#775a19; }
.privacy-consent { position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:220; display:grid; gap:0.8rem; max-width:34rem; margin:0 auto; padding:0.8rem 0.9rem; border:1px solid rgba(194,200,194,0.42); border-radius:0.65rem; background:rgba(252,249,243,0.96); box-shadow:0 12px 34px rgba(20,27,23,0.12); color:#173124; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.privacy-consent p { margin:0; color:#424844; font-size:0.8125rem; line-height:1.55; font-weight:300; }
.privacy-consent-actions { display:flex; flex-wrap:wrap; align-items:center; gap:0.55rem; }
.privacy-consent-actions a { color:rgba(119,90,25,0.82); font-size:0.75rem; font-weight:500; transition:color 0.2s ease; }
.privacy-consent-actions a:hover { color:#173124; }
.privacy-consent-actions button { border:1px solid rgba(23,49,36,0.16); border-radius:0.45rem; padding:0.45rem 0.7rem; font-size:0.75rem; font-weight:500; color:#173124; background:transparent; transition:background 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.privacy-consent-actions button:hover { border-color:rgba(119,90,25,0.36); background:rgba(119,90,25,0.08); }
.privacy-consent-actions [data-privacy-accept] { border-color:#173124; background:#173124; color:#ffffff; }
.privacy-consent-actions [data-privacy-accept]:hover { border-color:#775a19; background:#775a19; color:#ffffff; }
.gallery-scroll { scrollbar-width:none; -ms-overflow-style:none; }
.gallery-scroll::-webkit-scrollbar { display:none; }
.glimpse-card { transition: transform 300ms ease, box-shadow 300ms ease; }
@media (hover: hover) and (pointer: fine) {
  .glimpse-card:hover { transform: scale(1.03); box-shadow: 0 8px 30px rgba(0,0,0,0.10); }
}
@keyframes gentle-bounce { 0%,100%{transform:translateY(0);opacity:0.4} 50%{transform:translateY(10px);opacity:0.7} }
.animate-gentle-bounce { animation: gentle-bounce 2.5s ease-in-out infinite; }
.fade-up { opacity:0; transform:translateY(24px); transition:opacity 0.7s ease, transform 0.7s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }
.room-card { cursor: pointer; }
.room-card img { transition: transform 0.7s ease; }
.room-card:hover img { transform: scale(1.03); }
.room-card:hover h2 { color: #775a19; }
.room-card:focus-visible { outline:2px solid rgba(119,90,25,0.48); outline-offset:0.45rem; border-radius:0.5rem; }
.room-card h2 { transition: color 0.3s ease; }
.room-location { margin: 0.15rem 0 0.55rem; color: #775a19; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.15em; line-height: 1.5; text-transform: uppercase; }
.mobile-menu-overlay { position:fixed; inset:0; z-index:150; background:linear-gradient(180deg, rgba(10,20,16,0.88) 0%, rgba(14,26,20,0.78) 40%, rgba(18,32,24,0.82) 100%); backdrop-filter:blur(10px) saturate(1.1); -webkit-backdrop-filter:blur(10px) saturate(1.1); opacity:0; pointer-events:none; transition:opacity 0.35s ease; display:flex; align-items:center; justify-content:center; padding:env(safe-area-inset-top, 0) 0 env(safe-area-inset-bottom, 0) 0; padding-bottom:12vh; overflow:hidden; }
.mobile-menu-overlay.open { opacity:1; pointer-events:auto; }
.mobile-menu-content { opacity:0; transform:translateY(12px); transition:opacity 0.3s ease 0.05s, transform 0.35s cubic-bezier(0.16,1,0.3,1) 0.05s; }
.mobile-menu-overlay.open .mobile-menu-content { opacity:1; transform:translateY(0); }
.form-input { background: white; border: 1px solid #c2c8c2; border-radius: 0.5rem; padding: 0.75rem 1rem; font-size: 0.9375rem; font-family: 'Manrope', sans-serif; color: #1c1c18; transition: border-color 0.2s; width: 100%; }
.form-input:focus { outline: none; border-color: #775a19; box-shadow: 0 0 0 2px rgba(119,90,25,0.1); }
.form-input::placeholder { color: #727973; }
select.form-input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23727973' d='M1.41.59L6 5.17 10.59.59 12 2l-6 6-6-6z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; }
.date-input-wrap { position: relative; }
.date-input-wrap .form-input,
.date-display-input { padding-right: 3rem; }
.date-input-icon { position: absolute; top: 50%; right: 1rem; transform: translateY(-50%); color: #727973; font-size: 1.125rem; pointer-events: none; transition: color 0.2s ease; }
.date-input-wrap:focus-within .date-input-icon { color: #173124; }
.date-display-input[readonly] { cursor: pointer; background: white; }
.flatpickr-calendar { background: rgba(252,249,243,0.98); border: 1px solid rgba(194,200,194,0.72); border-radius: 1.125rem; box-shadow: 0 18px 48px rgba(20, 27, 23, 0.14); padding: 0.75rem; width: 19rem; }
.flatpickr-months { margin-bottom: 0.35rem; }
.flatpickr-months .flatpickr-month { height: 3rem; color: #173124; }
.flatpickr-current-month { padding-top: 0.35rem; font-family: 'Noto Serif', serif; font-size: 1rem; color: #173124; }
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year { font-family: 'Noto Serif', serif; font-weight: 400; color: #173124; }
.flatpickr-current-month .flatpickr-monthDropdown-months:hover,
.flatpickr-current-month input.cur-year:hover { background: transparent; }
.flatpickr-weekdays { margin-bottom: 0.4rem; }
span.flatpickr-weekday { color: #727973; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.flatpickr-rContainer { width: 100%; }
.flatpickr-days { width: 100%; }
.dayContainer { min-width: 100%; max-width: 100%; }
.flatpickr-day { max-width: 2.25rem; height: 2.25rem; line-height: 2.25rem; border-radius: 999px; border-color: transparent; color: #1c1c18; font-size: 0.9rem; }
.flatpickr-day:hover { background: #ebe8e2; border-color: #ebe8e2; }
.flatpickr-day.today { border-color: rgba(119, 90, 25, 0.32); color: #173124; }
.flatpickr-day.today:hover { background: rgba(119, 90, 25, 0.1); border-color: rgba(119, 90, 25, 0.1); }
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover { background: #173124; border-color: #173124; color: #ffffff; }
.flatpickr-day.inRange { background: rgba(23, 49, 36, 0.08); border-color: rgba(23, 49, 36, 0.08); box-shadow: none; }
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover { color: rgba(114, 121, 115, 0.42); background: transparent; }
.flatpickr-prev-month,
.flatpickr-next-month { display: flex; align-items: center; justify-content: center; width: 2.125rem; height: 2.125rem; border-radius: 999px; top: 0.4rem; color: #173124; }
.flatpickr-prev-month:hover,
.flatpickr-next-month:hover { background: rgba(23, 49, 36, 0.06); }
.flatpickr-prev-month svg,
.flatpickr-next-month svg { width: 0.8rem; height: 0.8rem; fill: #173124; }
@media (max-width: 640px) {
  .flatpickr-calendar { width: min(19rem, calc(100vw - 2rem)); padding: 0.65rem; }
  .flatpickr-day { max-width: 2.15rem; height: 2.15rem; line-height: 2.15rem; }
}

/* Room modal */
.room-modal-overlay { position:fixed; inset:0; z-index:200; background:rgba(13,26,20,0.9); backdrop-filter:blur(14px); opacity:0; pointer-events:none; transition:opacity 0.35s ease; display:flex; align-items:center; justify-content:center; padding:1.5rem; }
.room-modal-overlay.active { opacity:1; pointer-events:auto; }
.room-modal { background:#fcf9f3; border:1px solid rgba(252,249,243,0.18); border-radius:1.125rem; max-width:min(72rem, 100%); width:100%; max-height:calc(100vh - 3rem); overflow-y:auto; transform:translateY(18px); opacity:0; transition:transform 0.38s cubic-bezier(0.16,1,0.3,1), opacity 0.3s ease; box-shadow:0 28px 90px rgba(0,0,0,0.28); }
.room-modal-overlay.active .room-modal { transform:translateY(0); opacity:1; }
.room-modal button:focus { outline:none; }
.room-modal button:focus-visible { outline:2px solid rgba(119,90,25,0.48); outline-offset:3px; }
.room-modal-building { margin-top:0.45rem; color:#775a19; font-size:0.68rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; }
.room-modal-gallery { display:block; }
.room-modal-stage { position:relative; display:flex; align-items:center; justify-content:center; min-height:18rem; background:#101912; border-radius:0.75rem; overflow:hidden; }
.room-modal-main-image { display:block; width:100%; max-height:min(58vh, 38rem); object-fit:contain; }
.room-modal-nav { position:absolute; top:50%; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; width:2.75rem; height:2.75rem; border-radius:999px; background:rgba(252,249,243,0.88); color:#173124; box-shadow:0 10px 30px rgba(0,0,0,0.16); transition:background-color 0.2s ease, color 0.2s ease; }
.room-modal-nav:hover { background:#fcf9f3; color:#775a19; }
.room-modal-nav-prev { left:1rem; }
.room-modal-nav-next { right:1rem; }
.room-modal-counter { position:absolute; right:1rem; bottom:1rem; padding:0.35rem 0.65rem; border-radius:999px; background:rgba(252,249,243,0.9); color:#424844; font-size:0.75rem; }
.room-modal-thumbs { display:flex; gap:0.55rem; margin-top:0.75rem; padding-bottom:0.2rem; overflow-x:auto; scrollbar-width:none; }
.room-modal-thumbs::-webkit-scrollbar { display:none; }
.room-modal-thumb { flex:0 0 auto; width:5rem; height:3.75rem; overflow:hidden; border:1px solid rgba(194,200,194,0.58); border-radius:0.45rem; opacity:0.62; transition:border-color 0.2s ease, opacity 0.2s ease; }
.room-modal-thumb.active { border-color:#775a19; opacity:1; }
.room-modal-thumb img { width:100%; height:100%; object-fit:cover; }
@media (max-width: 640px) {
  .room-modal-overlay { padding:0.75rem; align-items:flex-end; }
  .room-modal { max-height:calc(100vh - 1.5rem); border-radius:1rem 1rem 0.75rem 0.75rem; }
  .room-modal-stage { min-height:14rem; }
  .room-modal-main-image { max-height:46vh; }
  .room-modal-nav { width:2.35rem; height:2.35rem; }
  .room-modal-nav-prev { left:0.65rem; }
  .room-modal-nav-next { right:0.65rem; }
  .room-modal-counter { right:0.65rem; bottom:0.65rem; }
  .room-modal-thumb { width:4.25rem; height:3.2rem; }
}

/* Footer */
.lf-footer { background: linear-gradient(180deg, #13251b 0%, #0c1a14 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,0.06); }
.lf-footer > div { padding-top: 4.35rem !important; padding-bottom: 2.8rem !important; }
.lf-footer .grid { gap: 2.35rem; align-items:start; }
.lf-footer .grid > div:first-child { max-width: 17rem; }
.lf-footer .grid > div:first-child span { position:relative; display:inline-block; margin-bottom:0 !important; padding-bottom:1.05rem; color:rgba(255,255,255,0.94); font-size:1.5rem; line-height:1.08; }
.lf-footer .grid > div:first-child span::after { content:""; position:absolute; left:0; bottom:0; width:2.9rem; height:1px; background:rgba(217,191,104,0.72); }
.lf-footer .grid h4 { margin-bottom: 1.05rem; color:rgba(255,255,255,0.62); font-size:0.6875rem; letter-spacing:0.2em; }
.lf-footer .grid h4 + div,
.lf-footer .grid h4 + nav { gap:0.85rem !important; }
.lf-footer .grid h4 + div a,
.lf-footer .grid h4 + div span,
.lf-footer .grid h4 + div address,
.lf-footer .grid h4 + nav a { line-height:1.55; }
.lf-footer a { text-underline-offset:0.18em; }
.lf-footer .border-t { margin-top: 2.65rem; padding-top: 1.35rem; border-color:rgba(255,255,255,0.08) !important; }
.lf-footer .text-white\/20 { color: rgba(255,255,255,0.36); }
.lf-footer .text-white\/30 { color: rgba(255,255,255,0.62); }
.lf-footer .text-white\/40 { color: rgba(255,255,255,0.62); }
.lf-footer .text-white\/50 { color: rgba(255,255,255,0.74); }
@media (min-width: 768px) {
  .lf-footer > div { padding-top: 4.9rem !important; padding-bottom: 3rem !important; }
  .lf-footer .grid { grid-template-columns:minmax(10rem,1.08fr) minmax(8rem,0.72fr) minmax(12rem,1.2fr) !important; column-gap:clamp(2.25rem, 5vw, 4.75rem) !important; row-gap:2.5rem !important; }
  .lf-footer .grid > div { grid-column:auto !important; }
  .lf-footer .grid > div:first-child span { font-size:1.68rem; }
}

/* Brand logo system */
a.nav-logo { min-width: 0; }
.nav-logo-img { display:block; height:2.125rem; width:auto; filter:drop-shadow(0 1px 10px rgba(0,0,0,0.18)); }
.nav-logo-img-dark { display:none; height:2.125rem; width:auto; }
.nav-scrolled .nav-logo-img { display:none; }
.nav-scrolled .nav-logo-img-dark { display:block; }
.nav-utility .nav-logo-img { display:none; }
.nav-utility .nav-logo-img-dark { display:block; }
.footer-mark { display:block; height:2.75rem; width:auto; opacity:0.92; margin-bottom:0.95rem !important; filter:drop-shadow(0 0.5rem 1.5rem rgba(0,0,0,0.18)); }
@media (max-width: 640px) { .nav-logo-img, .nav-logo-img-dark { height:1.875rem; } }

/* Phase 2 real-url page helpers */
.page-kicker { letter-spacing: 0.2em; text-transform: uppercase; font-size: 0.75rem; font-weight: 600; color: #775a19; }
.detail-card { background: rgba(255,255,255,0.56); border: 1px solid rgba(194,200,194,0.52); border-radius: 0.875rem; }
.utility-hero { border-bottom: 1px solid rgba(194,200,194,0.34); }
.utility-hero h1 { letter-spacing: -0.025em; }
.utility-hero p { max-width: 40rem; }
.privacy-content .detail-card { padding: 1.45rem; border-radius: 0.65rem; background: rgba(255,255,255,0.5); }
.privacy-content .detail-card h2 { margin-bottom: 0.75rem; font-size: 1.2rem; line-height: 1.35; }
.trust-section { padding-top: 2.75rem !important; padding-bottom: 3rem !important; }
.trust-section .fade-up { max-width: 32rem; margin: 0 auto; padding: 1.9rem 1.6rem 2rem; border: 1px solid rgba(194,200,194,0.46); border-radius: 0.75rem; background: rgba(252,249,243,0.72); box-shadow: 0 18px 48px rgba(20,27,23,0.045); }
.trust-section .page-kicker { margin-bottom: 0.7rem; }
.trust-section h2 { margin-bottom: 0.75rem; font-size: clamp(1.65rem, 3vw, 2.15rem); line-height: 1.18; }
.rating-row { display:inline-flex; align-items:baseline; gap:0.42rem; margin-bottom:0.15rem; }
.rating-score { font-family:'Noto Serif', serif; font-size: clamp(2.85rem, 5.2vw, 3.85rem); line-height:0.95; font-weight:700; color:#173124; letter-spacing:0; }
.rating-scale { color:rgba(66,72,68,0.76); font-size:1rem; line-height:1; font-weight:300; }
.trust-section .text-center > .mt-6 { margin-top: 1rem !important; }
.trust-section a { padding: 0.45rem 0.7rem; border: 1px solid rgba(119,90,25,0.18); border-radius: 999px; background: rgba(255,255,255,0.32); font-size:0.86rem; }
@media (min-width: 768px) {
  .privacy-content .detail-card { padding: 1.65rem; }
}
@media (max-width: 640px) {
  .trust-section { padding-top: 2.25rem !important; padding-bottom: 2.5rem !important; }
  .trust-section .fade-up { padding: 1.6rem 1.1rem 1.7rem; }
}
.contact-panel { background: rgba(252,249,243,0.72); border: 1px solid rgba(194,200,194,0.42); border-radius: 1.25rem; box-shadow: 0 18px 56px rgba(20,27,23,0.06); }
.contact-line { display: grid; grid-template-columns: minmax(7rem, max-content) 1fr; gap: 1.25rem; align-items: baseline; padding-bottom: 1rem; border-bottom: 1px solid rgba(194,200,194,0.42); }
.contact-line:last-child { border-bottom: 0; padding-bottom: 0; }
.contact-label { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: #775a19; }
.contact-value { color: #424844; line-height: 1.7; }
.contact-action-link { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.65rem 0.9rem; border-radius: 999px; border: 1px solid rgba(194,200,194,0.62); background: rgba(252,249,243,0.42); color: #424844; font-size: 0.8125rem; transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease; }
.contact-action-link:hover { border-color: rgba(119,90,25,0.58); color: #173124; background: rgba(119,90,25,0.06); }
.contact-action-link .material-symbols-outlined { font-size: 1rem; color: #775a19; }
.contact-image-frame { border-radius: 1.25rem; overflow: hidden; background: #f0eee8; box-shadow: 0 22px 60px rgba(20,27,23,0.08); }
.contact-image-frame img { filter: saturate(0.92) contrast(0.98); transform: scale(1.01); }
.faq-editorial { border-top: 1px solid rgba(194,200,194,0.3); }
.faq-editorial-grid { display:grid; grid-template-columns:1fr; gap:1.75rem; }
.faq-editorial-copy h2 { color:#173124; font-size:1.85rem; line-height:1.16; margin-bottom:0.75rem; }
.faq-editorial-copy p { max-width:23rem; color:#424844; font-size:0.96rem; line-height:1.7; font-weight:300; }
.faq-list { border-top:1px solid rgba(194,200,194,0.56); }
.faq-item { border-bottom:1px solid rgba(194,200,194,0.56); }
.faq-question { position:relative; display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:3.45rem; padding:0.85rem 2rem 0.85rem 0; color:#173124; cursor:pointer; list-style:none; font-size:0.98rem; line-height:1.45; font-weight:500; }
.faq-question::-webkit-details-marker { display:none; }
.faq-question::after { content:"+"; position:absolute; right:0; top:50%; transform:translateY(-50%); color:#775a19; font-size:1.1rem; font-weight:300; }
.faq-item[open] .faq-question::after { content:"−"; }
.faq-answer { padding:0 2rem 1.05rem 0; }
.faq-answer p { color:#424844; font-size:0.94rem; line-height:1.7; font-weight:300; }
.lf-hp { position:absolute; left:-9999px; height:0; overflow:hidden; }
.room-request-heading { font-family:'Noto Serif', serif; font-size:1.15rem; font-weight:400; color:#173124; margin-bottom:0.3rem; letter-spacing:-0.01em; }
.room-request-hint { font-size:0.8125rem; color:#727973; font-weight:300; line-height:1.55; margin-bottom:0.85rem; }
#request,
#book-direct { scroll-margin-top:6rem; }
.room-mode-label { display:block; font-size:0.6875rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:#727973; margin-bottom:0.4rem; }
.room-mode-toggle { display:grid; grid-template-columns:1fr 1fr; margin:0 0 0.9rem; padding:0.2rem; border:1px solid rgba(212,201,160,0.38); border-radius:0.6rem; background:rgba(246,243,237,0.85); }
.room-mode-btn { width:100%; min-width:0; padding:0.6rem 0.85rem; border:none; border-radius:0.4rem; background:transparent; color:#727973; font-size:0.8125rem; font-weight:400; line-height:1.35; text-align:center; overflow-wrap:anywhere; cursor:pointer; transition:background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; }
.room-mode-btn:hover { color:#424844; background:rgba(23,49,36,0.04); }
.room-mode-btn.active { background:#173124; color:#ffffff; font-weight:500; box-shadow:0 1px 4px rgba(23,49,36,0.18); }
.room-mode-btn:focus-visible { outline:2px solid rgba(23,49,36,0.55); outline-offset:-1px; border-radius:0.4rem; }
.room-panel[hidden] { display:none; }
.room-request-section { border:1px solid rgba(212,201,160,0.32); border-radius:0.875rem; overflow:hidden; background:rgba(252,249,243,0.56); }
.room-request-row { display:flex; align-items:center; justify-content:space-between; padding:0.85rem 1.15rem; border-bottom:1px solid rgba(212,201,160,0.16); }
.room-request-row:last-of-type { border-bottom:none; }
.room-request-label { font-size:0.875rem; color:#424844; line-height:1.4; flex:1 1 0; min-width:0; padding-right:0.75rem; }
.room-counter { display:inline-flex; align-items:center; gap:0; border:1px solid rgba(212,201,160,0.4); border-radius:0.5rem; overflow:hidden; flex-shrink:0; }
.room-counter-btn { display:flex; align-items:center; justify-content:center; width:2.125rem; height:2.125rem; background:rgba(240,238,232,0.38); color:#727973; font-size:1.05rem; line-height:1; border:none; cursor:pointer; transition:background 0.15s, color 0.15s; -webkit-user-select:none; user-select:none; }
.room-counter-btn:hover { background:rgba(119,90,25,0.1); color:#173124; }
.room-counter-btn:active { background:rgba(119,90,25,0.18); }
.room-counter-btn:focus-visible { outline:2px solid rgba(23,49,36,0.45); outline-offset:-1px; }
.room-counter-value { display:flex; align-items:center; justify-content:center; width:2.25rem; height:2.125rem; font-size:0.9rem; font-weight:500; color:#1c1c18; text-align:center; background:rgba(255,255,255,0.65); }
.room-request-total-row { display:flex; align-items:center; justify-content:space-between; padding:0.7rem 1.15rem; background:transparent; border-top:1px solid rgba(212,201,160,0.2); }
.room-request-total-label { font-size:0.8125rem; font-weight:400; letter-spacing:0.01em; color:#727973; }
.room-request-total-value { font-size:0.9375rem; font-weight:600; color:#173124; min-width:2rem; text-align:center; }
.room-suggest-hint { margin:0.75rem 0 0; color:#727973; font-size:0.8125rem; line-height:1.55; font-weight:300; }
.room-choose-disclaimer { margin:0.75rem 0 0; color:#727973; font-size:0.78rem; line-height:1.55; font-weight:300; font-style:italic; }
@media (max-width: 640px) {
  .room-request-heading { font-size:1.05rem; }
  .room-request-hint { font-size:0.78rem; }
  .room-request-row { padding:0.75rem 1rem; }
  .room-request-label { font-size:0.8125rem; }
  .room-counter-btn { width:2rem; height:2rem; }
  .room-counter-value { width:2rem; height:2rem; font-size:0.85rem; }
  .room-request-total-row { padding:0.65rem 1rem; }
}
@media (min-width: 768px) {
  .faq-editorial-grid { grid-template-columns:minmax(13rem,0.42fr) minmax(0,0.95fr); gap:3.25rem; align-items:start; }
}
@media (max-width: 640px) {
  .home-hero-title { max-width: 22rem; margin-left: auto; margin-right: auto; }
  .home-hero-subtitle { max-width: 20rem; line-height: 1.65; }
  .contact-line { grid-template-columns: 1fr; gap: 0.35rem; padding-bottom: 1.15rem; }
  .faq-editorial-copy h2 { font-size:1.62rem; }
  .faq-question { min-height:3.35rem; padding-right:1.7rem; }
  .faq-answer { padding-right:1.7rem; }
}
