/* Official Playfair Display subsets, served locally with their OFL license. */
@font-face{
  font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;
  src:url('assets/fonts/playfair-display-latin-ext-700.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;
  src:url('assets/fonts/playfair-display-latin-700.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* Official Playfair Display subsets, served locally with their OFL license. */
@font-face{
  font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;
  src:url('assets/fonts/playfair-display-latin-ext-900.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;
  src:url('assets/fonts/playfair-display-latin-900.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* Approved public theme: warm gold and pure white, with component sizes retained. */
html.public-site{
  --gold:#D8BF86;
  --gold-light:#D8BF86;
  --gold-text:#D8BF86;
  --gold-text-light:#D8BF86;
  --gold-rgb:216,191,134;
  --gold-light-rgb:216,191,134;
  --text:#FFFFFF;
  --line:rgba(var(--gold-rgb),.3);
  --font-display:'Playfair Display','Times New Roman',serif;
  --gold-soft-shadow:0 0 2px rgba(216,191,134,.18),0 0 6px rgba(216,191,134,.10),0 0 10px rgba(216,191,134,.06);
}

/* Display text is pure white. Body copy and form fields retain their reading font. */
.public-site :is(
  h1,h2,h3,.white-pure,
  .banner-caption :is(p,h1),.banner-caption .banner-link,
  .mini-link strong,.menu-trigger>span,.menu-primary a>span,.menu-bottom a,
  .button,.button-secondary,.profile-card-bottom>a,
  :where(.bottom-nav>a:not([aria-current=page]):not(.site-nav-home)>span:last-child),
  .sp-accordion summary,.sp-photo-note p,.sp-about-caption>p:last-child,
  .sp-location-bottom>span,.sp-wellness-photo figcaption>span:first-child,
  .club-review-state p,.club-google-summary>.club-rating>strong
){
  font-family:var(--font-display);
  font-weight:900;
  font-style:normal;
  -webkit-text-fill-color:currentColor;
  filter:none;
  text-shadow:none;
}
.public-site :is(h1,h2,h3,.white-pure,.banner-caption :is(p,h1),.sp-about-caption>p:last-child){color:var(--text)}

/* Text-only gold styling leaves media, icon strokes and control surfaces intact. */
.public-site :is(
  .gold-elegant-soft,
  .eyebrow,.footer-title,.text-link,
  .profile-video-empty>span,.profile-facts-grid dt,
  .profile-biography summary>span,.profile-details summary,
  .profile-extend-affordance>span:last-child,.profile-nav-label,
  .site-nav-home>span:last-child,
  .bottom-nav>a[aria-current=page]>span:last-child,
  .review-average-value,.review-feedback,.review-sample-label,.review-more summary>span,
  .club-reviews-link,.club-reviews-back,
  .club-reviews-panel-head h3:not(.club-reviews-google-attribution),
  .club-reviews-summary .club-rating>strong,
  .sp-page em,.sp-photo:not(.sp-wellness-photo) figcaption>span:first-child,
  .sp-oversized-star,.sp-star,.sp-price-status,.sp-copy-status,.sp-form-status,
  .sp-link-number,.sp-link-card>span:last-child,.sp-wellness-photo figcaption>span:last-child,
  .sp-job-number,.sp-jobs-contact>p,.sp-accordion a,
  .sp-legal-nav a[aria-current],.sp-legal-body a,
  .sp-pill,.sp-text-link,.sp-phone,.sp-coordinate,
  .sp-location-label>span:last-child,.sp-location-label small,.sp-location-bottom a,
  .sp-mini-orbit,.sp-quote-mark,
  .feedback-dialog .button-primary,.feedback-dialog .feedback-availability
){
  color:var(--gold-text);
  font-family:var(--font-display);
  font-weight:700;
  font-style:normal;
  text-transform:none;
  letter-spacing:.5px;
  -webkit-text-fill-color:currentColor;
  filter:none;
  text-shadow:var(--gold-soft-shadow);
}
.public-site :is(.sp-coordinate>span,.club-rating>strong>span){text-shadow:none}

/* Explicit white labels retain their typography and leave adjacent icons gold. */
.public-site :is(
  .footer-title,
  .bottom-nav>.site-nav-home>span:last-child,
  .bottom-nav>a[href="#/ueber-uns"]:not([aria-current=page])>span:last-child,
  .profile-extend-affordance>span:last-child
){
  color:var(--text);
  -webkit-text-fill-color:currentColor;
  filter:none;
  text-shadow:none;
}

.public-site .profile-navigation .profile-nav-item:not([aria-current=page]) .profile-nav-label{color:var(--text);text-shadow:none}

/* Home day marker uses half the original 36px sample size. */
.public-site .day-marker>.gold-elegant-soft{
  font-size:18px;min-width:0;white-space:normal;line-height:1.2;text-align:center;
}
.public-site .day-marker{min-width:0;max-width:100%}
.public-site .bottom-nav>a[aria-current=page]>span:last-child{max-width:calc(100% + 18px);white-space:nowrap}

/* Keep words and punctuation together instead of breaking at arbitrary glyphs. */
.public-site main :is(h1,h2,h3){overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:balance}
.public-site .banner-caption h1{letter-spacing:normal}
.public-site .sp-page h1{font-size:clamp(2rem,5.4vw,4.5rem);line-height:1.12}
.public-site .sp-newsletter-intro h1{font-size:clamp(2rem,5.8vw,4.75rem)}
.public-site .sp-newsletter-form h2{font-size:clamp(1.75rem,3.6vw,2.75rem);line-height:1.18}
.public-site :is(.sp-newsletter-intro,.sp-newsletter-form,.sp-title,.sp-legal-body){min-width:0}
@media(max-width:640px){
  .public-site .sp-page h1{font-size:clamp(1.875rem,10vw,2.625rem)}
  .public-site .sp-newsletter-intro h1{font-size:clamp(2rem,11vw,2.75rem)}
}

/* Browser scrolling and keyboard focus reserve space for the fixed chrome. */
html.public-site{scroll-padding-top:calc(120px + env(safe-area-inset-top,0px));scroll-padding-bottom:16px}
html.public-site:has(.profile-navigation){scroll-padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
@media(max-width:959px){
  html.public-site{scroll-padding-top:calc(92px + env(safe-area-inset-top,0px));scroll-padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
}

/* Display typography is reserved for editorial headings, not everyday controls. */
.public-site :is(.button,.button-secondary,.sp-text-link,.sp-accordion summary,.banner-link,.menu-trigger>span){font-family:Arial,sans-serif;font-weight:600;letter-spacing:0;text-shadow:none}
.public-site .button:not(.button-secondary){background:rgba(var(--gold-rgb),.08);border-color:var(--gold)}
.public-site .button.button-secondary{background:transparent;border-color:var(--line)}
.public-site :is(.button,.button-secondary):hover{border-color:var(--gold);background:rgba(var(--gold-rgb),.12)}

/* High-contrast modes use system text colors instead of decorative shadows. */
@media(forced-colors:active){
  .public-site :is(span,p,a,dt,em,h1,h2,h3,div.footer-title,button,summary){
    -webkit-text-fill-color:currentColor!important;
    filter:none!important;
    text-shadow:none!important;
  }
  .public-site :is(.gold-elegant-soft,.white-pure,.eyebrow,.footer-title,.profile-facts-grid dt,.profile-nav-label){color:CanvasText}
}
