@font-face {
  font-family: Barlow;
  src: url('detail-dash/fonts/Barlow-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Barlow;
  src: url('detail-dash/fonts/Barlow-SemiBold.ttf') format('truetype');
  font-weight: 600 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Barlow Condensed';
  src: url('detail-dash/fonts/BarlowCondensed-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Barlow Condensed';
  src: url('detail-dash/fonts/BarlowCondensed-BoldItalic.ttf') format('truetype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
.detail-dash { font-family: Barlow, Arial, sans-serif; }
.detail-dash .dd-hero h1 {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  font-weight: 700;
  font-style: italic;
  font-stretch: normal;
  font-size: clamp(64px, 6.6vw, 96px);
  letter-spacing: -.015em;
  line-height: .98;
}
.detail-dash .section h2 {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  font-weight: 600;
  font-size: clamp(44px, 4.7vw, 68px);
  letter-spacing: -.01em;
  line-height: 1.02;
}
.detail-dash h3 {
  font-family: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0;
}
.detail-dash .eyebrow { font-weight: 600; }
.detail-dash .topbar { position: sticky; top: 0; z-index: 30; }
.detail-dash .booking-intro { top: 114px; }
.detail-dash section[id], .detail-dash main[id] { scroll-margin-top: 90px; }
.detail-dash .contact-person strong { font-size: 24px; font-weight: 600; }
.detail-dash .contact-person > span { font-size: 14px; }
.detail-dash .contact-person a { display: table; max-width: 100%; margin-top: 12px; }
.detail-dash .contact-person .contact-phone { font-size: 23px; font-weight: 600; }
.detail-dash .contact-person .contact-email { font-size: 16px; }
.booking-menu { position: relative; }
.booking-menu > summary {
  display: flex;
  gap: 8px;
  align-items: center;
  min-height: 44px;
  list-style: none;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
}
.booking-menu > summary::-webkit-details-marker { display: none; }
.booking-menu > summary:hover, .booking-menu[open] > summary { color: #ff8792; }
.booking-menu > summary > span { font-size: 17px; }
.booking-menu[open] > summary > span { transform: rotate(180deg); }
.booking-menu-panel {
  position: absolute;
  top: calc(100% + 16px);
  right: 0;
  width: min(360px, calc(100vw - 36px));
  max-height: calc(100dvh - 138px);
  overflow: auto;
  padding: 25px;
  border: 1px solid #ffffff30;
  border-top: 2px solid var(--red);
  border-radius: 3px;
  background: #17181c;
  box-shadow: 0 16px 48px #0009;
}
.booking-menu-panel .eyebrow { font-size: 9px; letter-spacing: .13em; margin-bottom: 17px; }
.booking-menu-panel > strong { display: block; font-size: 25px; line-height: 1.2; font-weight: 600; }
.booking-menu-role { margin: 6px 0 20px; font-size: 13px; }
.topbar nav .booking-menu-contact {
  display: block;
  padding: 12px 0;
  border-top: 1px solid var(--line);
  font-size: 21px;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.booking-menu-contact > span { display: block; font-size: 11px; color: #c9cdd2; font-weight: 400; margin-bottom: 4px; }
.topbar nav .booking-menu-email { font-size: 14px; }
.topbar nav .booking-menu-request {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  margin-top: 14px;
  padding: 13px 15px;
  background: #fff;
  color: #08090b;
  font-size: 13px;
  font-weight: 600;
  border-radius: 2px;
}
.topbar nav .booking-menu-request:hover { background: #eee; color: #08090b; }
@media (max-width: 1050px) {
  .detail-dash .section h2 { font-size: 52px; }
  .detail-dash .dd-hero h1 { font-size: 70px; }
}
@media (max-width: 740px) {
  .booking-menu > summary { font-size: 12px; gap: 6px; }
  .booking-menu-panel { top: calc(100% + 11px); }
  .detail-dash .section h2 { font-size: 48px; }
  .detail-dash .dd-hero h1 { font-size: clamp(62px, 15vw, 90px); }
  .detail-dash .booking-intro { position: static; }
  .detail-dash .contact-person .contact-email { font-size: 15px; }
}
@media (max-width: 430px) {
  .detail-dash .topbar-inner { gap: 12px; }
  .detail-dash .topbar nav { gap: 13px; }
  .booking-menu > summary { font-size: 11px; }
  .booking-menu-panel { padding: 21px; }
  .detail-dash .section h2 { font-size: 43px; }
}

/* Top-of-page service shortcut and optional story invitation. */
.detail-dash .hero-content { justify-content: flex-start; }
.hero-entry { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; width: 100%; margin-bottom: 30px; }
.hero-entry .back-link { margin: 0; }
.hero-entry .fresh-start { margin-left: auto; }
.story-prompt {
  width: min(540px, calc(100% - 36px));
  max-height: calc(100dvh - 40px);
  margin: auto;
  padding: 44px 36px 36px;
  overflow: auto;
  background: #15171b;
  color: #fff;
  border: 1px solid #ffffff35;
  border-top: 3px solid var(--red);
  border-radius: 8px;
  box-shadow: 0 24px 80px #0009;
}
.story-prompt::backdrop { background: #000b; backdrop-filter: blur(5px); }
.story-prompt:not([open]) { display: none; }
.story-prompt .eyebrow { margin-bottom: 12px; }
.story-prompt h2 { margin: 0 0 18px; font: 600 clamp(38px, 5vw, 52px)/1.05 'Barlow Condensed', 'Arial Narrow', sans-serif; }
.story-prompt > p:not(.eyebrow) { font-size: 16px; line-height: 1.65; margin-bottom: 28px; }
.story-prompt-close { position: absolute; top: 7px; right: 8px; width: 44px; height: 44px; border: 0; background: transparent; color: #c9cdd2; font: 28px/1 Arial, sans-serif; cursor: pointer; }
.story-prompt-close:hover { color: #fff; }
.story-prompt-actions { display: grid; gap: 12px; }
.story-prompt-actions .btn { justify-content: space-between; min-height: 52px; font-size: 14px; }
.story-prompt-actions .story-prompt-services { border: 1px solid #959aa4; background: transparent; color: #fff; }
.story-prompt-actions .story-prompt-services:hover { background: #25282f; }
html.dd-dialog-open { overflow: hidden; }
#story-title, #services-title { scroll-margin-top: 115px; }
@media (max-width: 1050px) {
  .hero-entry { align-items: flex-start; flex-direction: column; }
  .hero-entry .fresh-start { margin-left: 0; }
}
@media (max-width: 430px) {
  .story-prompt { padding: 42px 24px 26px; }
  .hero-entry .fresh-start { max-width: 100%; }
}
