
:root {
  --ink:#123e43;
  --teal:#006d73;
  --mint:#c5e4df;
  --coral:#f58378;
  --pink:#fde5df;
  --gold:#c5943c;
  --cream:#fcfaf5;
  --line:#d5e0dc;
  --white:#fff}
* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:30px}
body {
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'DM Sans',sans-serif;
  font-size:17px;
  line-height:1.7}
h1,h2,h3,p,figure {
  margin:0}
h1,h2,h3 {
  font-family:Manrope,sans-serif;
  line-height:1.13;
  letter-spacing:-.045em}
h1 {
  font-size:clamp(46px,5.1vw,76px);
  font-weight:800}
h2 {
  font-size:clamp(34px,4vw,55px);
  font-weight:700}
h3 {
  font-size:26px;
  letter-spacing:-.025em}
em {
  font-style:normal;
  color:var(--teal)}
p+p {
  margin-top:18px}
a {
  color:inherit;
  text-underline-offset:5px}
img {
  display:block;
  max-width:100%;
  height:auto}
.wrap {
  max-width:1240px;
  width:calc(100% - 80px);
  margin-inline:auto}
.skip {
  position:absolute;
  top:-100px;
  background:white;
  padding:10px;
  z-index:20}
.skip:focus {
  top:0}
.topline {
  background:var(--teal);
  color:white;
  padding:9px 40px;
  display:flex;
  justify-content:space-between;
  font-size:12px;
  font-weight:600;
  letter-spacing:.07em}
.topline a {
  font-size:14px;
  letter-spacing:0;
  text-decoration:none}
.header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-block:15px}
.brand {
  display:block}
.logo-crop {
  width:178px;
  height:76px;
  display:block;
  overflow:hidden;
  position:relative}
.logo-crop img {
  width:240px;
  max-width:none;
  position:absolute;
  left:-31px;
  top:-86px}
.header nav {
  display:flex;
  gap:28px;
  font-size:14px;
  font-weight:600}
.header nav a {
  text-decoration:none}
.header nav a:hover {
  color:var(--teal);
  text-decoration:underline}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  background:var(--teal);
  color:white;
  text-decoration:none;
  border:1px solid var(--teal);
  border-radius:8px;
  padding:15px 24px;
  font-size:16px;
  font-weight:700;
  line-height:1.4;
  transition:background .2s,transform .2s}
.button:hover {
  background:#00595e;
  transform:translateY(-2px)}
.button.small {
  padding:12px 18px;
  font-size:14px}
.button.coral {
  background:var(--coral);
  border-color:var(--coral);
  color:var(--ink)}
.button.coral:hover {
  background:#ffa393}
.button.outline {
  background:transparent;
  color:var(--teal)}
.button.outline:hover {
  background:#e0efeb}
.text-link {
  font-size:15px;
  font-weight:700}
.hero {
  display:grid;
  grid-template-columns:1.08fr 1fr;
  gap:60px;
  padding-top:36px;
  padding-bottom:70px;
  align-items:center}
.eyebrow {
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  line-height:1.5;
  margin-bottom:22px}
.hero-copy h1 {
  margin-bottom:26px}
.hero-copy h1 em {
  color:#006b73}
.lead {
  font-size:21px;
  line-height:1.55;
  max-width:620px}
.hero-copy>p:not(.eyebrow):not(.micro) {
  max-width:565px}
.hero-copy .lead+p {
  margin-top:20px}
.actions {
  margin-top:28px;
  display:flex;
  align-items:flex-start;
  flex-direction:column;
  gap:18px}
.micro {
  font-size:13px;
  line-height:1.5;
  margin-top:14px;
  color:#456569}
.hero-art {
  position:relative;
  align-self:stretch;
  min-height:590px;
  padding-bottom:24px}
.image-window {
  height:100%;
  max-height:665px;
  overflow:hidden;
  border-radius:150px 150px 12px 12px;
  background:var(--mint)}
.image-window img {
  height:100%;
  width:148%;
  max-width:none;
  object-fit:cover;
  object-position:18% center}
.time-sticker {
  position:absolute;
  right:-18px;
  bottom:64px;
  transform:rotate(5deg);
  width:184px;
  height:184px;
  background:var(--coral);
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:var(--ink);
  box-shadow:0 6px 30px #123e4320}
.time-sticker strong {
  font-family:Manrope,sans-serif;
  font-size:44px;
  line-height:1.15;
  letter-spacing:-.06em}
.time-sticker span {
  font-size:13px;
  font-weight:800;
  letter-spacing:.07em}
.time-sticker small {
  font-size:11px;
  text-align:center;
  width:135px;
  line-height:1.3;
  margin-top:8px}
.art-caption {
  position:absolute;
  bottom:-8px;
  left:20px;
  font-size:11px;
  letter-spacing:.12em;
  font-weight:600}
.fact-strip {
  background:var(--mint)}
.facts {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding-block:28px}
.facts>div {
  padding:0 28px;
  border-right:1px solid #90bdb6}
.facts>div:first-child {
  padding-left:0}
.facts>div:last-child {
  border:0}
.facts strong {
  display:block;
  font-size:19px}
.facts span {
  display:block;
  font-size:13px}
.section {
  padding-block:100px}
.section-intro {
  max-width:800px;
  margin-bottom:48px}
.section-intro .lead {
  margin-top:24px}
.topic-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px}
.topic-grid article {
  border-top:2px solid var(--coral);
  padding-top:22px}
.topic-no {
  font-size:12px;
  letter-spacing:.07em;
  font-weight:700}
.topic-grid h3 {
  margin-block:18px}
.topic-grid p {
  font-size:16px;
  line-height:1.7}
.note {
  font-size:13px;
  line-height:1.6;
  color:#49666a;
  margin-top:30px;
  max-width:950px}
.time-section {
  background:var(--teal);
  color:white;
  padding-block:80px}
.time-layout {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:100px;
  align-items:center}
.time-section em {
  color:var(--mint)}
.time-section h2 {
  font-size:43px}
.time-section .lead {
  margin-top:28px}
.time-section .lead+p {
  margin-top:18px}
.time-section .button {
  margin-top:28px}
.time-section .micro {
  color:#d5eae7}
.hours-art {
  text-align:center;
  border:1px solid #ffffff40;
  padding:40px 25px;
  border-radius:180px 180px 12px 12px}
.hours-art>span {
  font-size:12px;
  font-weight:600;
  letter-spacing:.15em}
.hours-art>strong {
  font-family:Manrope,sans-serif;
  display:block;
  font-size:100px;
  letter-spacing:-.07em;
  line-height:1.5;
  font-weight:500}
.hours-art>strong span {
  color:var(--coral);
  font-size:65px}
.hours-art p {
  font-size:23px;
  line-height:1.4}
.hours-rule {
  width:40px;
  height:3px;
  background:var(--gold);
  margin:24px auto}
.hours-art small {
  font-size:13px;
  line-height:1.6;
  display:block}
.audience-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px}
.audience {
  padding:32px;
  border-radius:10px}
.mint {
  background:#ddede8}
.pink {
  background:var(--pink)}
.sand {
  background:#f2e9d6}
.tag {
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em}
.audience h3 {
  margin-block:24px}
.audience p {
  font-size:16px}
.chair-section {
  background:#edf4f0;
  padding-block:80px}
.chair-layout {
  display:grid;
  grid-template-columns:1fr 1.12fr;
  gap:95px;
  align-items:center}
.chair-visual {
  position:relative;
  text-align:center}
.chair-visual .eyebrow {
  display:block}
.chair-visual img {
  max-height:640px;
  width:100%;
  object-fit:contain}
.chair-label {
  font-size:11px;
  letter-spacing:.13em;
  display:block;
  margin-top:22px}
.chair-layout h2 {
  margin-bottom:24px}
.steps {
  list-style:none;
  padding:0;
  margin:30px 0}
.steps li {
  display:flex;
  gap:22px;
  padding-block:18px;
  border-top:1px solid #cdded7}
.steps li>span {
  font-family:Manrope,sans-serif;
  font-size:18px;
  color:var(--teal);
  font-weight:700}
.steps h3 {
  font-size:19px;
  letter-spacing:-.01em}
.steps p {
  font-size:15px;
  line-height:1.65;
  margin-top:8px}
.margit-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center}
.portrait img {
  width:100%;
  max-height:640px;
  object-fit:cover;
  object-position:center 42%;
  border-radius:12px 100px 12px 12px}
.portrait-label {
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.09em;
  margin-top:18px}
.quote {
  font-family:Manrope,sans-serif;
  font-size:31px;
  line-height:1.3;
  color:var(--teal);
  margin-block:28px;
  letter-spacing:-.03em}
.signature {
  margin-block:24px;
  font-weight:700}
.signature span {
  display:block;
  font-size:13px;
  font-weight:400}
.booking-section {
  background:var(--pink);
  padding-block:80px}
.booking-section h2 {
  margin-bottom:40px}
.booking-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:25px}
.booking {
  padding:36px;
  background:#fff8f3;
  border:1px solid #e8c3b7;
  border-radius:12px}
.booking.featured {
  background:white;
  border-top:4px solid var(--coral)}
.booking h3 {
  font-size:30px;
  margin-block:22px}
.booking .button {
  margin-top:24px}
.booking .text-link {
  display:block;
  margin-top:18px}
.booking-contact {
  margin-top:26px;
  font-size:15px}
.faq-layout {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:80px}
.faq-layout h2 {
  font-size:40px}
.faq details {
  border-bottom:1px solid var(--line)}
.faq details:first-child {
  border-top:1px solid var(--line)}
.faq summary {
  padding:22px 35px 22px 0;
  cursor:pointer;
  font-weight:600;
  line-height:1.5;
  position:relative;
  list-style:none}
.faq summary::-webkit-details-marker {
  display:none}
.faq summary:after {
  content:'+';
  position:absolute;
  right:3px;
  font-size:24px;
  top:16px;
  color:var(--teal)}
.faq details[open] summary:after {
  content:'−'}
.faq details p {
  font-size:15px;
  margin:0 0 22px}
.closing {
  text-align:center;
  background:var(--mint);
  padding-block:70px}
.closing h2 {
  font-size:clamp(40px,5vw,66px)}
.closing .button {
  margin-top:30px}
footer {
  padding-top:55px;
  background:#123e43;
  color:#e8efec;
  font-size:14px}
.footer-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:45px}
.footer-brand {
  font-family:Manrope,sans-serif;
  font-size:25px;
  letter-spacing:.05em}
.footer-grid h3 {
  font-size:16px;
  margin-bottom:15px;
  letter-spacing:0}
.footer-grid p {
  margin-top:12px;
  line-height:1.6}
.footer-grid a {
  display:block;
  margin-top:12px}
.footer-grid address {
  font-style:normal}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  padding-block:25px;
  margin-top:40px;
  border-top:1px solid #ffffff26;
  font-size:12px}
.footer-bottom nav {
  display:flex;
  gap:24px}
.disclaimer {
  font-size:12px;
  line-height:1.6;
  color:#bccecb;
  padding-bottom:30px}
a:focus-visible,summary:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:5px}

@media(min-width:1500px) {
  .hero-art {
  min-height:630px}
}

@media(max-width:1050px) {
  .wrap {
  width:calc(100% - 48px)}
.header nav {
  gap:15px}
.hero {
  gap:30px}
.hero-art {
  min-height:550px}
.time-sticker {
  right:-10px;
  width:155px;
  height:155px}
.time-sticker strong {
  font-size:38px}
.time-layout,.chair-layout,.margit-layout {
  gap:45px}
.facts>div {
  padding:0 16px}
.facts strong {
  font-size:16px}
.time-section h2 {
  font-size:36px}
.hours-art>strong {
  font-size:75px}
.hours-art>strong span {
  font-size:46px}
.audience {
  padding:25px}
.faq-layout {
  gap:40px}
.hero-copy .lead {
  font-size:19px}
}

@media(max-width:760px) {
  .wrap {
  width:calc(100% - 36px)}
.topline {
  padding:9px 18px;
  font-size:10px}
.topline>span {
  max-width:140px;
  line-height:1.3}
.topline a {
  font-size:12px;
  text-align:right;
  max-width:150px}
.header {
  padding-block:10px;
  gap:10px}
.header nav {
  display:none}
.logo-crop {
  width:130px;
  height:65px}
.logo-crop img {
  width:200px;
  left:-35px;
  top:-72px}
.button.small {
  font-size:12px;
  padding:10px 12px}
.hero {
  grid-template-columns:1fr;
  padding-top:25px;
  gap:30px;
  padding-bottom:40px}
h1 {
  font-size:clamp(41px,10.4vw,65px);
  line-height:1.13}
.hero-copy .eyebrow {
  font-size:11px;
  margin-bottom:17px}
.hero-copy .lead {
  font-size:19px}
.hero-copy>p {
  font-size:16px}
.hero-copy .micro {
  font-size:12px}
.actions .button {
  width:100%;
  padding-inline:15px}
.actions {
  gap:15px}
.hero-art {
  min-height:0;
  height:430px;
  width:100%;
  max-width:510px;
  justify-self:center}
.image-window {
  border-radius:110px 110px 12px 12px}
.image-window img {
  width:140%;
  object-position:left center}
.time-sticker {
  right:6px;
  bottom:40px;
  width:150px;
  height:150px}
.art-caption {
  font-size:10px;
  left:4px}
.facts {
  grid-template-columns:1fr 1fr;
  gap:23px;
  padding-block:25px}
.facts>div,.facts>div:first-child {
  padding:0 14px;
  border:0}
.facts span {
  font-size:12px}
.facts strong {
  font-size:15px}
.section {
  padding-block:65px}
.section-intro {
  margin-bottom:30px}
h2 {
  font-size:35px}
.lead {
  font-size:19px}
.topic-grid {
  grid-template-columns:1fr;
  gap:30px}
.topic-grid h3 {
  font-size:25px}
.topic-grid article {
  padding-top:16px}
.topic-grid h3 br {
  display:none}
.time-section {
  padding-block:55px}
.time-layout {
  grid-template-columns:1fr;
  gap:40px}
.time-section h2 {
  font-size:34px}
.hours-art {
  padding:35px 18px;
  border-radius:130px 130px 12px 12px}
.hours-art>strong {
  font-size:90px}
.hours-art>strong span {
  font-size:55px}
.audience-grid {
  grid-template-columns:1fr}
.audience {
  padding:28px}
.audience h3 {
  margin-block:18px;
  font-size:27px}
.chair-section {
  padding-block:55px}
.chair-layout {
  grid-template-columns:1fr;
  gap:45px}
.chair-visual img {
  max-height:490px}
.chair-visual {
  order:2}
.chair-visual .eyebrow {
  font-size:10px}
.margit-layout {
  grid-template-columns:1fr;
  gap:35px}
.portrait img {
  max-height:510px}
.portrait-label {
  font-size:10px}
.quote {
  font-size:29px}
.booking-section {
  padding-block:55px}
.booking-grid {
  grid-template-columns:1fr}
.booking {
  padding:28px}
.booking h3 {
  font-size:28px}
.booking .button {
  width:100%;
  font-size:15px;
  padding-inline:15px}
.booking-contact {
  font-size:14px}
.faq-layout {
  grid-template-columns:1fr;
  gap:28px}
.faq-layout h2 {
  font-size:34px}
.faq summary {
  font-size:16px}
.closing {
  padding-block:55px}
.footer-grid {
  grid-template-columns:1fr;
  gap:30px}
.footer-bottom {
  flex-direction:column;
  gap:15px}
.footer-bottom nav {
  gap:22px}
.disclaimer {
  font-size:11px}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
.button {
  transition:none}
.button:hover {
  transform:none}
}

.audience-image {
  width:100%;
  aspect-ratio:1;
  object-fit:contain;
  border-radius:6px;
  margin-bottom:24px}
.audience .tag {
  display:block;
  line-height:1.6}

.hero-art.hero-video {
  align-self:center;
  min-height:0;
  height:auto;
  padding-bottom:0;
  display:flex;
  flex-direction:column;
  gap:18px}
.hero-video .image-window {
  height:auto;
  max-height:none;
  border-radius:24px;
  overflow:hidden}
.hero-video video {
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  background:var(--mint)}
.hero-video .time-sticker {
  position:static;
  transform:none;
  width:100%;
  height:auto;
  border-radius:12px;
  box-shadow:none;
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:24px;
  text-decoration:none;
  padding:18px 24px;
  text-align:left}
.hero-video .time-sticker strong {
  grid-row:1 / 3;
  font-size:48px;
  align-self:center}
.hero-video .time-sticker span {
  align-self:end}
.hero-video .time-sticker small {
  width:auto;
  text-align:left;
  margin-top:2px;
  font-size:12px}
.hero-video .time-sticker:hover {
  background:#ffa393}
@media(max-width:760px) {
  .hero-video .time-sticker {
  padding:16px 20px}
.hero-video .time-sticker strong {
  font-size:43px}
}

.animated-hours {
  padding:36px 22px;
  border-radius:110px 110px 12px 12px}
.animated-hours .schedule-title {
  font-size:12px;
  font-weight:700;
  letter-spacing:.13em;
  margin:0 0 20px}
.weekdays {
  display:flex;
  justify-content:center;
  gap:6px;
  flex-wrap:wrap}
.day {
  font-size:13px;
  font-weight:700;
  border:1px solid #ffffff45;
  border-radius:50%;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  transition:background .35s,color .35s,border-color .35s}
.day.active {
  background:var(--coral);
  color:var(--ink);
  border-color:var(--coral)}
.schedule-clock {
  max-width:235px;
  margin:20px auto 15px;
  position:relative}
.schedule-clock svg {
  display:block;
  width:100%;
  overflow:visible;
  position:relative;
  z-index:2}
.clock-face {
  fill:#ffffff06;
  stroke:#ffffff26;
  stroke-width:1}
.clock-track {
  fill:none;
  stroke:#ffffff15;
  stroke-width:3}
.clock-progress {
  fill:none;
  stroke:var(--coral);
  stroke-width:3;
  stroke-linecap:round}
.clock-numbers {
  fill:#d9eeea;
  font-family:Manrope,sans-serif;
  font-size:14px;
  text-anchor:middle}
.hour-hand {
  stroke:white;
  stroke-width:5;
  stroke-linecap:round}
.minute-hand {
  stroke:var(--mint);
  stroke-width:3;
  stroke-linecap:round}
.clock-center {
  fill:var(--gold)}
.animated-time {
  position:absolute;
  top:58%;
  left:25%;
  width:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  background:var(--teal);
  border-radius:8px;
  padding:2px 0;
  line-height:1.4;
  z-index:1}
.animated-day {
  font-size:11px;
  letter-spacing:.03em}
.animated-readout {
  font-size:25px;
  font-family:Manrope,sans-serif;
  font-weight:600;
  font-variant-numeric:tabular-nums}
.animated-hours .opening-hours {
  font-size:17px;
  line-height:1.5;
  margin:0 0 16px}
.opening-hours strong {
  white-space:nowrap}
.animated-hours .opening-hours+p {
  margin:0;
  font-size:21px}
.animated-hours .hours-rule {
  margin:22px auto}
.animation-toggle {
  color:#e4f1ee;
  background:none;
  border:1px solid #ffffff40;
  border-radius:6px;
  padding:8px 12px;
  font-family:inherit;
  font-size:12px;
  cursor:pointer;
  margin-top:22px}
.animation-toggle:hover {
  background:#ffffff15}
.animation-toggle:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:4px}
@media(max-width:760px) {
  .animated-hours {
  padding:32px 14px;
  border-radius:90px 90px 12px 12px}
.weekdays {
  gap:5px}
.day {
  width:32px;
  height:32px;
  font-size:12px}
}
@media(prefers-reduced-motion:reduce) {
  .day {
  transition:none}
}

.animated-hours .day,.animated-hours .day.active {
  background:#e4b955;
  color:#123e43;
  border-color:#f8d786;
  animation:gold-days 2.4s ease-in-out infinite}
.animated-hours.animation-paused .day {
  animation-play-state:paused}
@keyframes gold-days {
  0%,100% {
  background:#e4b955;
  box-shadow:0 0 0 0 #f6cf7030}
50% {
  background:#ffdc7e;
  box-shadow:0 0 13px 3px #f6cf7060}
}
@media(prefers-reduced-motion:reduce) {
  .animated-hours .day {
  animation:none}
}

