/* Personal guest guides, public accommodation pages and their conversations. */
.experience-guest {
  --photo-paper: #f5f3ee;
  color: var(--ink);
  background: var(--paper);
}
.experience-guest :is(main, section, article, figure, nav, form, div) { min-width: 0; }
.experience-guest :is(p, h1, h2, h3, strong, address, figcaption, a) { overflow-wrap: anywhere; }
.experience-guest .eyebrow { font-size: 12px; letter-spacing: .1em; }
.experience-guest :is(h1, h2) {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 900;
  font-variation-settings: "opsz" 72, "SOFT" 100, "WONK" 1;
  letter-spacing: -.035em;
}
.experience-guest :is(.guide-header, .guide-shell, .guest-footer, .guest-brand) {
  width: min(1080px, calc(100% - 80px));
  margin-inline: auto;
}
.guide-header {
  display: flex;
  align-items: center;
  gap: 24px;
  padding-block: 25px;
  border-bottom: 1px solid var(--line);
}
.guide-header .brand { flex: 0 0 auto; }
.guide-header-name { flex: 1; color: var(--muted); font-size: 14px; }
.guide-header nav { display: flex; align-items: center; gap: 4px; }
.guide-header nav a {
  padding: 7px 11px;
  border-radius: 7px;
  font-size: 14px;
  text-decoration: none;
}
.guide-header nav a.selected { color: var(--berry); background: var(--peach); font-weight: 700; }
.guide-shell { padding-block: 32px 16px; }
.guest-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: center;
  gap: 35px;
  padding: clamp(28px, 4vw, 48px);
  background: var(--peach);
  border-radius: 20px;
}
.guest-hero-text { grid-template-columns: minmax(0, 1fr); }
.guest-hero-text .guest-welcome { max-width: 780px; }
.guest-welcome .eyebrow { margin: 0 0 24px; color: var(--muted); }
.guest-salutation { margin: 0 0 9px; font-size: 17px; color: var(--ink); }
.guest-welcome h1 { margin: 0 0 22px; font-size: clamp(38px, 4.8vw, 58px); line-height: 1.07; }
.guest-welcome .guest-location { margin: -6px 0 22px; color: var(--muted); font-size: 15px; }
.guest-property-title { display: block; font-size: .78em; margin-top: 5px; }
.guest-welcome :is(.personal-greeting, .welcome-message p) { font-size: 16px; line-height: 1.6; color: var(--ink); }
.guest-welcome .personal-greeting { margin-bottom: 15px; }
.welcome-message p { margin-bottom: 16px; }
.welcome-message small { display: block; font-size: 12px; color: var(--muted); margin-top: -6px; }
.host-signature { display: flex; flex-direction: column; gap: 5px; margin-top: 26px; }
.host-signature small { color: var(--muted); font-size: 12px; }
.host-signature strong {
  font-family: "Fraunces", Georgia, serif;
  font-size: 25px;
  font-weight: 600;
  font-style: italic;
  letter-spacing: -.025em;
}
.welcome-photos {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  align-items: center;
  gap: 10px;
  padding: 10px 3px;
}
.welcome-polaroid {
  margin: 0;
  padding: 9px 9px 0;
  background: var(--photo-paper);
  color: #352a2d;
  box-shadow: 0 7px 20px #352a2d17, 0 1px 3px #352a2d10;
  transform: rotate(-1.5deg);
}
.welcome-polaroid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.welcome-polaroid figcaption { padding: 13px 2px 16px; font-family: "Caveat", cursive; font-size: 21px; font-weight: 500; line-height: 1.25; text-align: center; }
.welcome-polaroid-secondary { transform: rotate(1.5deg); margin-top: 44px; }
.welcome-polaroid-secondary img { aspect-ratio: 4 / 5; }
.welcome-photos-single { grid-template-columns: minmax(0, 1fr); max-width: 330px; margin: 0 auto; }
.welcome-photos-single img { aspect-ratio: 5 / 4; }
.welcome-photo-note { grid-column: 1 / -1; text-align: center; font-size: 11px; color: var(--muted); margin: 8px 0 0; }
.stay-dates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 24px;
}
.stay-dates > div { display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; align-items: center; gap: 5px 12px; padding: 15px 2px; }
.stay-dates .icon { grid-row: 1 / 3; width: 22px; height: 22px; color: var(--berry); }
.stay-dates span { font-size: 14px; color: var(--muted); }
.stay-dates strong { font-size: 17px; font-weight: 600; }
.stay-dates small { grid-column: 2 / -1; color: var(--muted); font-size: 12px; }
.guest-shortcuts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 18px 0 34px; }
.guest-shortcuts a {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 3px 12px;
  padding: 21px 18px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  text-decoration: none;
}
.guest-shortcuts .icon { grid-row: 1 / 3; width: 23px; height: 23px; color: var(--berry); }
.guest-shortcuts strong { font-size: 16px; font-weight: 600; line-height: 1.3; }
.guest-shortcuts small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.guest-shortcuts a:hover { border-color: var(--berry); }
.door-card, .guest-wifi { padding: 30px; border-radius: 16px; background: var(--peach); margin: 0 0 24px; }
.door-card { display: flex; align-items: flex-start; gap: 18px; }
.door-card > .icon { margin-top: 4px; flex: 0 0 24px; }
.door-card > div { flex: 1; }
.door-card h2 { font-size: 27px; margin: 0 0 15px; }
.door-card p { color: var(--ink); margin: 0 0 10px; overflow-wrap: anywhere; }
.door-card small { color: var(--muted); font-size: 13px; }
.guest-wifi { display: grid; grid-template-columns: minmax(0, 1fr) 185px; align-items: center; gap: 35px; }
.guest-wifi .eyebrow { margin-bottom: 12px; }
.guest-wifi h2 { display: flex; gap: 12px; align-items: center; font-size: 32px; margin-bottom: 12px; }
.guest-wifi h2 .icon { flex-shrink: 0; }
.guest-wifi p { color: var(--ink); font-size: 16px; }
.guest-wifi .label { color: var(--ink); font-size: 14px; margin: 17px 0 6px; }
.wifi-value, .copy-row input { min-width: 0; width: 100%; min-height: 46px; padding: 10px 12px; border-radius: 8px; color: var(--ink); background: var(--white); border: 1px solid var(--line); font-size: 16px; }
.copy-row { display: flex; align-items: stretch; gap: 9px; }
.copy-row input { flex: 1; }
.copy-row .button { flex-shrink: 0; }
.guest-qr-wrap { text-align: center; }
.wifi-qr { background: #fff; padding: 8px; width: 100%; aspect-ratio: 1; }
.wifi-qr svg { display: block; width: 100%; height: auto; }
.guest-qr-wrap p { font-size: 13px; margin: 10px 0 0; }
.guest-qr-wrap noscript { font-size: 12px; }
.guide-information { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: 48px; margin: 50px 0; align-items: start; }
.guide-aside { position: sticky; top: 28px; }
.guide-aside .eyebrow { margin-bottom: 14px; }
.guide-aside h2 { font-size: 38px; margin-bottom: 15px; }
.guide-aside p { font-size: 16px; max-width: 25ch; }
.guide-section { scroll-margin-top: 25px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.guide-section summary { display: flex; align-items: center; gap: 14px; list-style: none; cursor: pointer; padding: 23px; }
.guide-section summary::-webkit-details-marker { display: none; }
.guide-section summary h3 { flex: 1; font-family: inherit; font-size: 20px; font-weight: 600; letter-spacing: -.015em; line-height: 1.25; margin: 0; }
.guide-section summary > .icon:first-child { width: 21px; height: 21px; color: var(--berry); flex-shrink: 0; }
.guide-section summary > .icon:last-child { width: 18px; height: 18px; flex-shrink: 0; transition: transform .15s ease; }
.guide-section[open] summary > .icon:last-child { transform: rotate(90deg); }
.info-body { padding: 0 23px 24px; font-size: 16px; line-height: 1.7; }
.info-body p { color: var(--ink); margin: 0; }
.info-body .help { display: block; margin-top: 10px; }
.address-card { padding: 26px; }
.address-card .eyebrow { margin-bottom: 10px; }
.address-card h3 { font-family: inherit; font-size: 22px; font-weight: 600; margin: 0 0 12px; letter-spacing: -.02em; }
.address-card p { font-size: 16px; color: var(--ink); }
.map-actions { flex-wrap: wrap; gap: 10px; }
.address-card .help { font-size: 12px; color: var(--muted); margin: 14px 0 0; }
.arrival-times { display: flex; flex-wrap: wrap; gap: 8px 22px; border-top: 1px solid var(--line); margin-top: 22px; padding-top: 14px; font-size: 14px; }
.guest-contact, .guest-messages { border: 1px solid var(--line); background: var(--white); border-radius: 16px; padding: 30px; margin: 30px 0; scroll-margin-top: 24px; }
.guest-contact > .icon { display: none; }
.guest-contact h2, .guest-messages h2 { font-size: 30px; line-height: 1.15; margin: 0 0 12px; }
.guest-contact .eyebrow, .guest-messages .eyebrow { margin-bottom: 12px; }
.guest-contact p, .guest-messages p { font-size: 16px; }
.guest-contact strong { display: block; margin: 12px 0; font-size: 16px; }
.guest-contact .showcase-chat-note { max-width: 65ch; margin-bottom: 23px; }
.guest-contact .showcase-chat-note p { font-size: 14px; }
.guest-gallery { margin-block: 35px; }
.guest-gallery h2 { font-size: 32px; }
.guest-gallery .eyebrow { margin-bottom: 12px; }
.property-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 18px; padding: 3px; }
.property-gallery figure { margin: 0; padding: 8px 8px 0; background: var(--photo-paper); color: #352a2d; box-shadow: 0 3px 12px #352a2d0c; transform: rotate(-1deg); }
.property-gallery figure:nth-child(even) { transform: rotate(1deg); }
.property-gallery img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.property-gallery figcaption { font-family: "Caveat", cursive; font-size: 21px; font-weight: 500; padding: 13px 4px 18px; line-height: 1.25; }
.guest-session { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 25px; padding-top: 8px; }
.experience-guest .text-button { font-size: 14px; }
.guest-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; border-top: 1px solid var(--line); padding-block: 25px 30px; margin-top: 26px; font-size: 13px; color: var(--muted); }
.guest-footer .brand { font-size: 22px; margin-left: 4px; }
.guest-footer > a { font-size: 14px; }
.guest-footer .guest-demo-note, .photo-credits { width: 100%; margin: 0; font-size: 12px; color: var(--muted); }
.photo-credits a { text-decoration: underline; text-underline-offset: 3px; }
.guest-brand { padding-block: 27px; }
.guest-access { width: min(580px, calc(100% - 40px)); margin: 36px auto 60px; padding: clamp(25px, 4vw, 45px); background: var(--white); border: 1px solid var(--line); border-radius: 16px; }
.guest-access h1 { font-size: clamp(36px, 5vw, 49px); line-height: 1.08; margin: 12px 0 24px; }
.guest-access .eyebrow { color: var(--berry); margin-bottom: 18px; }
.guest-access p { font-size: 16px; }
.guest-access .muted { display: inline-block; font-size: 14px; margin-top: 6px; }
.guest-access .help { font-size: 13px; margin: 25px 0 0; }
.code-fallback { margin-top: 30px; border-top: 1px solid var(--line); }
.code-fallback summary { cursor: pointer; padding-top: 20px; font-size: 15px; font-weight: 600; }
.access-form { margin-top: 18px; }
.access-form .button { width: 100%; }
.guest-access-footer { width: min(580px, calc(100% - 40px)) !important; margin-top: 0; }
.chat-page { max-width: 800px; margin: 0 auto; }
.chat-page > .back-link { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; margin-bottom: 25px; }
.chat-heading { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 22px; }
.chat-heading .avatar { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; background: var(--peach); color: var(--ink); font-weight: 600; font-size: 18px; }
.chat-heading h1 { font-size: 36px; margin: 0 0 7px; }
.chat-heading h2 { font-size: 29px; margin: 0 0 10px; }
.chat-heading .eyebrow { margin-bottom: 8px; }
.chat-heading p { margin-bottom: 0; }
.chat-timeline { display: flex; flex-direction: column; gap: 12px; height: clamp(240px, 38svh, 380px); padding: 20px; overflow-y: auto; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; overscroll-behavior: contain; }
.chat-bubble { align-self: flex-start; max-width: 85%; padding: 13px 17px; background: var(--white); border: 1px solid var(--line); border-radius: 12px 12px 12px 3px; overflow-wrap: anywhere; }
.chat-bubble.mine { align-self: flex-end; background: var(--peach); border-color: transparent; border-radius: 12px 12px 3px 12px; }
.chat-bubble p { color: var(--ink); margin: 0 0 7px; font-size: 16px; line-height: 1.55; white-space: normal; }
.chat-bubble small { color: var(--muted); font-size: 12px; }
.chat-timeline.chat-sample { height: auto; overflow: visible; }
.guide-section summary:hover { background: var(--paper); }
.guide-section summary { border-radius: inherit; }
.stay-dates { font-variant-numeric: tabular-nums; }
.chat-empty { margin: auto; text-align: center; color: var(--muted); max-width: 38ch; font-size: 15px; }
.chat-compose { margin-top: 22px; }
.chat-compose textarea { min-height: 112px; }
.chat-compose .button { min-height: 44px; }
.chat-page > .help, .guest-messages > .help { margin-top: 13px; font-size: 12px; }
.property-wrap { width: min(1080px, calc(100% - 80px)); margin-inline: auto; }
.property-header { display: flex; justify-content: space-between; align-items: center; gap: 25px; padding-block: 25px; border-bottom: 1px solid var(--line); }
.property-wordmark { font-family: "Fraunces", Georgia, serif; font-weight: 900; font-size: 24px; letter-spacing: -.03em; text-decoration: none; }
.property-header nav { display: flex; align-items: center; gap: 24px; flex-shrink: 0; }
.property-header nav a { font-size: 14px; text-decoration: none; }
.property-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: center; gap: 42px; padding: 45px; background: var(--peach); border-radius: 20px; margin-top: 35px; }
.property-hero-text { grid-template-columns: minmax(0, 1fr); }
.property-hero .eyebrow { margin-bottom: 20px; }
.property-hero h1 { font-size: clamp(42px, 5.5vw, 64px); margin: 0 0 22px; line-height: 1.05; }
.property-hero .intro { color: var(--ink); font-size: 18px; line-height: 1.6; max-width: 38ch; }
.property-hero .button { margin-top: 8px; }
.property-facts { display: flex; flex-wrap: wrap; gap: 18px 30px; border-bottom: 1px solid var(--line); padding: 27px 0; }
.property-facts > span { display: flex; align-items: center; gap: 10px; font-size: 15px; }
.property-facts .icon { width: 21px; height: 21px; color: var(--berry); flex-shrink: 0; }
.property-section { padding-block: 50px; border-bottom: 1px solid var(--line); scroll-margin-top: 25px; }
.property-section .eyebrow { margin-bottom: 13px; }
.property-section h2 { font-size: clamp(30px, 4vw, 42px); margin: 0 0 23px; }
.property-about, .property-location { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 60px; }
.property-prose p { font-size: 17px; line-height: 1.75; color: var(--ink); margin-bottom: 20px; }
.property-prose p:last-child { margin-bottom: 0; }
.property-gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 26px; padding: 4px; }
.property-gallery-grid figure { margin: 0; padding: 10px 10px 0; background: var(--photo-paper); color: #352a2d; box-shadow: 0 5px 16px #352a2d15; transform: rotate(-1deg); }
.property-gallery-grid figure:nth-child(even) { transform: rotate(1deg); margin-top: 16px; }
.property-gallery-grid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.property-gallery-grid figcaption { font-family: "Caveat", cursive; font-size: 21px; font-weight: 500; padding: 16px 5px 21px; line-height: 1.25; }
.property-amenities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 25px; list-style: none; padding: 0; margin: 0; }
.property-amenities li { display: flex; gap: 10px; align-items: flex-start; padding-block: 13px; border-bottom: 1px solid var(--line); font-size: 16px; }
.property-amenities .icon { flex: 0 0 19px; width: 19px; height: 19px; margin-top: 3px; color: var(--berry); }
.property-address { padding: 28px; background: var(--white); border: 1px solid var(--line); border-radius: 12px; }
.property-address address { font-style: normal; font-size: 17px; line-height: 1.6; margin-bottom: 22px; }
.property-contact { margin-block: 40px; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 50px; background: var(--white); padding: 35px; border: 1px solid var(--line); border-radius: 16px; }
.property-contact h2 { font-size: 34px; margin-bottom: 20px; }
.property-contact p { font-size: 16px; }
.property-contact-info { align-self: center; }
.property-contact-info strong { font-size: 20px; }
.property-contact-info .button { margin-top: 8px; }
.property-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 25px; border-top: 1px solid var(--line); padding-block: 25px 35px; color: var(--muted); font-size: 13px; }
.property-footer nav { display: flex; flex-wrap: wrap; gap: 20px; font-size: 14px; }
.property-footer .brand { display: inline-block; font-size: 22px; }
.property-footer .guest-demo-note { width: 100%; font-size: 12px; margin: 0; }
.experience-guest .design-switch { color: var(--muted); font-size: 12px; }
.property-page .publish-state { padding: 20px max(20px, calc((100vw - 1080px) / 2)); margin: 0; border-radius: 0; }
.property-page .publish-state form { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 12px; }
@media (max-width: 900px) {
  .experience-guest :is(.guide-header, .guide-shell, .guest-footer, .guest-brand), .property-wrap { width: calc(100% - 48px); }
  .guest-hero, .property-hero { gap: 25px; padding: 30px; }
  .guest-welcome h1 { font-size: 44px; }
  .guest-shortcuts a { padding: 17px 12px; gap: 4px 8px; }
  .guide-information { grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: 30px; }
  .property-header nav { gap: 16px; }
  .property-about, .property-location { gap: 30px; }
}
@media (max-width: 760px) {
  .guide-header { gap: 15px; padding-block: 22px; flex-wrap: wrap; }
  .guide-header-name { order: 3; flex-basis: 100%; margin-top: -6px; }
  .guide-header nav { margin-left: auto; }
  .guide-shell { padding-top: 24px; }
  .guest-hero, .property-hero { grid-template-columns: minmax(0, 1fr); }
  .guest-welcome h1 { font-size: clamp(37px, 7vw, 51px); }
  .welcome-photos { width: min(430px, 100%); margin: 0 auto; padding-top: 5px; }
  .welcome-photos-single { max-width: 320px; }
  .welcome-polaroid img { aspect-ratio: 4 / 3; }
  .guest-shortcuts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guest-shortcuts a { padding: 20px 17px; }
  .guide-information { grid-template-columns: minmax(0, 1fr); gap: 17px; margin-block: 36px; }
  .guide-aside { position: static; }
  .guide-aside h2 { font-size: 34px; margin-bottom: 10px; }
  .guide-aside p { max-width: none; }
  .property-header { align-items: flex-start; flex-direction: column; gap: 16px; }
  .property-header nav { width: 100%; flex-wrap: wrap; justify-content: space-between; gap: 12px 20px; }
  .property-header nav .button { padding-inline: 13px; }
  .property-hero { margin-top: 24px; }
  .property-hero h1 { font-size: clamp(40px, 7vw, 56px); }
  .property-about, .property-location, .property-contact { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .property-section { padding-block: 38px; }
  .property-amenities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .property-contact { padding: 27px; }
}
@media (max-width: 480px) {
  .experience-guest :is(.guide-header, .guide-shell, .guest-footer, .guest-brand), .property-wrap { width: calc(100% - 32px); }
  .guest-hero, .property-hero { padding: 25px 22px; border-radius: 15px; gap: 25px; }
  .guest-welcome .eyebrow { margin-bottom: 20px; }
  .guest-welcome h1 { font-size: 37px; }
  .welcome-polaroid { padding: 6px 6px 0; }
  .welcome-polaroid figcaption { font-size: 18px; padding: 11px 1px 15px; }
  .welcome-polaroid-secondary { margin-top: 25px; }
  .welcome-photos { gap: 8px; }
  .stay-dates { gap: 15px; }
  .stay-dates > div { grid-template-columns: minmax(0, 1fr); gap: 3px; padding: 14px 0 7px; }
  .stay-dates .icon { display: none; }
  .stay-dates small { grid-column: auto; }
  .guest-shortcuts { gap: 9px; margin-bottom: 25px; }
  .guest-shortcuts a { padding: 16px 12px; grid-template-columns: 19px minmax(0, 1fr); gap: 5px 9px; }
  .guest-shortcuts .icon { width: 19px; height: 19px; }
  .guest-shortcuts strong { font-size: 15px; }
  .guest-shortcuts small { font-size: 12px; }
  .guest-wifi { grid-template-columns: minmax(0, 1fr); padding: 24px 20px; gap: 24px; }
  .guest-wifi h2 { font-size: 28px; }
  .guest-qr-wrap { width: 160px; margin: 0 auto; }
  .copy-row { flex-wrap: wrap; }
  .copy-row input { flex-basis: 140px; }
  .copy-row .button { min-height: 44px; }
  .door-card { padding: 24px 20px; gap: 13px; }
  .door-card h2 { font-size: 25px; }
  .address-card { padding: 22px 19px; }
  .map-actions .button { flex: 1 1 120px; }
  .guide-section summary { padding: 20px 18px; gap: 11px; }
  .guide-section summary h3 { font-size: 19px; }
  .info-body { padding: 0 18px 23px; }
  .guest-messages, .guest-contact { padding: 23px 19px; border-radius: 12px; }
  .guest-messages .chat-heading { gap: 11px; }
  .guest-messages .chat-heading .avatar { display: none; }
  .guest-messages h2, .guest-contact h2 { font-size: 28px; }
  .chat-timeline { padding: 13px; }
  .chat-bubble { max-width: 95%; padding: 12px 14px; }
  .chat-compose .button { width: 100%; }
  .chat-heading h1 { font-size: 30px; }
  .chat-heading .avatar { flex-basis: 36px; width: 36px; height: 36px; }
  .property-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .guest-footer { gap: 14px; align-items: baseline; }
  .guest-footer .brand { display: inline-block; }
  .guest-access { margin-top: 15px; }
  .property-hero h1 { font-size: 40px; }
  .property-facts { flex-direction: column; gap: 14px; }
  .property-gallery-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-inline: 4px; }
  .property-gallery-grid figure:nth-child(even) { margin-top: 0; }
  .property-amenities { grid-template-columns: minmax(0, 1fr); }
  .property-contact { padding: 25px 22px; }
  .property-contact h2 { font-size: 31px; }
  .property-footer nav { gap: 10px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .guide-section summary > .icon:last-child { transition: none; }
}

/* Demo and preview controls belong to the product chrome, not guest content. */
.experience-guest :is(.demo-toolbar, .preview-banner) {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 20px;
  padding: 14px max(20px, calc((100% - 1080px) / 2));
  border-bottom: 1px solid var(--line);
  background: var(--white);
  font-size: 14px;
  line-height: 1.5;
}
.experience-guest .preview-banner { background: var(--peach); }
.experience-guest .demo-toolbar > span { flex: 1 1 220px; color: var(--muted); }
.experience-guest :is(.demo-toolbar, .preview-banner) > a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  text-underline-offset: 3px;
}
.experience-guest .demo-toolbar form { margin: 0; }
.experience-guest .demo-toolbar button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  max-width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--paper);
  color: var(--berry);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.experience-guest .demo-toolbar button:hover { border-color: var(--berry); }
.experience-guest .guide-header nav a { display: inline-flex; align-items: center; min-height: 44px; }

@media print {
  .experience-guest { background: #fff !important; color: #352a2d !important; --ink: #352a2d; --muted: #635450; --paper: #fff; --white: #fff; --peach: #f5f3ee; --line: #ded7cf; --berry: #741f3e; }
  .guide-shell, .guide-header, .guest-footer, .property-wrap { width: 100% !important; }
  .guide-header { padding-top: 0; }
  .guide-header nav, .guest-shortcuts, .guest-session, .guest-messages, .demo-toolbar, .preview-banner, .guest-contact button, .copy-row button, .map-actions, .toast { display: none !important; }
  .guest-hero { grid-template-columns: minmax(0, 1fr) minmax(0, .6fr); padding: 25px; break-inside: avoid; }
  .guest-hero-text { grid-template-columns: minmax(0, 1fr); }
  .guest-welcome h1 { font-size: 34px; }
  .welcome-polaroid { box-shadow: none; border: 1px solid #ded7cf; transform: none; }
  .welcome-polaroid-secondary { margin-top: 15px; }
  .guest-wifi, .door-card, .guest-contact { break-inside: avoid; }
  .guide-information { display: block; margin-block: 25px; }
  .guide-aside { position: static; }
  .guide-section { break-inside: avoid; }
  .guide-section summary { padding: 16px; }
  .info-body { padding-inline: 16px; }
  .guest-footer { margin-top: 20px; }
}
