/* Pullman property presentation. Load after site.css and seo.css.
   Source palette: all.accor.com/fact-sheet/styles-v267/styles.css.
   Public logo artwork is unchanged; its transparent canvas is trimmed. */
:root {
  --brand-navy: #1e1852;
  --brand-navy-hover: #38326c;
  --brand-footer: #050033;
  --brand-text: #252339;
  --brand-muted: #5b586b;
  --brand-paper: #faf9f6;
  --brand-border: #dedce6;
  --brand-warm: #7c5844;
  --brand-soft: #f3f1ed;
  --background: #faf9f6;
  --foreground: #252339;
  --card: #fff;
  --card-foreground: #252339;
  --popover: #fff;
  --popover-foreground: #252339;
  --primary: #1e1852;
  --primary-foreground: #fff;
  --secondary: #f3f1ed;
  --secondary-foreground: #252339;
  --muted: #f3f1ed;
  --muted-foreground: #5b586b;
  --accent: #eeedf5;
  --accent-foreground: #1e1852;
  --border: #dedce6;
  --input: #817b91;
  --ring: #1e1852;
  --ink: #1e1852;
  --rust: #1e1852;
  --paper: #faf9f6;
  --line: #dedce6;
}

body { color: var(--brand-text); }
::selection { color: #fff; background: var(--brand-navy); }
:focus-visible { outline: 3px solid var(--brand-navy); outline-offset: 4px; }
h1, h2, h3, h4 { color: var(--brand-navy); }
a:hover { color: var(--brand-navy-hover); }
.eyebrow { color: var(--brand-navy); }
small, .micro, .muted, .seo-intro, .page-intro p,
.room-description, .room-meta, .room-conditions, .room-price span,
.room-price > div > small, .option-description, .option-conditions,
.starting-rate-note, .search-intro, .search-note,
.location-teaser p, .location-symbol, .faq-list p,
.detail-facts dt, .breadcrumb, .contact-method p,
.summary-note, .price-lines dt, .success-page > p,
.legal-content p, .review-block p, .whatsapp-note {
  color: var(--brand-muted);
}
.seo-intro { font-size: 16px; line-height: 1.75; }
.section-head h2 em, .booking-search h2 em { color: var(--brand-muted); }

/* The source wordmark stays grey on a white field, including in the footer. */
.header {
  height: 94px;
  background: #fff;
  border-bottom-color: var(--brand-border);
  box-shadow: 0 2px 14px rgb(30 24 82 / 4%);
}
.logo {
  flex: 0 0 auto;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 184px;
  min-height: 66px;
  padding: 8px 10px;
  color: var(--brand-navy) !important;
  background: #fff;
  border: 1px solid var(--brand-border);
  border-radius: 4px;
  text-decoration: none;
}
.logo .brand-logo {
  display: block;
  width: 162px;
  height: auto;
  aspect-ratio: 58 / 13;
  object-fit: contain;
}
.logo .brand-destination {
  color: #464648;
  font: 500 8px/1.6 Arial, Helvetica, sans-serif;
  letter-spacing: .18em;
  text-align: center;
  white-space: nowrap;
}
.desktop-nav a { font-size: 13px; font-weight: 500; }
.desktop-nav a[aria-current="page"] { color: var(--brand-navy); }
.desktop-nav a[aria-current="page"]::after { height: 2px; background: var(--brand-navy); }
.language-trigger { color: var(--brand-navy); }
.language-menu, .mobile-menu { background: #fff !important; color: var(--brand-text); }
.language-option[data-state="checked"] { color: var(--brand-navy); background: #eeedf5; }
.language-option[data-highlighted] { background: #eeedf5 !important; }
.language-option small { color: var(--brand-muted); }
.mobile-menu nav > a { line-height: 1.3; }

/* Consistent booking actions, clear inputs and a calm price hierarchy. */
.btn { border-radius: 28px; min-height: 48px; }
.btn.accent, .btn.dark { background: var(--brand-navy); color: #fff; }
.btn.accent:hover, .btn.dark:hover { background: var(--brand-navy-hover); color: #fff; filter: none; }
.btn.light { background: #fff; color: var(--brand-navy); }
.btn.light:hover { background: #eeedf5; color: var(--brand-navy); filter: none; }
.btn.outline { color: var(--brand-navy); background: #fff; border-color: var(--brand-navy); }
.btn.outline:hover { color: var(--brand-navy); background: #eeedf5; filter: none; }
.text-link { color: var(--brand-navy); }
.text-link:hover { color: var(--brand-navy-hover); text-decoration: underline; text-underline-offset: 4px; }
.booking-search { background: #fff; }
.field label { color: var(--brand-text); }
.field input, .field textarea, .hotel-select { color: var(--brand-text); border-color: #817b91; }
.field input:focus, .field textarea:focus { border-color: var(--brand-navy); box-shadow: 0 2px var(--brand-navy); }
.field input::placeholder, .field textarea::placeholder { color: var(--brand-muted); opacity: 1; }
.search-rate { color: var(--brand-muted); }
.search-rate strong { color: var(--brand-navy); font-size: 32px; }
.search-rate small { color: var(--brand-muted); font-size: 12px; }
.booking-search > .micro { font-size: 12px; }
.room-card, .room-option { border-color: var(--brand-border); border-radius: 8px; }
.room-copy > .eyebrow, .option-copy > .eyebrow { color: var(--brand-warm); font-size: 11px; }
.room-card.selected, .room-option.is-selected { border-color: var(--brand-navy); box-shadow: 0 0 0 1px var(--brand-navy); }
.room-price strong, .option-price > div > strong { color: var(--brand-navy); font-size: 28px; }
.room-price span, .room-price > div > small { font-size: 12px; }
.room-price > .text-link { font-size: 13px; }
.room-request { color: var(--brand-navy); font-size: 12px; }
.round-arrow { background: #fff; color: var(--brand-navy); }
.amenity-tags span { color: var(--brand-muted); background: #faf9f6; border-color: var(--brand-border); border-radius: 3px; }
.price-summary, .room-allocation, .offer-validity { background: var(--brand-soft); }
.room-allocation .allocation-grid > div, .selection-actions, .mobile-book { background: #fff; }
.booking-stepper li { color: var(--brand-muted); }
.booking-stepper li.active { color: var(--brand-navy); border-color: var(--brand-navy); font-weight: 600; }
.booking-stepper li.done { color: var(--brand-navy); border-color: var(--brand-navy); }
.notice { background: var(--brand-soft); color: var(--brand-text); border-left-color: var(--brand-warm); }
.map-placeholder { background: var(--brand-soft); }

/* Keep photography and editorial type; make all overlaid copy readable. */
.hero-photo { background: var(--brand-navy); }
.hero-photo::after {
  background: linear-gradient(180deg, rgb(5 0 51 / 0%) 0%, rgb(5 0 51 / 15%) 30%, rgb(5 0 51 / 52%) 50%, rgb(5 0 51 / 68%) 72%, rgb(5 0 51 / 88%) 100%);
}
.hero-caption, .hero-caption h1, .hero-caption h1 em,
.hero-caption p, .hero-caption .eyebrow, .hero-caption .hero-link { color: #fff; }
.hero-caption { text-shadow: 0 1px 8px rgb(5 0 51 / 24%); }
.hero-caption .hero-link { border-color: #fff; }
.hero-caption .hero-link:hover { color: #fff; border-color: #fff; }
.hero-caption :focus-visible { outline-color: #fff; }
.photo-credit { color: #fff; }
.hotel-reputation { background: #f3f1ed; }
.hotel-stars { color: var(--brand-warm); }
.guest-reputation { color: var(--brand-navy); }
.guest-reputation small { color: var(--brand-muted); font-size: 12px; }
.guest-reputation b { font-size: 14px; }
.direct-strip { background: #fff; }
.direct-strip > .eyebrow { color: var(--brand-muted); }
.direct-strip svg { color: var(--brand-warm); }
.editorial { background: var(--brand-navy); color: #fff; }
.editorial-copy h2, .editorial-copy h2 em, .editorial-copy .eyebrow { color: #fff; }
.editorial-copy p { color: #e4e1ef; }
.editorial-links a { color: #fff; border-color: #817b9b; }
.editorial-links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.editorial :focus-visible { outline-color: #fff; }
.editorial-image > span:not(.property-photo) { background: rgb(5 0 51 / 86%); color: #fff; }
.location-teaser { background: var(--brand-soft); }
.faq-list summary span { color: var(--brand-navy); }
.gallery-item > span:not(.property-photo) { color: #fff; background: rgb(5 0 51 / 86%); }
.closing-cta { color: #fff; background: var(--brand-navy); }
.closing-cta h2, .closing-cta .eyebrow, .closing-cta p { color: #fff; }
.closing-cta :focus-visible { outline-color: #fff; }
.footer { background: var(--brand-footer); color: #e4e1ef; }
.footer .logo { color: var(--brand-navy) !important; }
.footer .logo .brand-destination { color: #464648; }
.footer-top > div > p, .footer .micro, .footer-preview { color: #d5d1e3; }
.footer .eyebrow { color: #fff; }
.footer-top > div > a:not(.logo), .footer-bottom a, .footer-bottom button { color: #e4e1ef; }
.footer-top > div > a:not(.logo):hover, .footer-bottom a:hover, .footer-bottom button:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { border-color: #655f83; }
.footer :focus-visible { outline-color: #fff; }
.footer .logo:focus-visible { outline-offset: 5px; }
.mobile-book { border-top: 1px solid var(--brand-border); }
.mobile-book > span { color: var(--brand-navy); }

@media (min-width: 1051px) {
  .header { gap: 20px; }
  .desktop-nav { gap: clamp(15px, 1.8vw, 28px); }
}
@media (min-width: 769px) and (max-width: 1050px) {
  .header { height: 86px; }
  .logo { width: 174px; min-height: 62px; }
  .logo .brand-logo { width: 150px; }
}
@media (max-width: 768px) {
  .header { height: 80px; padding-inline: 5%; gap: 10px; }
  .logo { width: 162px; min-height: 60px; padding: 7px 9px; }
  .logo .brand-logo { width: 142px; }
  .logo .brand-destination { font-size: 7px; letter-spacing: .14em; }
  .header-actions { gap: 6px; }
  .hero { display: block; }
  .hero-photo { min-height: 0; }
  .hero-photo > img { position: relative; width: 100%; height: clamp(240px, 60vw, 420px); object-fit: cover; object-position: center; }
  .hero-photo::after { display: none; }
  .hero-caption { position: relative; left: auto; right: auto; bottom: auto; padding: 30px 7% 20px; background: var(--brand-navy); }
  .hero-caption::before { content: ""; position: absolute; height: 68px; left: 0; right: 0; top: -67px; background: linear-gradient(180deg, transparent, #1e1852); pointer-events: none; }
  .hero-caption .eyebrow { margin-bottom: 14px; }
  .hero-caption h1.seo-hero-title { font-size: clamp(2.25rem, 7vw, 3.25rem); line-height: 1.08; }
  .hero-caption p { max-width: 600px; font-size: 15px; }
  .hero-caption .hero-link { margin-top: 14px; }
  .photo-credit { position: relative; bottom: auto; left: auto; right: auto; display: block; max-width: none; padding: 0 7% 22px; font-size: 9px; background: var(--brand-navy); }
  .booking-search { padding: 34px 7%; }
  .booking-search h2 { font-size: 44px; }
  .seo-intro { font-size: 15px; line-height: 1.7; }
  .guest-reputation small { font-size: 12px; }
  .guest-reputation b { font-size: 14px; }
  .footer .logo { width: 184px; min-height: 66px; }
  .footer .logo .brand-logo { width: 162px; }
  .footer .logo .brand-destination { font-size: 8px; }
}
@media (max-width: 375px) {
  .header { padding-inline: 14px; gap: 8px; }
  .header .logo { width: 148px; min-height: 58px; padding-inline: 8px; }
  .header .logo .brand-logo { width: 130px; }
  .header .logo .brand-destination { font-size: 7px; letter-spacing: .1em; }
  .header-actions { gap: 2px; }
  .language-trigger { min-width: 48px; gap: 4px; }
  .menu-toggle { min-width: 44px; }
  .hero-caption h1.seo-hero-title { font-size: 2.25rem; }
  .hero-caption p { font-size: 14px; }
  .booking-search { padding-inline: 22px; }
  .guest-reputation { gap: 10px; }
  .guest-reputation > strong { font-size: 28px; }
  .guest-reputation b { font-size: 13px; }
  .guest-reputation small { font-size: 11px; }
  .room-copy { padding: 20px; }
  .room-price { align-items: flex-start; flex-wrap: wrap; }
  .mobile-book { padding-inline: 14px; }
  .mobile-book > .btn { font-size: 13px; }
}
@media (max-width: 320px) {
  .header .logo { width: 142px; }
  .header .logo .brand-logo { width: 124px; }
  .header .language-trigger { min-width: 44px; }
  .guest-reputation > svg { width: 15px; }
  .guest-reputation > strong { font-size: 26px; }
  .guest-reputation b { font-size: 12px; }
  .guest-reputation small { font-size: 10px; }
  .footer-top { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .btn, .text-link, .room-card, .room-option { transition: none; }
}

/* Load after site.css and other global branding rules. */
.pullman-cookie-dialog[data-slot="dialog-content"] {
  display: flex;
  flex-direction: column;
  gap: 0;
  z-index: 70;
  width: min(650px, calc(100vw - 32px));
  max-width: 650px;
  max-height: calc(100dvh - 32px);
  padding: 0 30px 28px;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid #dedde4;
  border-radius: 4px;
  background: #fff;
  color: #242332;
  box-shadow: 0 22px 90px #08072338;
  font-family: Arial, Helvetica, sans-serif;
  text-align: left;
}
.pullman-cookie-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 100px;
  margin: 0 -30px;
  padding: 20px 30px 16px;
  border-bottom: 1px solid #e7e6ec;
}
.pullman-cookie-brand img {
  display: block;
  width: 190px;
  height: 34px;
  object-fit: contain;
}
.pullman-cookie-brand span {
  color: #393847;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 2px;
}
.pullman-cookie-topline {
  display: flex;
  justify-content: flex-end;
  min-height: 37px;
  padding: 5px 0;
}
.pullman-cookie-text-button {
  min-height: 28px;
  padding: 3px 0;
  border: 0;
  background: none;
  color: #3b3850;
  font: inherit;
  font-size: 12px;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.pullman-cookie-dialog .pullman-cookie-title[data-slot="dialog-title"] {
  margin: 0 0 12px;
  color: #211d50;
  font: 600 20px/1.35 Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}
.pullman-cookie-dialog .pullman-cookie-intro[data-slot="dialog-description"],
.pullman-cookie-dialog .pullman-cookie-detail,
.pullman-cookie-dialog .pullman-cookie-control {
  margin: 0 0 14px;
  color: #484654;
  font: 400 13px/1.65 Arial, Helvetica, sans-serif;
}
.pullman-cookie-dialog .pullman-cookie-control { margin-bottom: 16px; }
.pullman-cookie-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin: 0 0 23px;
}
.pullman-cookie-links a {
  color: #211d50;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pullman-cookie-actions {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
}
.pullman-cookie-button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 49px;
  padding: 11px 13px;
  border: 1px solid #211d50;
  border-radius: 999px;
  font: 600 12px/1.4 Arial, Helvetica, sans-serif;
  letter-spacing: 0;
  text-align: center;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.pullman-cookie-secondary { background: #fff; color: #211d50; }
.pullman-cookie-secondary:hover { background: #f2f1f7; }
.pullman-cookie-primary { background: #211d50; color: #fff; }
.pullman-cookie-primary:hover { background: #353064; }
.pullman-cookie-dialog :is(button, a, [role="checkbox"]):focus-visible {
  outline: 3px solid #4b76a8;
  outline-offset: 3px;
}
.pullman-cookie-title:focus { outline: none; }
.pullman-cookie-categories { margin-bottom: 16px; }
.pullman-cookie-category {
  padding: 13px 0;
  border-top: 1px solid #e7e6ec;
}
.pullman-cookie-category:last-child { border-bottom: 1px solid #e7e6ec; }
.pullman-cookie-category-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.pullman-cookie-category-heading strong,
.pullman-cookie-dialog .check-field label { color: #242332; font-size: 14px; font-weight: 600; }
.pullman-cookie-category-heading span { color: #484654; font-size: 11px; }
.pullman-cookie-category p {
  margin: 6px 0 0;
  color: #555361;
  font: 400 12px/1.6 Arial, Helvetica, sans-serif;
}
.pullman-cookie-dialog .check-field [role="checkbox"] {
  width: 21px;
  height: 21px;
  border: 1px solid #74717f;
}
.pullman-cookie-dialog .check-field [role="checkbox"][data-state="checked"] {
  background: #211d50;
  border-color: #211d50;
  color: #fff;
}
.pullman-cookie-toast { color: #242332; z-index: 80; }
.pullman-cookie-toast-close { min-width: 28px; min-height: 28px; cursor: pointer; }
@media (max-width: 520px) {
  .pullman-cookie-dialog[data-slot="dialog-content"] {
    width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px);
    padding: 0 20px 20px;
  }
  .pullman-cookie-brand { min-height: 82px; margin: 0 -20px; padding: 14px 20px 12px; }
  .pullman-cookie-brand img { width: 170px; height: 30px; }
  .pullman-cookie-dialog .pullman-cookie-title[data-slot="dialog-title"] { font-size: 18px; }
  .pullman-cookie-actions { grid-template-columns: 1fr; gap: 9px; }
  .pullman-cookie-button { min-height: 44px; }
  .pullman-cookie-links { margin-bottom: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .pullman-cookie-dialog[data-slot="dialog-content"], .pullman-cookie-button { animation: none; transition: none; }
}
