/* Hospitality atelier. Shared surfaces, brass edges and deliberate depth. */
:root {
  --paper: #f5f0e7;
  --white: #fffdf8;
  --ink: #203e3b;
  --muted: #526a63;
  --green: #184b4c;
  --accent: #eab56c;
  --line: #cbd2c4;
  --lux-edge: rgba(24,75,76,.2);
  --lux-shadow: 0 2px 3px rgba(24,55,48,.035), 0 12px 28px -16px rgba(24,55,48,.22), 0 30px 58px -38px rgba(24,55,48,.2);
  --lux-hover: 0 3px 6px rgba(24,55,48,.05), 0 22px 38px -18px rgba(24,55,48,.26), 0 38px 70px -44px rgba(24,55,48,.24);
}
body, body.home { background: radial-gradient(ellipse at 100% 0%,#eee2cb66,transparent 38%), var(--paper); color:var(--ink); }
body h1, body h2, body h3, body .footer-brand { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
body em { color:var(--green); }
body .eyebrow { color:var(--muted); }
body .header-shell { padding:12px 0; background:transparent; border:0; }
body .site-header { height:74px; padding:0 24px; background:linear-gradient(130deg,#fffdfbf5,#faf7eff5); border:1px solid var(--lux-edge); border-radius:18px; box-shadow:var(--lux-shadow); }
body .brand-symbol { background:var(--green); color:#f6e4bb; border-radius:11px; box-shadow:inset 0 0 0 1px #ead4a448,0 4px 8px #184b4c16; font-family:Georgia,serif; }
body .header-phone { background:#e8eee0; border:1px solid #184b4c1f; color:var(--green); }
body .opening-note { color:#425f55; background:#e8ebdf; border-bottom:1px solid #184b4c12; }
body .mobile-nav { background:var(--white); border:1px solid var(--lux-edge); box-shadow:var(--lux-shadow); }
body .menu-toggle { background:#e8eee0; border-color:var(--lux-edge); }
body .button { border-radius:11px; transition:background .22s ease,box-shadow .22s ease,transform .22s ease; }
body .button.accent, body.home .map-button { background:linear-gradient(135deg,#f0c584,#eab56c); border:1px solid #c58e454f; color:#203e3b; box-shadow:inset 0 1px 0 #fff5d99c,0 5px 12px -5px #9b702c55; }
body .button.dark { background:var(--green); color:#fff9ed; border-color:#184b4c; box-shadow:inset 0 1px 0 #ffffff26,0 6px 14px -7px #184b4c66; }
body .button.light { background:var(--white); border-color:var(--lux-edge); color:var(--green); }
body .button.outline { color:var(--green); border-color:#184b4c55; }
body .button:hover { box-shadow:0 8px 18px -8px #184b4c55; transform:translateY(-2px); }
body a:focus-visible, body button:focus-visible, body input:focus-visible, body select:focus-visible, body textarea:focus-visible, body summary:focus-visible { outline:3px solid #a66d24; outline-offset:4px; }
body :is(input,select,textarea):not([type=checkbox]):not([type=radio]) { border-color:#184b4c30; background:#f8f5ee; color:var(--ink); box-shadow:inset 0 1px 3px #184b4c08; }
body :is(input,select,textarea):not([type=checkbox]):not([type=radio]):focus { border-color:var(--green); }
body input[type=checkbox] { accent-color:var(--green); }

/* Quiet title architecture, shared by the five kinds of inner pages. */
body:not(.home) .page-intro { position:relative; isolation:isolate; margin-top:20px; margin-bottom:32px; padding:36px 40px; border:1px solid var(--lux-edge); border-radius:24px; background:linear-gradient(120deg,#fffdf8,#ecefdf); box-shadow:var(--lux-shadow); overflow:hidden; }
body:not(.home) .page-intro::after { content:''; position:absolute; z-index:-1; right:5%; top:26px; width:170px; height:240px; border:1px solid #b9975940; border-radius:100px 100px 8px 8px; box-shadow:0 0 0 12px #fffdf829,0 0 0 13px #b997591c; transform:rotate(9deg); pointer-events:none; }
body:not(.home) .page-intro h1 { font-size:clamp(38px,4.4vw,60px); line-height:1.07; margin-bottom:20px; }
body:not(.home) .page-intro .eyebrow { margin-bottom:16px; }
body:not(.home) .page-intro .lead { position:relative; max-width:740px; font-size:15px; line-height:1.75; }
body .breadcrumb { color:var(--muted); }
body .page-intro .welcome-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }

/* A booking desk lifted over a thin brass plinth. */
.home .yh-welcome { padding:22px 0 24px; }
.home .yh-welcome .eyebrow { display:inline-flex; gap:10px; align-items:center; }
.home .yh-welcome .eyebrow::before { content:''; width:23px; height:1px; background:#b28a4d; }
.home .yh-welcome-address { padding:12px 16px; border-left:2px solid #bb9459; background:#fffdf75e; border-radius:0 12px 12px 0; }
.home .yh-booking { position:relative; isolation:isolate; padding:24px 26px; border:1px solid #184b4c40; border-radius:22px; background:linear-gradient(135deg,#fffefa,#faf8f0); box-shadow:inset 0 1px 0 #fff,var(--lux-shadow); margin-bottom:14px; }
.home .yh-booking::after { content:''; position:absolute; z-index:-1; left:18px; right:18px; bottom:-7px; height:7px; border:1px solid #b9975960; border-top:0; border-radius:0 0 16px 16px; background:linear-gradient(90deg,#e2d3b5,#f2e7ce,#e2d3b5); pointer-events:none; }
.home .yh-step { color:#526a63; letter-spacing:.025em; }
.home .yh-booking .yh-step { display:inline-block; padding:3px 9px; border:1px solid #b9975940; border-radius:6px; background:#f2ecdd; margin-bottom:8px; }
.home .yh-search-preferences { padding-top:14px; border-top:1px solid #184b4c18; }
.home .yh-guest-shortcuts button { background:#f3f0e8; border-color:#184b4c22; box-shadow:inset 0 1px 0 #fff9; }
.home .yh-guest-shortcuts button[aria-pressed=true] { background:var(--green); border-color:var(--green); color:#fff9ed; box-shadow:0 4px 9px -5px #184b4c88; }

/* A frame around each room, with generous photographs and a defined foot. */
.home .yh-catalog { padding-top:28px; padding-bottom:30px; }
.home .yh-catalog .homepage-room,
.home .yh-catalog.has-search .crm-available,
body .room-card { position:relative; min-width:0; border:1px solid var(--lux-edge); border-radius:20px; padding:9px; background:linear-gradient(145deg,#fffefb,#f9f6ee); box-shadow:var(--lux-shadow); overflow:hidden; transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
.home .yh-catalog .homepage-room-photo, body .room-card-photo { border-radius:13px; }
.home .yh-catalog .homepage-room-body { padding:16px 12px 5px; }
.home .yh-catalog .homepage-room h3 { font-size:26px; }
.home .yh-catalog .room-details-link { padding:12px 0 8px; border-top:1px solid #184b4c20; border-bottom:0; margin-top:auto; min-height:44px; }
body .room-card-info { padding:20px 16px 12px; }
body .room-card-info>p, body .crm-card-facts { color:var(--muted); }
body .room-photo-count { border:1px solid #edd5ab55; box-shadow:0 3px 12px #102d2933; backdrop-filter:blur(5px); }
body .room-card .room-art { margin:0; border-radius:13px; }
body .room-details-link, body .room-link { color:var(--green); }
.home .yh-catalog.has-search .crm-available, body .room-card.crm-available { border-color:#608b73; outline:none; }
.home .yh-group-card { border-color:#184b4c40; border-radius:18px; box-shadow:var(--lux-shadow); background:var(--white); }
.home .yh-group-selection { border-radius:20px; box-shadow:var(--lux-shadow); }
body .crm-option { border-color:#184b4c35; background:#e9eee0; }
.home .yh-catalog-actions { padding-top:24px; }
.home .catalog-data-note { padding:16px 20px; margin-top:12px; border:1px solid #184b4c24; border-radius:14px; background:#e8eddf99; }
.home .catalog-data-note summary { min-height:32px; }

/* Gallery rests in a pale stone panel. */
.home .yh-about { position:relative; padding:30px; margin:18px 0 32px; gap:36px; border:1px solid #184b4c26; border-radius:24px; background:linear-gradient(125deg,#e8eddf,#f0f0e5); box-shadow:var(--lux-shadow); }
.home .yh-about>div:first-child { padding:4px 4px 4px 0; }
.home .yh-photo-stage { position:relative; border:1px solid #184b4c44; border-radius:18px; box-shadow:0 15px 30px -15px #184b4c55; }
.home .yh-photo-stage::after { content:''; position:absolute; inset:8px; border:1px solid #f4dfb151; border-radius:11px; pointer-events:none; }
.home .yh-photo-frame figcaption { background:var(--green); color:#fff9ed; padding:16px 18px; }
.home .yh-photo-frame figcaption>span { color:#f3d49e; }
.home .yh-photo-controls { top:16px; right:16px; }
.home .yh-photo-controls button { box-shadow:0 4px 14px #10363122; }

/* Two distinct, equally finished lower panels. */
.home .yh-bottom { gap:24px; padding-top:0; border-top:0; align-items:stretch; }
.home .yh-bottom .home-rules { padding:28px; border:1px solid var(--lux-edge); border-radius:22px; background:linear-gradient(140deg,#fffefa,#f9f6ed); box-shadow:var(--lux-shadow); margin:0; }
.home .yh-bottom .home-rules h2 { margin-bottom:22px; }
.home .yh-bottom .home-rules details { border:1px solid #184b4c1f; border-radius:11px; padding:0; margin:10px 0; background:#fcfaf5; overflow:hidden; }
.home .yh-bottom .home-rules summary { padding:14px 15px; font-size:14px; min-height:52px; }
.home .yh-bottom .home-rules summary>span { width:27px; height:27px; border:1px solid #184b4c12; background:#e8eee0; }
.home .yh-bottom .home-rules details[open] { background:#eaf0e1; border-color:#184b4c35; box-shadow:inset 3px 0 0 #b99759; }
.home .yh-bottom .home-rules details[open] summary>span { background:#eab56c; color:var(--ink); }
.home .yh-bottom .home-rules details p { padding:0 15px 16px; margin:0; font-size:14px; line-height:1.8; color:#425f55; }
.home .yh-bottom .rules-link { margin-top:14px; min-height:44px; }
.home .yh-bottom .home-contact { position:relative; isolation:isolate; overflow:hidden; padding:30px; border:1px solid #103f40; border-radius:22px; color:#fff9ed; background:radial-gradient(ellipse at 100% 0%,#36655c,transparent 70%),#184b4c; box-shadow:inset 0 1px 0 #fff3,var(--lux-shadow); }
.home .yh-bottom .home-contact::after { content:''; position:absolute; z-index:-1; right:-36px; top:-36px; width:210px; height:210px; border:1px solid #eab56c33; border-radius:50%; box-shadow:0 0 0 17px #eab56c07,0 0 0 18px #eab56c12; pointer-events:none; }
.home .yh-bottom .home-contact .eyebrow { color:#ecd3a2; }
.home .yh-bottom .home-contact h2 { color:#fff7e6; }
.home .yh-bottom .home-address, .home .yh-bottom .contact-opening { color:#d9e5d3; }
.home .yh-bottom .contact-rows { gap:12px; }
.home .yh-bottom .contact-rows>a { border:1px solid #d7dfcc40; border-radius:12px; padding:15px; background:#ffffff08; color:#fff9ed; font-size:15px; min-height:70px; transition:background .2s,border-color .2s; }
.home .yh-bottom .contact-rows>a>span small { color:#d3dfca; font-size:11px; }
.home .yh-bottom .contact-rows>a>.icon { color:#edc58a; }
.home .yh-bottom .contact-rows>a>.icon:last-child { display:block; }
.home .yh-bottom .map-button { margin-top:20px; min-height:48px; }
.home .yh-bottom .contact-opening { font-size:13px; line-height:1.8; margin:20px 0 0; }

/* Inner rooms, corporate pages and contact surfaces. */
body .crm-catalog-search { padding:20px 24px; border:1px solid var(--lux-edge); border-radius:18px; background:var(--white); box-shadow:var(--lux-shadow); }
body .crm-catalog-search .stay-search { margin:0; }
body .crm-catalog-summary { background:#e8eee0; border:1px solid #184b4c24; }
body .crm-site-demo { border:1px solid #b9975940; background:#f0e5cf; color:#36544a; }
body .room-gallery, body .crm-booking { border:1px solid #184b4c35; background:var(--white); box-shadow:var(--lux-shadow); }
body .room-gallery-main { border:1px solid #184b4c40; }
body .crm-room-facts>div { border:1px solid #184b4c26; background:linear-gradient(140deg,#fffdf8,#f1f1e5); box-shadow:0 6px 15px -10px #184b4c30; }
body .crm-room-facts dt { color:var(--muted); }
body .crm-booking h2 { font-size:30px; }
body .crm-booking-notice { border:1px solid #184b4c1f; background:#e9eee0; }
body .crm-room-features span { border:1px solid #184b4c22; background:#e8eee0; }
body .benefits { gap:22px; }
body .benefits article { padding:26px; border:1px solid var(--lux-edge); border-radius:18px; background:var(--white); box-shadow:var(--lux-shadow); }
body .benefits article>.icon { width:42px; height:42px; padding:9px; border:1px solid #b9975944; border-radius:12px; color:var(--green); background:#f1ecde; margin-bottom:18px; }
body .benefits p { color:var(--muted); margin-bottom:0; }
body .business-banner { border:1px solid #184b4c; border-radius:24px; background:linear-gradient(125deg,#184b4c,#285b54); color:#fff9ed; box-shadow:var(--lux-shadow); }
body .business-banner h2 { color:#fff9ed; }
body .business-banner .eyebrow { color:#ecd3a2; }
body .business-banner p:not(.eyebrow) { color:#e0e9d8; }
body .business-mark { background:#ffffff06; border-color:#ecd3a22e; }
body .business-mark strong { color:#edc58a; font-family:Georgia,serif; font-size:100px; }
body .business-mark>span { color:#e1e6d6; }
body .business-mark::after { border-color:#ecd3a23f; border-radius:16px; }
body .small-banner { border:1px solid var(--lux-edge); background:#e8eee0; box-shadow:var(--lux-shadow); }
body .contact-panel { position:relative; padding:32px; border:1px solid var(--lux-edge); background:var(--white); box-shadow:var(--lux-shadow); }
body .contact-panel>span { display:flex; width:48px; height:48px; align-items:center; justify-content:center; border:1px solid #b9975944; border-radius:14px; background:#f1ecde; color:var(--green); margin-bottom:22px; }
body .contact-panel>a:not(.text-link) { overflow-wrap:anywhere; color:var(--green); }
body .contact-panel>p:not(.eyebrow) { color:var(--muted); }
body .address-panel { overflow:hidden; background:linear-gradient(120deg,#184b4c,#285b54); color:#fff9ed; border-color:#184b4c; }
body .address-panel>span { color:#edc58a; background:#ffffff08; border-color:#ecd3a244; }
body .address-panel h2 { color:#fff9ed; }
body .address-panel .eyebrow { color:#ecd3a2; }
body .address-panel>p:not(.eyebrow) { color:#e0e9d8; }
body .address-panel .text-link { color:#f1cf97; border-color:#ecd3a277; min-height:44px; }
body .prose-block:not(.gy-rules-grid) { margin-bottom:46px; padding:32px; border:1px solid var(--lux-edge); border-radius:22px; background:var(--white); box-shadow:var(--lux-shadow); }
body .prose-block p, body .prose-block li { color:var(--muted); }
body .prose-block .button { margin-top:10px; }
body .contacts-grid + .prose-block { margin-top:34px; }
body .gy-rules-grid { max-width:1240px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; padding:0 0 50px; }
body .gy-rule { min-width:0; position:relative; padding:28px; border:1px solid var(--lux-edge); border-radius:20px; background:var(--white); box-shadow:var(--lux-shadow); }
body .gy-rule h2 { font-size:28px; padding-bottom:18px; border-bottom:1px solid #b9975940; margin:0 0 18px; }
body .gy-rule p { margin:0; font-size:15px; line-height:1.8; }
body .gy-rule:last-of-type { grid-column:1/-1; background:#e8eee0; }
body .gy-rules-grid>.text-link { justify-self:start; min-height:44px; }

/* The footer is the dark base of the composition. */
body .site-footer { position:relative; background:var(--green); color:#fff9ed; border-top:1px solid #eab56c99; padding-top:42px; box-shadow:0 -12px 35px -24px #184b4c55; }
body .footer-brand { color:#fff9ed; font-size:30px; }
body .site-footer .footer-grid p, body .site-footer .footer-grid .eyebrow, body .footer-bottom { color:#d7e3ce; }
body .site-footer .footer-grid .eyebrow { color:#edc58a; }
body .footer-bottom { border-color:#cedab42b; }
body .site-footer .footer-grid a:hover { color:#f2ce93; }
body .footer-links a { min-height:36px; display:flex; align-items:center; }
body .home-mobile-actions { background:#fffdf8f2; border-top:1px solid #184b4c2e; box-shadow:0 -8px 22px -16px #184b4c55; backdrop-filter:blur(12px); }

/* Explicitly supersede the earlier homepage-only palette declarations. */
body.home .site-header { height:74px; padding:0 24px; background:linear-gradient(130deg,#fffdfbf5,#faf7eff5); border:1px solid var(--lux-edge); border-radius:18px; box-shadow:var(--lux-shadow); }
body.home .header-shell { padding:12px 0; }
body.home .site-footer { background:var(--green); color:#fff9ed; border-top:1px solid #eab56c99; }
body.home .site-footer .footer-grid p, body.home .site-footer .footer-bottom { color:#d7e3ce; }
body.home .site-footer .footer-grid a { color:#fff9ed; }
body.home .site-footer .footer-grid a:hover { color:#f2ce93; }
body.home .site-footer .footer-grid .eyebrow { color:#edc58a; }
.home .yh-bottom .home-contact::after { display:block; }
.home .yh-bottom .home-contact .map-button { background:linear-gradient(135deg,#f0c584,#eab56c); border:1px solid #c58e454f; color:#203e3b; box-shadow:inset 0 1px 0 #fff5d99c,0 5px 12px -5px #9b702c55; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .home .yh-catalog .homepage-room:hover, body .room-card:hover { transform:translateY(-4px); border:1px solid #a28e67; box-shadow:var(--lux-hover); }
  .home .yh-bottom .home-rules summary:hover { background:#e8eee055; }
  .home .yh-bottom .contact-rows>a:hover { background:#ffffff14; border-color:#edc58a88; }
}
@media(max-width:1050px) {
  body .desktop-nav { gap:20px; }
  .home .yh-about { gap:26px; padding:24px; }
  .home .yh-bottom .home-rules, .home .yh-bottom .home-contact { padding:24px; }
}
@media(max-width:760px) {
  body .site-header, body.home .site-header { height:64px; padding:0 14px; gap:12px; border-radius:14px; }
  body .header-shell, body.home .header-shell { padding:9px 0; }
  body:not(.home) .page-intro { padding:26px 22px; border-radius:19px; margin-top:14px; margin-bottom:24px; }
  body:not(.home) .page-intro::after { right:-78px; opacity:.5; }
  body .page-intro .lead { max-width:100%; }
  body .benefits article { padding:23px; }
  body .contact-panel { padding:25px; }
  body .prose-block:not(.gy-rules-grid) { padding:25px; margin-bottom:32px; }
  body .gy-rules-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
  body .gy-rule { padding:24px; }
  body .gy-rule h2 { font-size:26px; }
}
@media(max-width:650px) {
  .home .yh-welcome { padding:17px 2px 23px; }
  .home .yh-booking { padding:21px 18px; border-radius:18px; }
  .home .yh-booking .search-submit { min-height:48px; }
  .home .yh-catalog .homepage-room-grid { gap:22px; }
  .home .yh-catalog .homepage-room-body { padding:17px 12px 6px; }
  .home .yh-catalog .homepage-room h3 { font-size:28px; }
  .home .yh-catalog .crm-card-facts, .home .yh-catalog .crm-card-price { font-size:14px; }
  .home .yh-about { padding:22px 18px; gap:24px; margin:10px 0 26px; border-radius:19px; }
  .home .yh-about>div:first-child { padding:0; }
  .home .yh-about h2 { font-size:27px; }
  .home .yh-photo-controls { top:12px; right:12px; }
  .home .yh-photo-controls>span { font-size:11px; }
  .home .yh-photo-frame figcaption { padding:14px; }
  .home .yh-photo-frame figcaption>span { font-size:9px; letter-spacing:.06em; }
  .home .yh-bottom { gap:22px; }
  .home .yh-bottom .home-rules, .home .yh-bottom .home-contact { padding:23px 18px; border-radius:19px; }
  .home .yh-bottom .home-rules summary { padding:13px 12px; font-size:14px; }
  .home .yh-bottom .home-rules details p { padding:0 12px 15px; }
  .home .yh-bottom .contact-rows>a { padding:13px 12px; font-size:14px; gap:10px; }
  .home .yh-bottom .contact-rows>a>.icon:last-child { width:15px; }
  body .crm-catalog-search { padding:18px; }
  body .business-banner>div:first-child { padding:28px 24px; }
  body .business-mark { padding:28px; }
  body .room-navigation { flex-wrap:wrap; }
  body .room-navigation .text-link { font-size:13px; min-height:44px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  body .button, body .room-card, .home .yh-catalog .homepage-room, body .room-card-photo>img, .home .homepage-room-photo>img { transition:none; }
  body .button:hover, body .room-card:hover, .home .yh-catalog .homepage-room:hover { transform:none; }
}
