/* Premium Romantica single-post landing polish */
body.single-post {
  --tr-cream: #f6efe3;
  --tr-cream-2: #fffaf1;
  --tr-ink: #1f1a14;
  --tr-muted: #776b5c;
  --tr-gold: #c9a45c;
  --tr-olive: #343825;
  --tr-terracotta: #9a4f35;
  --tr-border: rgba(31, 26, 20, 0.12);
  --tr-shadow: 0 24px 80px rgba(31, 26, 20, 0.15);
  background: var(--tr-cream);
  color: var(--tr-ink);
}

.single-post .tr-single-post { background: radial-gradient(circle at 12% 16%, rgba(201,164,92,.12), transparent 28%), var(--tr-cream); }
.single-post .tr-post-hero {
  position: relative;
  min-height: clamp(560px, 76vh, 760px);
  display: flex;
  align-items: flex-end;
  isolation: isolate;
  overflow: hidden;
  background-image: linear-gradient(105deg, rgba(23,20,15,.80) 0%, rgba(23,20,15,.50) 46%, rgba(23,20,15,.18) 100%), var(--tr-hero-image);
  background-size: cover;
  background-position: center;
}
.single-post .tr-post-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 20% 70%, rgba(201,164,92,.22), transparent 34%), linear-gradient(to top, rgba(246,239,227,.96) 0%, rgba(246,239,227,0) 34%);
  z-index: -1;
}
.single-post .tr-post-hero::after {
  content: "ROMANTICA";
  position: absolute;
  right: clamp(18px, 5vw, 76px);
  bottom: clamp(40px, 7vw, 96px);
  color: rgba(255,250,241,.105);
  font: 800 clamp(54px, 10vw, 160px)/.8 Georgia, serif;
  letter-spacing: -.08em;
  z-index: -1;
  pointer-events: none;
}
.single-post .tr-post-hero__inner {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding: 124px 0 96px;
  color: #fffaf1;
}
.single-post .tr-post-hero__breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 22px;
  font-size: 12px;
  letter-spacing: .105em;
  text-transform: uppercase;
  color: rgba(255,250,241,.78);
}
.single-post .tr-post-hero__breadcrumbs a { color: inherit; text-decoration: none; }
.single-post .tr-post-hero__breadcrumbs a:hover { color: #fffaf1; }
.single-post .tr-post-hero__meta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.single-post .tr-post-hero__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid rgba(255,250,241,.34);
  border-radius: 999px;
  background: rgba(31,26,20,.26);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  color: rgba(255,250,241,.9);
  font-size: 11px;
  letter-spacing: .105em;
  text-transform: uppercase;
}
.single-post .tr-post-hero__title {
  max-width: 980px;
  margin: 0;
  color: #fffaf1;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(48px, 7vw, 92px);
  line-height: .94;
  letter-spacing: -.055em;
  font-weight: 500;
  text-wrap: balance;
  text-shadow: 0 12px 46px rgba(0,0,0,.38);
}
.single-post .tr-post-hero__dek {
  max-width: 720px;
  margin: 26px 0 0;
  font-size: clamp(19px, 2vw, 25px);
  line-height: 1.45;
  color: rgba(255,250,241,.87);
  text-shadow: 0 8px 30px rgba(0,0,0,.32);
}
.single-post .tr-post-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.single-post .tr-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.single-post .tr-btn:hover { transform: translateY(-1px); }
.single-post .tr-btn--primary { background: var(--tr-gold); color: #1f1a14; box-shadow: 0 14px 36px rgba(201,164,92,.28); }
.single-post .tr-btn--ghost { border: 1px solid rgba(255,250,241,.52); color: #fffaf1; background: rgba(255,250,241,.08); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }

.single-post .tr-post-shell {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding: 84px 0 110px;
  display: grid;
  grid-template-columns: minmax(0, 760px) 330px;
  gap: 72px;
  align-items: start;
}
.single-post .tr-post-article { min-width: 0; }
.single-post .tr-post-intro-card {
  margin: 0 0 44px;
  padding: 28px 32px;
  border: 1px solid rgba(201,164,92,.24);
  border-radius: 30px;
  background: rgba(255,250,241,.78);
  box-shadow: 0 18px 70px rgba(31,26,20,.08);
}
.single-post .tr-post-intro-card__eyebrow { display: block; margin-bottom: 10px; color: var(--tr-gold); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.single-post .tr-post-intro-card p { margin: 0; color: var(--tr-olive); font: 26px/1.32 Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.single-post .tr-post-content { font-size: 19px; line-height: 1.82; color: rgba(31,26,20,.88); }
.single-post .tr-post-content > * { margin-top: 0; margin-bottom: 1.35em; }
.single-post .tr-post-content p { max-width: 720px; }
.single-post .tr-post-content a { color: var(--tr-terracotta); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.single-post .tr-post-content h1 { display: none; }
.single-post .tr-post-content h2,
.single-post .tr-post-content h3 { max-width: 760px; font-family: Georgia, "Times New Roman", serif; color: var(--tr-ink); letter-spacing: -.035em; }
.single-post .tr-post-content h2 { margin-top: 2.25em; margin-bottom: .55em; font-size: clamp(34px, 4vw, 52px); line-height: 1.04; font-weight: 500; }
.single-post .tr-post-content h3 { margin-top: 2em; margin-bottom: .55em; font-size: clamp(26px, 3vw, 34px); line-height: 1.12; font-weight: 500; }
.single-post .tr-post-content ul,
.single-post .tr-post-content ol { max-width: 700px; padding-left: 1.25em; }
.single-post .tr-post-content li + li { margin-top: .45em; }
.single-post .tr-post-content blockquote,
.single-post .tr-post-inline-cta {
  position: relative;
  max-width: 820px;
  margin: 2.4em 0;
  padding: 34px 38px;
  border-radius: 30px;
  background: linear-gradient(135deg, rgba(52,56,37,.97), rgba(31,26,20,.97));
  box-shadow: var(--tr-shadow);
  color: #fffaf1;
}
.single-post .tr-post-content blockquote { font: clamp(25px, 3vw, 36px)/1.22 Georgia, "Times New Roman", serif; }
.single-post .tr-post-content img,
.single-post .tr-post-content figure { border-radius: 28px; }
.single-post .tr-post-content figure { margin: 2.6em 0; }
.single-post .tr-post-content figcaption { margin-top: 12px; color: var(--tr-muted); font-size: 13px; letter-spacing: .02em; }
.single-post .tr-post-inline-cta { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 26px; align-items: center; }
.single-post .tr-post-inline-cta__eyebrow { color: var(--tr-gold); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.single-post .tr-post-inline-cta h2 { margin: 8px 0; color: #fffaf1; font: 500 clamp(28px, 4vw, 42px)/1.04 Georgia, serif; letter-spacing: -.035em; }
.single-post .tr-post-inline-cta p { margin: 0; color: rgba(255,250,241,.78); font-size: 16px; line-height: 1.55; }

.single-post .tr-post-reservation-card {
  position: sticky;
  top: 110px;
  padding: 28px;
  border: 1px solid rgba(201,164,92,.30);
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(255,250,241,.98), rgba(247,241,231,.94));
  box-shadow: 0 24px 70px rgba(31,26,20,.13);
}
.single-post .tr-post-reservation-card__eyebrow { display: block; margin-bottom: 12px; color: var(--tr-gold); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.single-post .tr-post-reservation-card h2 { margin: 0 0 12px; font: 500 28px/1.08 Georgia, "Times New Roman", serif; letter-spacing: -.03em; color: var(--tr-ink); }
.single-post .tr-post-reservation-card p { margin: 0 0 22px; color: var(--tr-muted); font-size: 15px; line-height: 1.55; }
.single-post .tr-post-reservation-card .tr-btn { width: 100%; }
.single-post .tr-post-reservation-card__link { display: block; margin-top: 16px; color: var(--tr-terracotta); text-align: center; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }

.single-post .tr-post-related { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 0 0 112px; }
.single-post .tr-post-related__header { margin-bottom: 28px; }
.single-post .tr-post-related__header span { color: var(--tr-gold); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.single-post .tr-post-related__header h2 { margin: 8px 0 0; font: 500 clamp(36px, 5vw, 64px)/1 Georgia, serif; letter-spacing: -.05em; color: var(--tr-ink); }
.single-post .tr-post-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.single-post .tr-post-card { overflow: hidden; display: grid; min-height: 360px; align-content: end; position: relative; border-radius: 30px; background: linear-gradient(135deg, var(--tr-olive), var(--tr-terracotta)); color: #fffaf1; text-decoration: none; box-shadow: 0 20px 54px rgba(31,26,20,.12); }
.single-post .tr-post-card__image { position: absolute; inset: 0; }
.single-post .tr-post-card__image img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform .35s ease; }
.single-post .tr-post-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(31,26,20,.88), rgba(31,26,20,.05)); }
.single-post .tr-post-card__body { position: relative; z-index: 1; padding: 24px; }
.single-post .tr-post-card small { display: block; margin-bottom: 10px; color: var(--tr-gold); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.single-post .tr-post-card strong { display: block; color: #fffaf1; font: 500 25px/1.08 Georgia, serif; letter-spacing: -.03em; }
.single-post .tr-post-card:hover .tr-post-card__image img { transform: scale(1.08); }
.single-post .tr-mobile-reserve-bar { display: none; }
.single-post .sticky-mobile { display: none !important; }

@media (max-width: 980px) {
  .single-post .tr-post-shell { grid-template-columns: 1fr; gap: 44px; }
  .single-post .tr-post-reservation-card { position: static; }
  .single-post .tr-post-related__grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .single-post .tr-post-hero { min-height: 590px; background-position: center; }
  .single-post .tr-post-hero::after { display: none; }
  .single-post .tr-post-hero__inner { width: min(100% - 32px, 430px); padding: 112px 0 58px; }
  .single-post .tr-post-hero__breadcrumbs { font-size: 10px; margin-bottom: 16px; }
  .single-post .tr-post-hero__meta { gap: 8px; margin-bottom: 18px; }
  .single-post .tr-post-hero__meta span { min-height: 30px; padding: 0 10px; font-size: 10px; }
  .single-post .tr-post-hero__title { font-size: clamp(39px, 11vw, 56px); line-height: .98; letter-spacing: -.045em; }
  .single-post .tr-post-hero__dek { margin-top: 18px; font-size: 18px; line-height: 1.45; }
  .single-post .tr-post-hero__actions { margin-top: 24px; gap: 10px; }
  .single-post .tr-btn { min-height: 46px; padding: 0 17px; font-size: 11px; }
  .single-post .tr-post-shell { width: min(100% - 32px, 430px); display: block; padding: 48px 0 86px; }
  .single-post .tr-post-intro-card { padding: 22px; border-radius: 24px; margin-bottom: 34px; }
  .single-post .tr-post-intro-card p { font-size: 22px; }
  .single-post .tr-post-content { font-size: 18px; line-height: 1.78; }
  .single-post .tr-post-content h2 { font-size: 34px; line-height: 1.08; }
  .single-post .tr-post-content h3 { font-size: 26px; }
  .single-post .tr-post-inline-cta { grid-template-columns: 1fr; padding: 26px; border-radius: 28px; }
  .single-post .tr-post-reservation-card { margin-top: 44px; padding: 24px; border-radius: 26px; }
  .single-post .tr-post-related { width: min(100% - 32px, 430px); padding-bottom: 92px; }
  .single-post .tr-post-card { min-height: 300px; }
  .single-post .tr-mobile-reserve-bar { display: none !important; }
  .single-post .tr-mobile-reserve-bar span { font-size: 12px; line-height: 1.2; }
  .single-post .tr-mobile-reserve-bar strong { display: inline-flex; align-items: center; min-height: 38px; padding: 0 16px; border-radius: 999px; background: var(--tr-gold); color: #1f1a14; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
}
@media (prefers-reduced-motion: reduce) {
  .single-post .tr-post-card__image img,
  .single-post .tr-btn { transition: none; }
}

/* Bob v28: restore blog navigation on single journal posts */
.single-post .tr-blog-topnav {
  position: fixed;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 80;
  width: min(calc(100% - 24px), 1180px);
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 10px 12px 10px 18px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(20, 13, 8, .58);
  color: #fff;
  box-shadow: 0 18px 50px rgba(0,0,0,.24);
  backdrop-filter: blur(24px) saturate(150%);
}
.single-post .tr-blog-topnav a { text-decoration: none; color: inherit; }
.single-post .tr-blog-topnav__brand { display: inline-flex; align-items: center; gap: 10px; min-width: 0; font-weight: 900; letter-spacing: .01em; }
.single-post .tr-blog-topnav__brand span { width: 38px; height: 38px; border-radius: 999px; display: inline-grid; place-items: center; flex: 0 0 auto; background: linear-gradient(135deg, #d8a955, #fff0c4); color: #21140d; font-family: Georgia, serif; font-weight: 900; }
.single-post .tr-blog-topnav__brand strong { white-space: nowrap; font-size: 15px; }
.single-post .tr-blog-topnav__links { display: flex; align-items: center; gap: 6px; min-width: 0; }
.single-post .tr-blog-topnav__links a { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 8px 12px; border-radius: 999px; font-size: 13px; font-weight: 900; opacity: .9; white-space: nowrap; transition: background .18s ease, opacity .18s ease, transform .18s ease; }
.single-post .tr-blog-topnav__links a:hover,
.single-post .tr-blog-topnav__links a.is-current { background: rgba(255,255,255,.13); opacity: 1; }
.single-post .tr-blog-topnav__links a:hover { transform: translateY(-1px); }
.single-post .tr-blog-topnav__reserve { background: linear-gradient(135deg, #40502b 0%, #79884d 52%, #c9a45c 100%) !important; color: #fff !important; box-shadow: 0 12px 30px rgba(0,0,0,.22); }
.single-post .tr-post-hero { padding-top: max(132px, 12vh); }
@media (max-width: 920px) {
  .single-post .tr-blog-topnav { top: 10px; width: calc(100% - 16px); padding: 8px; gap: 8px; min-height: 58px; }
  .single-post .tr-blog-topnav__brand strong { display: none; }
  .single-post .tr-blog-topnav__brand span { width: 36px; height: 36px; }
  .single-post .tr-blog-topnav__links { flex: 1 1 auto; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: none; justify-content: flex-start; }
  .single-post .tr-blog-topnav__links::-webkit-scrollbar { display: none; }
  .single-post .tr-blog-topnav__links a { flex: 0 0 auto; min-height: 38px; padding: 8px 10px; font-size: 12px; }
  .single-post .tr-post-hero { padding-top: 110px; }
}
@media (max-width: 520px) {
  .single-post .tr-blog-topnav__links a[href*='/gallery/'],
  .single-post .tr-blog-topnav__links a[href*='/contact/'] { display: none; }
  .single-post .tr-blog-topnav__links a { padding-left: 9px; padding-right: 9px; }
}
