/* Maps the original design system (app.css) onto native block markup.
   Loaded on the front end and inside the block editor. */

/* ---------- Groups ----------
   Kadence is a classic theme, so WordPress wraps group contents in an inner
   container. Let it vanish from layout so .split/.rooms-grid/.cards grids see
   the real children, exactly as in the original markup. */
.wp-block-group__inner-container { display: contents; }
.reveal-stagger > .wp-block-group__inner-container > * { opacity: 0; transform: translateY(20px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
.reveal-stagger.is-in > .wp-block-group__inner-container > * { opacity: 1; transform: none; }
.reveal-stagger.is-in > .wp-block-group__inner-container > *:nth-child(2) { transition-delay: 80ms; }
.reveal-stagger.is-in > .wp-block-group__inner-container > *:nth-child(3) { transition-delay: 160ms; }
.reveal-stagger.is-in > .wp-block-group__inner-container > *:nth-child(4) { transition-delay: 240ms; }
.reveal-stagger.is-in > .wp-block-group__inner-container > *:nth-child(5) { transition-delay: 320ms; }
.reveal-stagger.is-in > .wp-block-group__inner-container > *:nth-child(6) { transition-delay: 400ms; }
@media (prefers-reduced-motion: reduce) {
  .reveal-stagger > .wp-block-group__inner-container > * { opacity: 1 !important; transform: none !important; }
}

/* ---------- Images ---------- */
figure.wp-block-image { margin: 0; }
.roomcard__media .wp-block-image,
.post__media .wp-block-image,
.masonry .wp-block-image { height: 100%; }
.split__media .wp-block-image img,
.media-stack__main .wp-block-image img { width: 100%; }

/* Photo grids that open the lightbox (gallery, room photos) */
.masonry--zoom .wp-block-image { position: relative; overflow: hidden; border-radius: var(--r-md); cursor: zoom-in; }
.masonry--zoom .wp-block-image img { transition: transform .6s var(--ease); }
.masonry--zoom .wp-block-image::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 55%, rgba(20,17,14,.42));
  opacity: 0; transition: opacity .3s var(--ease);
}
.masonry--zoom .wp-block-image:hover img { transform: scale(1.04); }
.masonry--zoom .wp-block-image:hover::after { opacity: 1; }

/* ---------- Covers (hero, page hero, CTA band) ---------- */
.wp-block-cover.hero,
.wp-block-cover.pagehero { padding-inline: 0; align-items: flex-end; }
.wp-block-cover.cta-band { padding: 0; min-height: 0; }
.wp-block-cover.hero > .wp-block-cover__inner-container,
.wp-block-cover.pagehero > .wp-block-cover__inner-container,
.wp-block-cover.cta-band > .wp-block-cover__inner-container { width: 100%; }
.wp-block-cover.hero .wp-block-cover__image-background,
.wp-block-cover.pagehero .wp-block-cover__image-background,
.wp-block-cover.cta-band .wp-block-cover__image-background { background: none; }
/* A page hero followed by the booking bar reserves room for the bar's lift */
.pagehero:has(+ .bookbar) { padding-bottom: calc(var(--s-6) + var(--bookbar-lift)); }
@media (max-width: 900px) { .pagehero:has(+ .bookbar) { padding-bottom: var(--s-6); } }

/* ---------- Buttons ---------- */
.wp-block-buttons.btn-row { gap: var(--s-2); }
.wp-block-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  min-height: 48px; padding: 0 1.6rem; height: auto; word-break: normal;
  border: 1px solid transparent; border-radius: var(--r-full);
  font-family: var(--f-body); font-size: var(--t-sm); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; line-height: 1.2;
  text-decoration: none; white-space: nowrap;
  background: var(--gold-strong); color: var(--white); box-shadow: var(--shadow-sm);
  transition: background .22s var(--ease), color .22s var(--ease), border-color .22s var(--ease), transform .22s var(--ease), box-shadow .22s var(--ease);
}
.wp-block-button .wp-block-button__link:active { transform: translateY(1px); }
.wp-block-button .wp-block-button__link:hover { background: var(--gold-deep); box-shadow: var(--shadow-md); }
.wp-block-button.is-style-ld-ghost .wp-block-button__link { background: transparent; border-color: currentColor; color: var(--ink); box-shadow: none; }
.wp-block-button.is-style-ld-ghost .wp-block-button__link:hover { background: var(--ink); color: var(--sand); border-color: var(--ink); }
.wp-block-button.is-style-ld-ink .wp-block-button__link { background: var(--ink); color: var(--sand); box-shadow: none; }
.wp-block-button.is-style-ld-ink .wp-block-button__link:hover { background: var(--frond); }
.wp-block-button.is-style-ld-light .wp-block-button__link { background: var(--sand); color: var(--ink); box-shadow: none; }
.wp-block-button.is-style-ld-light .wp-block-button__link:hover { background: var(--white); }
.wp-block-button.is-style-ld-outline-light .wp-block-button__link { background: transparent; border-color: color-mix(in srgb, var(--sand) 55%, transparent); color: var(--sand); box-shadow: none; }
.wp-block-button.is-style-ld-outline-light .wp-block-button__link:hover { background: var(--sand); color: var(--ink); }

/* ---------- Icons (list items, headings, arrows) ---------- */
.ld-ico::before,
[class*="is-style-ico-"]::before,
.has-ico::before,
:where(.specs, .amenities, .ribbon__inner, .bookbar__note) > li::before {
  content: ""; display: inline-block; flex: none;
  width: 1em; height: 1em; background: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
:where(.specs, .amenities, .ribbon__inner, .bookbar__note) > li { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }

.specs > li::before { width: 14px; height: 14px; color: var(--gold-deep); }
.amenities > li::before { width: 18px; height: 18px; color: var(--gold-deep); margin-top: 2px; }

ul.ribbon__inner { list-style: none; padding: 0; }
.ribbon__inner > li { display: inline-flex; align-items: center; gap: .5rem; }
.ribbon__inner > li::before { width: 17px; height: 17px; }

ul.bookbar__note { list-style: none; padding: 0; }
.bookbar__note > li { display: inline-flex; align-items: center; gap: .45rem; }
.bookbar__note > li::before { width: 16px; height: 16px; color: var(--gold); }
.bookbar__note strong { color: var(--gold-deep); font-weight: 600; }

.has-ico::before { display: block; width: 16px; height: 16px; margin-bottom: .45rem; }

/* "See the room →" */
p.link-arrow { margin: 0; }
p.link-arrow::after {
  content: ""; width: 16px; height: 16px; flex: none; background: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
  --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  transition: transform .25s var(--ease);
}
.roomcard:hover p.link-arrow::after, a:hover > p.link-arrow::after { transform: translateX(5px); }

/* Whole room card is clickable through its title link */
.roomcard h3 a::after { content: ""; position: absolute; inset: 0; }

/* ---------- Stats ---------- */
.stats .stat__num { font-family: var(--f-display); font-size: var(--t-2xl); line-height: 1.2; }
.stats .stat__label { font-size: var(--t-xs); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin-top: .35rem; }

/* ---------- Accordion (core/details) ---------- */
.acc details > :not(summary) { max-width: 72ch; }
.acc details > :last-child:not(summary) { padding-bottom: var(--s-4); }
.acc details > p + p, .acc details > ul, .acc details > .wp-block-list { margin-top: var(--s-3); }

/* ---------- Tables ---------- */
figure.wp-block-table.table-wrap { display: flex; flex-direction: column; margin: 0; overflow-x: auto; }
.table-wrap table { border: 0; }
.table-wrap thead { border: 0; }
.table-wrap th, .table-wrap td { border: 0; border-bottom: 1px solid var(--line); padding: .8rem var(--s-4); }
.table-wrap tbody tr:last-child td { border-bottom: 0; }
.table-wrap figcaption.wp-element-caption {
  order: -1; margin: 0; text-align: left; color: inherit;
  padding: var(--s-3) var(--s-4); font-weight: 600; font-size: var(--t-sm);
  border-bottom: 1px solid var(--line); background: var(--sand);
}

/* ---------- Separator ---------- */
hr.wp-block-separator.rule { border: 0; height: 1px; background: var(--line); opacity: 1; margin-block: var(--s-6); width: auto; }

/* Small buttons (policy jump links) */
.wp-block-button.btn--sm .wp-block-button__link { min-height: 40px; padding: 0 1.1rem; font-size: var(--t-xs); }

/* Booking bar: short intro on the left, widget on the right, notes underneath */
.bookbar__card--widget { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--s-3) var(--s-5); }
.bookbar__card--widget .bookbar__note { grid-column: 1 / -1; margin-top: 0; }
.bookbar__intro .eyebrow { margin-bottom: .35rem; }
.bookbar__intro .bookbar__title { font-size: var(--t-xl); }
@media (max-width: 1100px) {
  .bookbar__card--widget { grid-template-columns: 1fr; }
}

/* ---------- Privacy policy ---------- */
/* "At a glance" cards lift over the page hero, like the booking bar */
.pp-glance { position: relative; z-index: 20; margin-top: calc(var(--bookbar-lift) * -1); }
.pagehero:has(+ .pp-glance) { padding-bottom: calc(var(--s-6) + var(--bookbar-lift)); }
.pp-glance .card { box-shadow: var(--shadow-md); }
@media (max-width: 900px) {
  .pp-glance { margin-top: var(--s-5); }
  .pagehero:has(+ .pp-glance) { padding-bottom: var(--s-6); }
}

.pp { padding-top: var(--s-7); }
.pp-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.pp-toc { position: sticky; top: calc(var(--nav-h) + 24px); }
.admin-bar .pp-toc { top: calc(var(--nav-h) + 56px); }
.pp-toc__list { list-style: none; padding: 0; border-left: 1px solid var(--line); }
.pp-toc__list a {
  display: block; margin-left: -1px; padding: .45rem 0 .45rem 1rem;
  border-left: 2px solid transparent; font-size: var(--t-sm); color: var(--ink-3); text-decoration: none;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}
.pp-toc__list a:hover { color: var(--ink); }
.pp-toc__list a.is-active { color: var(--ink); font-weight: 600; border-left-color: var(--gold); }
@media (max-width: 900px) {
  .pp-layout { grid-template-columns: 1fr; }
  .pp-toc { position: static; padding: var(--s-4); background: var(--shell); border-radius: var(--r-lg); }
}

.pp-intro { max-width: 68ch; padding-bottom: var(--s-6); }
.pp-section { padding-block: var(--s-6); border-top: 1px solid var(--line); scroll-margin-top: calc(var(--nav-h) + 24px); }
.pp-num { font-family: var(--f-display); font-style: italic; font-size: var(--t-xl); color: var(--gold); line-height: 1; margin-bottom: .6rem; }
.pp-title { font-size: var(--t-2xl); margin-bottom: var(--s-4); }
.pp-section p { color: var(--ink-2); max-width: 68ch; }
.pp-sub {
  font-family: var(--f-body); font-size: var(--t-xs); font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--gold-deep); margin: var(--s-5) 0 var(--s-2);
}
.pp-title + .pp-sub { margin-top: 0; }
.pp-items { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); }
.pp-items li {
  padding: var(--s-3) var(--s-4); background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md);
  font-size: var(--t-sm); line-height: 1.6; color: var(--ink-2);
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.pp-items li:hover { border-color: var(--shell-2); box-shadow: var(--shadow-sm); }
.pp-items li strong { display: block; color: var(--ink); font-weight: 600; font-size: var(--t-base); margin-bottom: .2rem; }
.pp-items a, .pp-section p a { color: var(--gold-deep); }
@media (max-width: 640px) { .pp-items { grid-template-columns: 1fr; } }

.pp-section--contact { border-top: 0; padding-bottom: 0; }
.pp-contact { background: var(--frond); color: var(--sand); border-radius: var(--r-lg); padding: clamp(2rem, 5vw, 3.5rem); }
.pp-contact .eyebrow { color: color-mix(in srgb, var(--gold) 75%, var(--white)); }
.pp-contact__title { color: var(--white); font-size: var(--t-2xl); }
.pp-section .pp-contact p { color: rgba(250,246,239,.82); }
.pp-contact__lede { margin-top: var(--s-3); }
.pp-contact__list { list-style: none; padding: 0; margin-top: var(--s-5); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); }
.pp-contact__list li { display: grid; grid-template-columns: 20px 1fr; column-gap: .75rem; font-size: var(--t-sm); color: rgba(250,246,239,.82); }
.pp-contact__list li::before { grid-row: span 2; width: 18px; height: 18px; margin-top: 3px; color: color-mix(in srgb, var(--gold) 75%, var(--white)); }
.pp-contact__list strong { display: block; color: var(--white); font-weight: 600; }
.pp-contact__list a { color: inherit; }
.pp-contact .btn-row { margin-top: var(--s-5); }
.pp-section .pp-contact .pp-contact__thanks { margin-top: var(--s-5); padding-top: var(--s-4); border-top: 1px solid rgba(250,246,239,.16); font-family: var(--f-display); font-style: italic; font-size: var(--t-lg); color: var(--sand); }
@media (max-width: 760px) { .pp-contact__list { grid-template-columns: 1fr; } }
