/*
 * custom/hotelsinprint — the platform's own site, "The proof sheet", from its design package
 * (`documentation/design/hotelsinprint/assets/site.css`, translated rule by rule).
 *
 * Uncoated paper with a tooth of ink, black ink, one vermilion spot colour, crop marks around the
 * work and a registration mark as the only ornament. Fraunces for display, its italic for the second
 * sentence of a heading; Work Sans for everything read. Tokens only, logical properties only.
 *
 * The package's own names are kept in comments beside each rule (`.hip-header`, `.hip-spec` …).
 *
 * Long file: a theme's whole stylesheet is one file, served only to the hotels drawn with it.
 */

.site-frame[data-theme='custom/hotelsinprint'] {
  --site-measure: 84rem;
  --hip-rule: color-mix(in srgb, var(--color-text) 100%, transparent);
  --hip-hair: var(--color-border);
  --hip-shadow:
    0 1px 0 color-mix(in srgb, var(--color-text) 10%, transparent),
    0 1.5rem 3rem -1.5rem color-mix(in srgb, var(--color-text) 35%, transparent);
  /* The accent, lifted towards the paper, for words and marks on the ink band (7.7:1). */
  --hip-accent-on-ink: color-mix(in srgb, var(--color-accent) 45%, var(--color-on-inverted));
  --hip-h1: clamp(var(--step-5), 5.4vw, calc(var(--step-5) * 1.6));
  --hip-h2: clamp(var(--step-4), 4vw, calc(var(--step-5) * 1.25));
  --hip-section: clamp(var(--space-5), 9vw, calc(var(--space-6) * 1.6));

  /* `body`: paper tooth, two offset dot grids in a whisper of ink. */
  background-color: var(--color-background);
  background-image:
    radial-gradient(color-mix(in srgb, var(--color-text) 5%, transparent) 0.5px, transparent 0.6px),
    radial-gradient(color-mix(in srgb, var(--color-text) 4%, transparent) 0.5px, transparent 0.6px);
  background-size:
    7px 7px,
    11px 11px;
  background-position:
    0 0,
    3px 5px;
  color: var(--color-text);
  font-family: var(--font-body);
  font-kerning: normal;
}

.site-frame[data-theme='custom/hotelsinprint'] :is(h1, h2, h3) {
  font-family: var(--font-display);
  font-weight: var(--weight-display);
  line-height: 1.06;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.site-frame[data-theme='custom/hotelsinprint'] :is(h1, h2) em {
  color: var(--color-accent);
  font-family: var(--font-emphasis);
  font-style: italic;
  font-weight: calc(var(--weight-display) - 50);
}

.site-frame[data-theme='custom/hotelsinprint'] .site-main a {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.site-frame[data-theme='custom/hotelsinprint'] .site-main a:hover {
  color: var(--color-accent);
}

.site-frame[data-theme='custom/hotelsinprint'] :focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

/* ——— The registration mark and the crop marks (`.hip-reg`, `.hip-crop`) ————————————— */

.theme-hotelsinprint-reg {
  --hip-reg: 1em;

  position: relative;
  display: inline-block;
  flex: none;
  inline-size: var(--hip-reg);
  block-size: var(--hip-reg);
  color: var(--color-accent);
  background:
    linear-gradient(currentcolor, currentcolor) center / 1.5px 100% no-repeat,
    linear-gradient(currentcolor, currentcolor) center / 100% 1.5px no-repeat;
}

.theme-hotelsinprint-reg::before {
  content: '';
  position: absolute;
  inset: 20%;
  border: 1.5px solid currentcolor;
  border-radius: 50%;
}

/* Eight hairlines just outside the work. Anything marked as a proof gets them. */
.theme-hotelsinprint-crop,
.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'] > div:first-child:has(img) {
  position: relative;
}

.theme-hotelsinprint-crop::before,
.site-frame[data-theme='custom/hotelsinprint']
  [data-block='textImage']
  > div:first-child:has(img)::before {
  --o: var(--space-4);
  --l: var(--space-3);

  content: '';
  position: absolute;
  z-index: 1;
  inset: calc(-1 * var(--o));
  color: var(--color-text);
  background:
    linear-gradient(currentcolor, currentcolor) 0 var(--o) / var(--l) 1px,
    linear-gradient(currentcolor, currentcolor) var(--o) 0 / 1px var(--l),
    linear-gradient(currentcolor, currentcolor) 100% var(--o) / var(--l) 1px,
    linear-gradient(currentcolor, currentcolor) calc(100% - var(--o)) 0 / 1px var(--l),
    linear-gradient(currentcolor, currentcolor) 0 calc(100% - var(--o)) / var(--l) 1px,
    linear-gradient(currentcolor, currentcolor) var(--o) 100% / 1px var(--l),
    linear-gradient(currentcolor, currentcolor) 100% calc(100% - var(--o)) / var(--l) 1px,
    linear-gradient(currentcolor, currentcolor) calc(100% - var(--o)) 100% / 1px var(--l);
  background-repeat: no-repeat;
  pointer-events: none;
}

.theme-hotelsinprint-crop img,
.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'] img {
  display: block;
  border-radius: 0;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-text) 12%, transparent);
}

/* ——— Buttons (`.hip-btn`) —————————————————————————————————————————————————————— */

.theme-hotelsinprint-button,
.theme-hotelsinprint-header__links li:last-child a,
.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry] button[type='submit'],
.site-frame[data-theme='custom/hotelsinprint'] [data-block='callToAction'] a,
.site-frame[data-theme='custom/hotelsinprint'] [data-block='richText'] p:last-child > a:only-child {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  border: 0;
  border-radius: var(--radius);
  background: var(--color-cta);
  color: var(--color-on-cta);
  font-family: var(--font-body);
  font-size: var(--step-0);
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color var(--duration-short) var(--ease),
    color var(--duration-short) var(--ease);
}

.theme-hotelsinprint-button:hover,
.theme-hotelsinprint-header__links li:last-child a:hover,
.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry] button[type='submit']:hover,
.site-frame[data-theme='custom/hotelsinprint'] [data-block='callToAction'] a:hover,
.site-frame[data-theme='custom/hotelsinprint']
  [data-block='richText']
  p:last-child
  > a:only-child:hover {
  background: var(--color-inverted);
  color: var(--color-on-inverted);
}

/* On the ink band the button turns paper, and vermilion on hover (`.hip-btn--onink`). */
.site-frame[data-theme='custom/hotelsinprint']
  [data-tone='inverted']
  :is([data-block='richText'] p:last-child > a:only-child, [data-block='callToAction'] a) {
  background: var(--color-on-inverted);
  color: var(--color-inverted);
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-tone='inverted']
  :is([data-block='richText'] p:last-child > a:only-child, [data-block='callToAction'] a):hover {
  background: var(--color-cta);
  color: var(--color-on-cta);
}

/* ——— Header (`.hip-header`) ———————————————————————————————————————————————————— */

.theme-hotelsinprint-header {
  position: sticky;
  inset-block-start: 0;
  z-index: 30;
  background: var(--color-background);
  border-block-end: 1px solid var(--hip-rule);
}

.theme-hotelsinprint-header [data-nav='demo'] {
  margin: 0;
  padding: var(--space-0) var(--space-4);
  background: var(--color-inverted);
  color: var(--color-on-inverted);
  font-size: var(--step--1);
  text-align: center;
}

.theme-hotelsinprint-header__row {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  max-inline-size: var(--site-measure);
  min-block-size: 4.75rem;
  margin-inline: auto;
  padding-inline: var(--space-5);
}

.theme-hotelsinprint-header__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  flex: none;
  color: var(--color-text);
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: calc(var(--weight-display) + 40);
  letter-spacing: -0.02em;
  text-decoration: none;
  white-space: nowrap;
}

.theme-hotelsinprint-header__brand .theme-hotelsinprint-reg {
  --hip-reg: 0.85em;
}

.theme-hotelsinprint-wordmark i,
.theme-hotelsinprint-footer__brand i {
  color: var(--color-accent);
  font-family: var(--font-emphasis);
  font-style: italic;
  font-weight: calc(var(--weight-display) - 50);
}

.theme-hotelsinprint-header__menu {
  margin-inline-start: auto;
}

.theme-hotelsinprint-header__menu [data-nav='bar'] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
}

.theme-hotelsinprint-header__menu [data-nav='bar'] > li > :is(a, details > summary) {
  padding: var(--space-0) 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--color-text);
  font-size: var(--step--1);
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
}

.theme-hotelsinprint-header__menu [data-nav='bar'] > li > a:hover,
.theme-hotelsinprint-header__menu [data-nav='bar'] > li > a[aria-current='page'],
.theme-hotelsinprint-header__menu [data-nav='bar'] > li > a[data-in-trail] {
  text-decoration: underline;
  text-decoration-color: var(--color-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.35em;
}

.theme-hotelsinprint-header__menu :is([data-nav='panel'], [data-nav='mobile-panel']) {
  border: 1px solid var(--hip-rule);
  border-radius: 0;
  background: var(--color-surface-raised);
  box-shadow: var(--hip-shadow);
}

.theme-hotelsinprint-header__actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.theme-hotelsinprint-header__actions .language-picker a {
  min-inline-size: 2rem;
  min-block-size: 2rem;
  border-radius: 0;
  font-family: var(--font-body);
  font-weight: 600;
}

.theme-hotelsinprint-header__actions .language-picker a[aria-current='true'] {
  background: var(--color-inverted);
  box-shadow: none;
  color: var(--color-on-inverted);
}

.theme-hotelsinprint-header__links {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--step--1);
}

.theme-hotelsinprint-header__links li:last-child a {
  padding: var(--space-1) var(--space-3);
  font-size: var(--step--1);
}

@media (max-width: 64rem) {
  .theme-hotelsinprint-header__row {
    gap: var(--space-2);
  }

  .theme-hotelsinprint-header__menu {
    order: 3;
    margin-inline-start: 0;
  }

  .theme-hotelsinprint-header__actions {
    margin-inline-start: auto;
  }
}

@media (max-width: 40rem) {
  .theme-hotelsinprint-header__row {
    gap: var(--space-2);
    padding-inline: var(--space-3);
  }

  .theme-hotelsinprint-header__brand {
    gap: var(--space-2);
    font-size: var(--step-0);
  }

  .theme-hotelsinprint-header__actions .language-picker ul {
    flex-wrap: nowrap;
  }

  .site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'][data-variant='list'] li {
    grid-template-columns: var(--space-5) minmax(0, 1fr);
  }

  .theme-hotelsinprint-header__links {
    display: none;
  }
}

/* A page that ends on a band runs straight into the footer. */
.site-frame[data-theme='custom/hotelsinprint'] .site-main:has([data-tone]:last-child) {
  padding-block-end: 0;
}

/* The narrowest phones: the name on its own line, the languages and the menu beneath. */
@media (max-width: 24rem) {
  .theme-hotelsinprint-header__row {
    flex-wrap: wrap;
    row-gap: 0;
    padding-block: var(--space-2);
  }

  .theme-hotelsinprint-header__brand {
    flex-basis: 100%;
  }
}

/* ——— Breadcrumbs (`.hip-crumbs`) ——————————————————————————————————————————————— */

.site-frame[data-theme='custom/hotelsinprint'] [data-breadcrumbs] {
  margin-block: var(--space-4) 0;
  color: var(--color-muted-text);
  font-size: var(--step--1);
}

/* ——— Hero (`.hip-hero`) ———————————————————————————————————————————————————————— */

.theme-hotelsinprint-hero {
  display: grid;
  gap: var(--space-6);
  padding-block: var(--hip-section);
}

.theme-hotelsinprint-hero--split {
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  align-items: center;
}

.theme-hotelsinprint-hero__words {
  display: grid;
  gap: var(--space-4);
  align-content: start;
}

.theme-hotelsinprint-hero__words > * {
  margin: 0;
}

.theme-hotelsinprint-hero__kicker {
  color: var(--color-muted-text);
  font-size: var(--step--1);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.theme-hotelsinprint-hero__title {
  font-size: var(--hip-h1);
}

.theme-hotelsinprint-hero__lede {
  max-inline-size: 36em;
  color: var(--color-muted-text);
  font-size: var(--step-1);
  line-height: 1.5;
}

.theme-hotelsinprint-hero__actions {
  margin-block-start: var(--space-2);
}

.theme-hotelsinprint-hero__figure {
  margin: 0;
  padding: var(--space-5);
  background: var(--color-surface-raised);
  box-shadow: var(--hip-shadow);
}

@media (max-width: 64rem) {
  .theme-hotelsinprint-hero--split {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .theme-hotelsinprint-hero__words > * {
    animation: theme-hotelsinprint-ink var(--duration-long) var(--ease) both;
  }

  .theme-hotelsinprint-hero__words > :nth-child(2) {
    animation-delay: 60ms;
  }

  .theme-hotelsinprint-hero__words > :nth-child(3) {
    animation-delay: 140ms;
  }

  .theme-hotelsinprint-hero__words > :nth-child(4) {
    animation-delay: 220ms;
  }
}

/* A slide without a fade: words are never part-transparent, so their contrast holds throughout. */
@keyframes theme-hotelsinprint-ink {
  from {
    translate: 0 var(--space-2);
  }
}

/* ——— Sections: bands, text, headings (`.hip-section`, `.hip-lede`) ————————————————— */

.site-frame[data-theme='custom/hotelsinprint'] .site-main [data-tone] {
  /* Its own formatting context: a block's margins stay inside the band's colour. */
  display: flow-root;
  margin-block: 0;
  padding-block: var(--hip-section);
  border-block-start: 1px solid var(--hip-rule);
}

/* Consecutive blocks of one tone read as one band. */
.site-frame[data-theme='custom/hotelsinprint']
  .site-main
  [data-tone='tinted']
  + [data-tone='tinted'],
.site-frame[data-theme='custom/hotelsinprint']
  .site-main
  [data-tone='inverted']
  + [data-tone='inverted'] {
  padding-block-start: 0;
  border-block-start: 0;
}

.site-frame[data-theme='custom/hotelsinprint'] .site-main [data-tone]:has(+ [data-tone]) {
  padding-block-end: var(--space-5);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-tone='inverted'] {
  border-block-start: 0;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-tone='inverted'] :is(h1, h2) em,
.site-frame[data-theme='custom/hotelsinprint'] [data-tone='inverted'] .theme-hotelsinprint-reg {
  color: var(--hip-accent-on-ink);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-tone='inverted'] :is(h2, h3, a) {
  color: inherit;
}

.site-frame[data-theme='custom/hotelsinprint'] .site-main [data-block] > h2:first-child,
.site-frame[data-theme='custom/hotelsinprint'] [data-block='richText'] h2 {
  margin: 0 0 var(--space-4);
  font-size: var(--hip-h2);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='richText'] {
  max-inline-size: 48em;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='richText'] :is(p, li) {
  font-size: var(--step-1);
  line-height: 1.55;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='richText'] h2 + p {
  color: var(--color-muted-text);
}

/* On a dark band the lead keeps the band's own light text (INC-36d). */
.site-frame[data-theme='custom/hotelsinprint']
  [data-tone='inverted']
  [data-block='richText']
  h2
  + p {
  color: color-mix(in srgb, var(--color-on-inverted) 80%, transparent);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='richText'] li::marker {
  color: var(--color-accent);
}

/* `.hip-card`: a notice is a sheet of raised paper. */
.site-frame[data-theme='custom/hotelsinprint'] [data-block='richText'][data-variant='notice'] {
  padding: var(--space-5);
  border: 1px solid var(--hip-rule);
  border-radius: 0;
  background: var(--color-surface-raised);
  box-shadow: var(--hip-shadow);
}

/* ——— Text and image: a proof beside its words (`.hip-demo`, `.hip-booking`) ————————— */

.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'] {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-6);
  align-items: center;
  margin-block: var(--space-6);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'][data-variant='image-end'] {
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-block='textImage'][data-variant='image-end']
  > div:first-child {
  order: 2;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'] > div:first-child:has(img) {
  padding: var(--space-4);
  background: var(--color-surface-raised);
  box-shadow: var(--hip-shadow);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'] h2 {
  font-size: var(--step-3);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'] ul {
  margin: var(--space-3) 0 var(--space-4);
  padding: 0;
  list-style: none;
  border-block-start: 1px solid var(--hip-hair);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'] ul li {
  padding-block: var(--space-1);
  border-block-end: 1px solid var(--hip-hair);
  font-size: var(--step--1);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'] p {
  color: var(--color-muted-text);
  font-size: var(--step-1);
  line-height: 1.5;
}

.site-frame[data-theme='custom/hotelsinprint']
  :is([data-block='textImage'], [data-block='highlights'])
  > div
  > a,
.site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'] > div:last-child > a {
  color: var(--color-text);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--color-accent);
  text-decoration-thickness: 2px;
}

@media (max-width: 48rem) {
  .site-frame[data-theme='custom/hotelsinprint'] [data-block='textImage'],
  .site-frame[data-theme='custom/hotelsinprint']
    [data-block='textImage'][data-variant='image-end'] {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  .site-frame[data-theme='custom/hotelsinprint']
    [data-block='textImage'][data-variant='image-end']
    > div:first-child {
    order: 0;
  }
}

/* ——— Highlights ——————————————————————————————————————————————————————————————— */

.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'] ul {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: hip-item;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'] li {
  counter-increment: hip-item;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'] [data-highlight-title] {
  margin: 0 0 var(--space-2);
  font-size: var(--step-2);
  line-height: 1.15;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'] li p {
  margin: 0;
  color: var(--color-muted-text);
}

/* `.hip-spec`: a type-specimen table, each cell numbered in the italic accent. */
.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'][data-variant='grid'] ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  gap: 0;
  border-block-start: 2px solid var(--hip-rule);
}

/* Four entries read as two by two, not three and one. */
.site-frame[data-theme='custom/hotelsinprint']
  [data-block='highlights'][data-variant='grid']
  ul:has(> li:nth-child(4):last-child) {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 34rem), 1fr));
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'][data-variant='grid'] li {
  background: none;
  padding: var(--space-5) var(--space-4) var(--space-6);
  border-block-end: 1px solid var(--hip-hair);
  border-inline-end: 1px solid var(--hip-hair);
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-block='highlights'][data-variant='grid']
  li::before {
  content: counter(hip-item, decimal-leading-zero);
  display: block;
  margin-block-end: var(--space-4);
  color: var(--color-accent);
  font-family: var(--font-display);
  font-size: var(--step-5);
  font-style: italic;
  line-height: 1;
}

/* `.hip-notes`: the small print in large type, with footnote numerals. */
.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'][data-variant='list'] ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 34rem), 1fr));
  gap: var(--space-6) var(--space-7);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'][data-variant='list'] li {
  display: grid;
  grid-template-columns: var(--space-6) minmax(0, 1fr);
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-block='highlights'][data-variant='list']
  li::before {
  content: counter(hip-item);
  color: var(--color-accent);
  font-family: var(--font-display);
  font-size: var(--step-4);
  font-style: italic;
  line-height: 0.9;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'][data-variant='list'] li p {
  font-size: var(--step-1);
  line-height: 1.5;
}

/* `.hip-slots`: the stats strip as numbered places, a registration mark in each. */
.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'][data-variant='stats'] ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
  border: 1px solid currentcolor;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='highlights'][data-variant='stats'] li {
  color: inherit;
  display: grid;
  justify-items: center;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-1);
  text-align: center;
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-block='highlights'][data-variant='stats']
  li
  + li {
  border-inline-start: 1px solid currentcolor;
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-block='highlights'][data-variant='stats']
  li
  > div {
  display: grid;
  justify-items: center;
  gap: var(--space-3);
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-block='highlights'][data-variant='stats']
  li
  > div::after {
  content: '';
  order: 1;
  inline-size: var(--space-5);
  block-size: var(--space-5);
  border-radius: 50%;
  background:
    linear-gradient(currentcolor, currentcolor) center / 1.5px 100% no-repeat,
    linear-gradient(currentcolor, currentcolor) center / 100% 1.5px no-repeat,
    radial-gradient(
      circle,
      transparent calc(30% - 1px),
      currentcolor calc(30% - 1px),
      currentcolor 30%,
      transparent calc(30% + 0.5px)
    );
  color: var(--color-accent);
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-tone='inverted']
  [data-block='highlights'][data-variant='stats']
  li
  > div::after {
  color: var(--hip-accent-on-ink);
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-block='highlights'][data-variant='stats']
  [data-highlight-kicker] {
  margin: 0;
  color: inherit;
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-style: italic;
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-block='highlights'][data-variant='stats']
  li
  p:not([data-highlight-kicker]) {
  order: 2;
  color: inherit;
  font-size: calc(var(--step--1) * 0.85);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* ——— Questions (`.hip-faq`) ——————————————————————————————————————————————————— */

.site-frame[data-theme='custom/hotelsinprint'] [data-block='faq'] > div {
  border-block-start: 2px solid var(--hip-rule);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='faq'] details {
  border: 0;
  border-block-end: 1px solid var(--hip-hair);
  border-radius: 0;
  background: none;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='faq'] summary {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-4);
  cursor: pointer;
  list-style: none;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='faq'] summary::-webkit-details-marker {
  display: none;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='faq'] summary::after {
  content: '+';
  color: var(--color-accent);
  font-size: var(--step-2);
  line-height: 1;
  transition: rotate var(--duration-short) var(--ease);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='faq'] details[open] summary::after {
  rotate: 45deg;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='faq'] summary h3 {
  margin: 0;
  font-size: var(--step-2);
  line-height: 1.2;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-block='faq'] details > div {
  max-inline-size: 38em;
  padding-block-end: var(--space-4);
  color: var(--color-muted-text);
}

/* ——— The inquiry form: a proof to sign off (`.hip-form`) ——————————————————————————— */

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry] {
  max-inline-size: none;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: var(--space-3) var(--space-7);
  align-items: start;
  padding: 0;
  border: 0;
  background: none;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry] > :is(h2, p) {
  grid-column: 1;
  margin: 0;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry] > h2 {
  font-size: var(--hip-h2);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry] > h2 + p {
  color: var(--color-muted-text);
  font-size: var(--step-1);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry-fields] {
  grid-column: 2;
  grid-row: 1 / span 4;
  padding: var(--space-6);
  background: var(--color-surface-raised);
  box-shadow: var(--hip-shadow);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry-fields] label {
  font-size: var(--step--1);
  font-weight: 600;
}

.site-frame[data-theme='custom/hotelsinprint']
  [data-inquiry-fields]
  :is(input:not([type='checkbox']), select) {
  border: 0;
  border-block-end: 1px solid var(--hip-rule);
  border-radius: 0;
  background: transparent;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry-fields] textarea {
  border: 1px solid var(--hip-rule);
  border-radius: 0;
  background: transparent;
}

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry-fields] input[type='checkbox'] {
  accent-color: var(--color-accent);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry] button[type='submit'] {
  background: var(--color-inverted);
  color: var(--color-on-inverted);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-inquiry] button[type='submit']:hover {
  background: var(--color-cta);
  color: var(--color-on-cta);
}

@media (max-width: 64rem) {
  .site-frame[data-theme='custom/hotelsinprint'] [data-inquiry] {
    grid-template-columns: minmax(0, 1fr);
  }

  .site-frame[data-theme='custom/hotelsinprint'] [data-inquiry-fields] {
    grid-column: 1;
    grid-row: auto;
    padding: var(--space-4);
  }
}

/* ——— Closing band (`.hip-contact` without a form) ——————————————————————————————— */

.site-frame[data-theme='custom/hotelsinprint'] [data-closing-band] {
  border-block-start: 1px solid var(--hip-rule);
  border-radius: 0;
  background: var(--color-surface);
  color: var(--color-text);
}

.site-frame[data-theme='custom/hotelsinprint'] [data-closing-band] h2 {
  font-size: var(--hip-h2);
}

/* ——— Footer (`.hip-footer`) ————————————————————————————————————————————————————— */

.theme-hotelsinprint-footer {
  padding: var(--space-7) var(--space-5) var(--space-5);
  background: var(--color-inverted);
  color: var(--color-on-inverted);
  --color-muted-text: color-mix(in srgb, var(--color-on-inverted) 78%, var(--color-inverted));
}

.theme-hotelsinprint-footer a {
  color: inherit;
}

.theme-hotelsinprint-footer a:hover {
  color: var(--hip-accent-on-ink);
}

.theme-hotelsinprint-footer__columns,
.theme-hotelsinprint-footer__base {
  display: grid;
  max-inline-size: calc(var(--site-measure) - 2 * var(--space-5));
  margin-inline: auto;
}

.theme-hotelsinprint-footer__columns {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 2fr);
  gap: var(--space-6);
}

.theme-hotelsinprint-footer__house {
  display: grid;
  gap: var(--space-3);
  align-content: start;
  color: var(--color-muted-text);
}

.theme-hotelsinprint-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  color: var(--color-on-inverted);
  font-family: var(--font-display);
  font-size: var(--step-2);
}

.theme-hotelsinprint-footer :is(.theme-hotelsinprint-footer__brand i, .theme-hotelsinprint-reg) {
  color: var(--hip-accent-on-ink);
}

.theme-hotelsinprint-footer__links {
  display: grid;
  gap: var(--space-2);
  align-content: start;
  justify-items: start;
}

.theme-hotelsinprint-footer__links :is(button, a) {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  cursor: pointer;
}

.theme-hotelsinprint-footer__links ul {
  display: grid;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.theme-hotelsinprint-footer__note {
  margin: 0;
  color: var(--color-muted-text);
  font-size: var(--step--1);
  line-height: 1.6;
}

.theme-hotelsinprint-footer__base {
  grid-template-columns: 1fr auto;
  align-items: center;
  margin-block-start: var(--space-7);
  padding-block-start: var(--space-4);
  border-block-start: 1px solid color-mix(in srgb, var(--color-on-inverted) 30%, transparent);
  font-size: var(--step--1);
}

.theme-hotelsinprint-footer__base p {
  margin: 0;
}

/* The printer's colour bar, drawn from the site's own tokens. */
.theme-hotelsinprint-footer__colorbar {
  display: flex;
}

.theme-hotelsinprint-footer__colorbar i {
  inline-size: var(--space-4);
  block-size: var(--space-3);
}

.theme-hotelsinprint-footer__colorbar i:nth-child(1) {
  background: var(--color-on-inverted);
}

.theme-hotelsinprint-footer__colorbar i:nth-child(2) {
  background: var(--color-surface);
}

.theme-hotelsinprint-footer__colorbar i:nth-child(3) {
  background: var(--color-border);
}

.theme-hotelsinprint-footer__colorbar i:nth-child(4) {
  background: var(--color-accent);
}

.theme-hotelsinprint-footer__colorbar i:nth-child(5) {
  background: var(--color-focus);
}

@media (max-width: 64rem) {
  .theme-hotelsinprint-footer__columns {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .theme-hotelsinprint-footer__note {
    grid-column: 1 / -1;
  }
}

@media (max-width: 40rem) {
  .theme-hotelsinprint-footer__columns {
    grid-template-columns: minmax(0, 1fr);
  }

  .site-frame[data-theme='custom/hotelsinprint']
    :is(.theme-hotelsinprint-crop, [data-block='textImage'] > div:first-child:has(img))::before {
    --o: var(--space-2);
    --l: var(--space-2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-hotelsinprint-hero__words > * {
    animation: none;
  }
}

/*
 * The title fits its longest word (INC-36c, thought 12): its size is capped by the column it stands
 * in, so a long single word ("Geschäftsbedingungen", "Surroundings") is never cut where it
 * overflows. The hero carries the word's length as `--title-longest`; 0.6 is the display face's
 * width per letter, in em.
 */
.theme-hotelsinprint-hero__words {
  container-type: inline-size;
}

.theme-hotelsinprint-hero__title {
  font-size: max(var(--step-2), min(var(--hip-h1), calc(100cqi / (var(--title-longest, 8) * 0.6))));
}

/* ——— The page's measure ——————————————————————————————————————————————————————————————————————
 * The hotels' design packages draw their own widths section by section (INC-36d); the platform's
 * pages still sit in one column with a gutter, as they did before the shared structure changed. */
.site-frame[data-theme='custom/hotelsinprint'] .site-main {
  inline-size: 100%;
  max-inline-size: var(--site-measure, 64rem);
  margin-inline: auto;
  padding-block: 0 var(--space-7);
  padding-inline: var(--space-5);
}
