*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:78px;
}

body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  color:#332d24;
  background:#fffaf3;
}

.site-header{
  position:sticky;
  top:0;
  z-index:100;
  height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 28px;
  background:rgba(255,250,243,.9);
  backdrop-filter:blur(14px);
  border-bottom:1px solid #eadfcd;
}

.site-logo{
  font-size:24px;
  font-weight:900;
  letter-spacing:.02em;
  color:inherit;
  text-decoration:none;
}

.site-header nav{
  display:flex;
  gap:18px;
}

.site-header a{
  display:flex;
  align-items:center;
  min-height:44px;
  color:#332d24;
  text-decoration:none;
  font-weight:800;
  white-space:nowrap;
}

.site-header a,
.lang-switch button,
.hero-btn,
.booking-card button,
.map-btn{
  transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease;
}

:where(a,button,input,select,textarea,summary):focus-visible{
  outline:3px solid rgba(43,111,201,.32);
  outline-offset:3px;
}

.hero{
  min-height:620px;
  display:flex;
  align-items:center;
  padding:80px max(6%,calc((100% - 1080px)/2));
  background:
    radial-gradient(circle at 80% 20%, #ffe18a 0, transparent 34%),
    radial-gradient(circle at 15% 80%, #ffd6e6 0, transparent 32%),
    linear-gradient(135deg,#fffaf3,#fff2c7);
}

.hero-text{
  max-width:720px;
}

.tag{
  display:inline-block;
  padding:8px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid #eadfcd;
  font-weight:900;
  color:#8a8174;
}

.hero h1{
  font-size:clamp(44px,5vw,64px);
  line-height:1.08;
  margin:22px 0;
}

.hero p{
  font-size:20px;
  line-height:1.8;
  color:#6f665a;
}

.hero-btn{
  display:inline-block;
  margin-top:18px;
  padding:16px 26px;
  border-radius:999px;
  background:#f2c94c;
  color:#332d24;
  text-decoration:none;
  font-weight:900;
  box-shadow:0 10px 24px rgba(216,169,0,.25);
}

/* 首页活动海报：可横向滑动、自动轮播，并保留悬浮操作按钮。 */
.events-section{
  width:min(1180px,94%);
  padding-top:64px;
}

.events-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:26px;
}

.events-heading h2{
  margin-bottom:10px;
}

.section-kicker{
  margin:0 0 10px;
  color:#a17800;
  font-size:13px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.events-lead{
  max-width:640px;
  margin:0;
}

.event-carousel-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

.event-carousel-controls button{
  min-height:44px;
  border:1px solid #dfd3c0;
  background:#fff;
  color:#332d24;
  font:inherit;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(80,60,30,.08);
  transition:transform .16s ease,background-color .16s ease,border-color .16s ease;
}

.event-carousel-icon-button{
  width:44px;
  padding:0;
  border-radius:50%;
  font-size:20px;
}

.event-carousel-autoplay{
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 15px;
  border-radius:999px;
}

.event-carousel-autoplay[aria-pressed="true"]{
  background:#332d24;
  border-color:#332d24;
  color:#fff;
}

.event-carousel-autoplay-icon{
  width:14px;
  text-align:center;
}

.event-carousel-count{
  min-width:44px;
  margin:0;
  color:#756b5f;
  font-size:14px;
  font-variant-numeric:tabular-nums;
  text-align:center;
}

.event-carousel{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  padding:8px 4px 24px;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:4px;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}

.event-carousel::-webkit-scrollbar{
  display:none;
}

.event-carousel-track{
  display:flex;
  gap:20px;
  width:max-content;
}

.event-card{
  --poster-background:linear-gradient(145deg,#ffcfda 0%,#f6e1b9 58%,#ffb7cf 100%);
  --poster-ink:#371d2a;
  position:relative;
  flex:0 0 clamp(320px,58vw,600px);
  aspect-ratio:4 / 5;
  overflow:hidden;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  border:1px solid rgba(51,45,36,.12);
  border-radius:32px;
  background:var(--poster-background);
  color:var(--poster-ink);
  box-shadow:0 18px 42px rgba(74,55,28,.16);
  isolation:isolate;
  transition:transform .2s ease,box-shadow .2s ease;
}

.event-card--blue{
  --poster-background:linear-gradient(145deg,#c8e9ff 0%,#c5d8ff 46%,#eee1ff 100%);
  --poster-ink:#102f52;
}

.event-card--green{
  --poster-background:linear-gradient(145deg,#d9f3b8 0%,#bce5d2 52%,#f4e9ae 100%);
  --poster-ink:#173d2c;
}

.event-card::before,
.event-card::after{
  content:"";
  position:absolute;
  z-index:-1;
  border-radius:50%;
  background:rgba(255,255,255,.42);
  filter:blur(1px);
}

.event-card::before{
  width:62%;
  aspect-ratio:1;
  top:-18%;
  right:-18%;
}

.event-card::after{
  width:48%;
  aspect-ratio:1;
  left:-16%;
  bottom:8%;
  background:rgba(255,255,255,.26);
}

.event-poster{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:26px 26px 98px;
  cursor:pointer;
}

.event-poster-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:14px;
  font-weight:900;
  letter-spacing:.05em;
}

.event-poster-top span:last-child{
  display:grid;
  width:42px;
  aspect-ratio:1;
  place-items:center;
  border:1px solid currentColor;
  border-radius:50%;
}

.event-poster-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  margin:auto 0;
}

.event-poster-kicker{
  display:inline-flex;
  padding:7px 11px;
  border:1px solid currentColor;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
}

.event-poster-copy strong{
  font-size:clamp(40px,5vw,62px);
  line-height:1;
  letter-spacing:-.04em;
}

.event-poster-copy > span:last-child{
  font-size:18px;
  font-weight:800;
  opacity:.72;
}

.event-card-actions{
  position:absolute;
  z-index:5;
  right:18px;
  bottom:18px;
  left:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  pointer-events:none;
}

.event-card-booking,
.event-card-more{
  position:relative;
  z-index:1;
  min-height:50px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(51,45,36,.12);
  border-radius:999px;
  color:#332d24;
  font:inherit;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  pointer-events:auto;
  box-shadow:0 10px 24px rgba(48,35,19,.18);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease;
}

.event-card-booking{
  padding:0 20px;
  background:rgba(242,201,76,.94);
}

.event-card-more{
  gap:8px;
  padding:0 17px;
  background:rgba(255,255,255,.9);
}

.event-card-more > span:last-child{
  font-size:20px;
}

.event-dialog{
  width:min(900px,calc(100% - 32px));
  max-height:min(760px,calc(100dvh - 32px));
  overflow:auto;
  padding:54px 28px 28px;
  border:0;
  border-radius:30px;
  background:#fffaf3;
  color:#332d24;
  box-shadow:0 30px 90px rgba(35,26,14,.32);
}

.event-dialog::backdrop{
  background:rgba(37,29,21,.52);
  backdrop-filter:blur(7px);
}

.event-dialog-close{
  position:absolute;
  z-index:2;
  top:14px;
  right:14px;
  width:44px;
  min-height:44px;
  border:1px solid #dfd3c0;
  border-radius:50%;
  background:#fff;
  color:#332d24;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.event-detail{
  display:grid;
  grid-template-columns:minmax(220px,300px) minmax(0,1fr);
  gap:32px;
  align-items:center;
}

.event-detail[hidden]{
  display:none;
}

.event-detail-poster{
  --poster-background:linear-gradient(145deg,#ffcfda 0%,#f6e1b9 58%,#ffb7cf 100%);
  --poster-ink:#371d2a;
  aspect-ratio:4 / 5;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:24px;
  border-radius:24px;
  background:var(--poster-background);
  color:var(--poster-ink);
  box-shadow:0 16px 34px rgba(74,55,28,.16);
}

.event-detail-poster.event-card--blue{
  --poster-background:linear-gradient(145deg,#c8e9ff 0%,#c5d8ff 46%,#eee1ff 100%);
  --poster-ink:#102f52;
}

.event-detail-poster.event-card--green{
  --poster-background:linear-gradient(145deg,#d9f3b8 0%,#bce5d2 52%,#f4e9ae 100%);
  --poster-ink:#173d2c;
}

.event-detail-poster span{
  font-weight:900;
}

.event-detail-poster strong{
  align-self:flex-end;
  font-size:88px;
  line-height:.85;
}

.event-detail-copy h3{
  margin:0;
  font-size:clamp(34px,5vw,52px);
  line-height:1.05;
}

.event-detail-intro{
  margin:18px 0 22px;
  color:#6f665a;
  font-size:17px;
  line-height:1.75;
}

.event-detail-list{
  display:grid;
  gap:10px;
  margin:0;
}

.event-detail-list div{
  display:grid;
  grid-template-columns:90px minmax(0,1fr);
  gap:14px;
  padding:14px 0;
  border-top:1px solid #eadfcd;
}

.event-detail-list dt{
  color:#8a8174;
  font-weight:800;
}

.event-detail-list dd{
  margin:0;
  font-weight:900;
}

body:has(.event-dialog[open]){
  overflow:hidden;
}

.section{
  width:min(1080px,92%);
  margin:0 auto;
  padding:72px 0;
}

.section h2{
  font-size:clamp(30px,4vw,38px);
  margin:0 0 18px;
}

.section-lead{
  color:#7c7163;
  font-size:17px;
  line-height:1.7;
}

.feature-grid,
.price-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:26px;
}

.price-grid{
  grid-template-columns:repeat(2,1fr);
}

.feature-card,
.price-card,
.booking-card{
  background:#fff;
  border:1px solid #eadfcd;
  border-radius:28px;
  padding:26px;
  box-shadow:0 14px 34px rgba(80,60,30,.1);
  transition:transform .18s ease,box-shadow .18s ease;
}

@media(hover:hover){
  .hero-btn:hover,.map-btn:hover{transform:translateY(-2px);}
  .feature-card:hover,.price-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(80,60,30,.14);}
  .event-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(74,55,28,.2);}
  .event-card-booking:hover,.event-card-more:hover,.event-carousel-controls button:hover{transform:translateY(-2px);}
}

.feature-card h3,
.price-card h3{
  margin:0 0 12px;
  font-size:24px;
}

.feature-card p,
.price-card p{
  color:#6f665a;
  line-height:1.7;
}

.accessory-list{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px;
}

.accessory-list button{
  padding:12px 18px;
  background:#fff;
  border:1px solid #eadfcd;
  border-radius:999px;
  color:#332d24;
  font:inherit;
  font-weight:900;
}

.booking-section{
  width:min(760px,92%);
}

.booking-card label{
  display:block;
  margin:16px 0 7px;
  font-weight:900;
}

.booking-card input,
.booking-card select,
.booking-card textarea{
  width:100%;
  min-width:0;
  min-height:48px;
  border:1px solid #eadfcd;
  border-radius:16px;
  padding:14px;
  font:inherit;
  background:#fffaf3;
}

.booking-card :is(input,select,textarea):focus{
  border-color:#d8a900;
  box-shadow:0 0 0 4px rgba(242,201,76,.2);
}

.booking-card textarea{
  min-height:100px;
  resize:vertical;
}

.booking-card button{
  width:100%;
  margin-top:22px;
  padding:16px;
  border:0;
  border-radius:18px;
  background:#f2c94c;
  color:#332d24;
  font-size:18px;
  font-weight:900;
  cursor:pointer;
}

.booking-card button:disabled{
  cursor:not-allowed;
  opacity:.55;
  transform:none;
}

.booking-recommendations{
  margin-top:20px;
  padding:16px;
  border:1px solid #eadfcd;
  border-radius:16px;
  background:#fffaf3;
}

.booking-recommendations h3{margin:0;font-size:18px;}
.booking-recommendations p{font-size:14px;line-height:1.6;color:#6f665a;}
.booking-recommendations p:empty{display:none;}
.booking-recommendations button{margin-top:8px;font-size:15px;min-height:48px;}
#bookingRecommendationsList{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:8px;}
#bookingRecommendationsList button{background:#fff;border:1px solid #d8a900;line-height:1.6;text-align:left;}

#bookingEmailCodeButton,
details.booking-card button:not(#bookingCancelButton){
  border:1px solid #d8a900;
  background:#fff8dc;
  color:#6f5200;
}

#bookingCancelButton{
  border:1px solid #d7a5a0;
  color:#8f2f27;
}

details.booking-card summary{
  min-height:44px;
  display:flex;
  align-items:center;
}

footer{
  text-align:center;
  color:#8a8174;
  padding:40px 0;
  border-top:1px solid #eadfcd;
}

@media(max-width:900px){
  .hero{
    min-height:auto;
    padding:72px 6%;
  }

  .hero h1{
    font-size:38px;
  }

  .hero p{
    font-size:17px;
  }

  .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));}

  .events-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
  }

  .event-detail{
    grid-template-columns:minmax(180px,240px) minmax(0,1fr);
    gap:24px;
  }
}

.lang-switch{
  display:flex;
  gap:6px;
  margin-left:12px;
}

.lang-switch button{
  border:1px solid #eadfcd;
  background:#fff;
  color:#332d24;
  border-radius:999px;
  padding:7px 10px;
  font-size:13px;
  font-weight:900;
  min-height:44px;
  cursor:pointer;
}

.lang-switch button.active{
  background:#f2c94c;
  border-color:#d8a900;
}

@media(max-width:1100px){
  html{scroll-padding-top:124px;}

  .site-header{
    height:auto;
    min-height:112px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:"logo lang" "nav nav";
    gap:4px 14px;
    padding:8px 18px;
  }

  .site-logo{grid-area:logo;}

  .site-header nav{
    grid-area:nav;
    width:100%;
    gap:4px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }

  .site-header nav::-webkit-scrollbar{display:none;}

  .site-header nav a{
    flex:0 0 auto;
    padding:0 10px;
  }

  .lang-switch{
    grid-area:lang;
    justify-self:end;
    margin-left:0;
  }
}

@media(max-width:600px){
  html{scroll-padding-top:116px;}

  .site-header{
    min-height:104px;
    gap:2px 8px;
    padding:7px 12px;
  }

  .site-logo{font-size:21px;}
  .site-header nav{font-size:14px;}
  .site-header nav a{min-height:40px;padding:0 9px;}
  .lang-switch{gap:4px;}
  .lang-switch button{min-height:38px;padding:6px 8px;font-size:12px;}

  .hero{padding:58px 18px 64px;}
  .hero h1{font-size:clamp(36px,10vw,44px);}
  .hero p{font-size:17px;line-height:1.7;}

  .events-section{width:calc(100% - 24px);padding-top:46px;}
  .events-heading{margin-bottom:18px;}
  .event-carousel-controls{width:100%;}
  .event-carousel-autoplay{margin-left:auto;}
  .event-card{flex-basis:min(82vw,340px);border-radius:26px;}
  .event-poster{padding:22px 22px 92px;}
  .event-poster-copy strong{font-size:44px;}
  .event-card-actions{right:14px;bottom:14px;left:14px;}
  .event-card-booking{padding:0 17px;}
  .event-card-more{width:50px;padding:0;}
  .event-card-more-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
  .event-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:58px 18px 22px;border-radius:24px;}
  .event-detail{grid-template-columns:1fr;gap:22px;}
  .event-detail-poster{width:min(100%,300px);aspect-ratio:16 / 9;justify-self:center;}
  .event-detail-poster strong{font-size:64px;}

  .section,.booking-section{
    width:calc(100% - 24px);
    padding:48px 0;
  }

  .feature-grid,.price-grid{grid-template-columns:1fr;}

  .feature-card,.price-card,.booking-card{
    padding:20px;
    border-radius:22px;
  }

  .photo-group{border-radius:20px;padding:14px;}
  .photo-placeholder{height:240px;}
  .map-box iframe{height:270px;}
}

@media(prefers-reduced-motion:reduce){
  html,
  .event-carousel{
    scroll-behavior:auto;
  }

  .event-card,
  .event-card-booking,
  .event-card-more,
  .event-carousel-controls button{
    transition:none;
  }
}

/* 首屏轮播：店铺介绍为第一屏，后续为活动海报。操作按钮固定在轮播上层。 */
.hero-carousel{
  position:relative;
  min-height:620px;
  overflow:hidden;
  background:#fff2c7;
  isolation:isolate;
}

.hero-carousel-viewport{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
  cursor:grab;
  -webkit-overflow-scrolling:touch;
}

.hero-carousel-viewport.is-dragging{
  scroll-behavior:auto;
  scroll-snap-type:none;
  cursor:grabbing;
  user-select:none;
  -webkit-user-select:none;
}

.hero-carousel-viewport::-webkit-scrollbar{
  display:none;
}

.hero-carousel-track{
  display:flex;
  width:100%;
}

.hero-slide{
  position:relative;
  flex:0 0 100%;
  width:100%;
  min-width:100%;
  min-height:620px;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  contain:layout paint;
}

.hero-slide--intro{
  padding-bottom:160px;
}

.hero-slide--event{
  --poster-background:linear-gradient(145deg,#ffcfda 0%,#f6e1b9 58%,#ffb7cf 100%);
  --poster-ink:#371d2a;
  overflow:hidden;
  background:var(--poster-background);
  color:var(--poster-ink);
}

.hero-slide--event.event-card--blue{
  --poster-background:linear-gradient(145deg,#c8e9ff 0%,#c5d8ff 46%,#eee1ff 100%);
  --poster-ink:#102f52;
}

.hero-slide--event.event-card--green{
  --poster-background:linear-gradient(145deg,#d9f3b8 0%,#bce5d2 52%,#f4e9ae 100%);
  --poster-ink:#173d2c;
}

.hero-slide--event::before,
.hero-slide--event::after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.36);
}

.hero-slide--event::before{
  width:min(52vw,680px);
  aspect-ratio:1;
  top:-42%;
  right:-8%;
}

.hero-slide--event::after{
  width:min(38vw,480px);
  aspect-ratio:1;
  left:-8%;
  bottom:-34%;
  background:rgba(255,255,255,.24);
}

.hero-event-poster{
  position:absolute;
  inset:0;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:54px max(6%,calc((100% - 1080px)/2)) 154px;
}

.hero-event-poster-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-size:14px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.hero-event-poster-top span:last-child{
  padding:9px 13px;
  border:1px solid currentColor;
  border-radius:999px;
}

.hero-event-poster-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
  width:min(760px,80%);
  margin:auto 0;
}

.hero-event-poster-copy strong{
  font-size:clamp(58px,8vw,104px);
  line-height:.96;
  letter-spacing:-.055em;
}

.hero-event-poster-copy > span:last-child{
  font-size:clamp(19px,2.4vw,30px);
  font-weight:800;
  opacity:.7;
}

.hero-carousel-actions{
  position:absolute;
  z-index:8;
  right:max(6%,calc((100% - 1080px)/2));
  bottom:70px;
  left:max(6%,calc((100% - 1080px)/2));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  pointer-events:none;
}

.hero-carousel-booking,
.hero-carousel-more{
  position:relative;
  z-index:1;
  min-height:54px;
  margin:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  pointer-events:auto;
}

.hero-carousel-more{
  gap:10px;
  padding:0 20px;
  border:1px solid rgba(51,45,36,.16);
  border-radius:999px;
  background:rgba(255,255,255,.9);
  color:#332d24;
  font:inherit;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 10px 28px rgba(48,35,19,.18);
  transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease;
}

.hero-carousel-more span:last-child{
  font-size:21px;
}

.hero-carousel-controls{
  position:absolute;
  z-index:9;
  bottom:16px;
  left:50%;
  display:flex;
  align-items:center;
  gap:1px;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  transform:translateX(-50%);
}

.hero-carousel-dot{
  display:grid;
  width:30px;
  min-height:30px;
  padding:0;
  place-items:center;
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
}

.hero-carousel-dot::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(51,45,36,.34);
  transition:width .18s ease,height .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.hero-carousel-dot[aria-current="true"]::before{
  width:12px;
  height:12px;
  background:#332d24;
}

@media(hover:hover){
  .hero-carousel-booking:hover,
  .hero-carousel-more:hover{
    transform:translateY(-2px);
  }

  .hero-carousel-dot:hover::before{
    background:#332d24;
    transform:scale(1.2);
  }
}

@media(max-width:900px){
  .site-header{
    background:rgba(255,250,243,.98);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }

  .hero-carousel,
  .hero-slide{
    min-height:600px;
  }

  .hero-slide--intro{
    padding-bottom:150px;
  }
}

@media(max-width:600px){
  .hero-carousel,
  .hero-slide{
    min-height:590px;
  }

  .hero-carousel .hero-slide--intro{
    padding:58px 18px 154px;
  }

  .hero-event-poster{
    padding:30px 18px 150px;
  }

  .hero-event-poster-copy{
    width:100%;
  }

  .hero-event-poster-copy strong{
    font-size:clamp(50px,17vw,72px);
  }

  .hero-carousel-actions{
    right:14px;
    bottom:68px;
    left:14px;
    gap:10px;
  }

  .hero-carousel-booking{
    min-height:50px;
    padding:0 18px;
  }

  .hero-carousel-more{
    width:50px;
    min-height:50px;
    padding:0;
  }

  .hero-carousel-more span:first-child{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip-path:inset(50%);
    white-space:nowrap;
  }

  .hero-carousel-controls{
    bottom:12px;
  }

  .hero-carousel-dot{
    width:28px;
    min-height:28px;
  }
}

@media(prefers-reduced-motion:reduce){
  .hero-carousel-viewport{
    scroll-behavior:auto;
  }

  .hero-carousel-booking,
  .hero-carousel-more,
  .hero-carousel-dot::before{
    transition:none;
  }
}

/* 占位版块（活动/照片/玩法） */
.placeholder-box{
  border:2px dashed #d8cfc0;
  border-radius:16px;
  padding:32px 20px;
  text-align:center;
  color:#8a8174;
  font-weight:800;
  background:#faf7f2;
}

/* 照片展示：横向滚动，点击配饰跳转 */
.accessory-list button{
  cursor:pointer;
}
.photo-scroll{
  display:flex;
  gap:16px;
  overflow-x:auto;
  padding:8px 4px 16px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.photo-group{
  flex:0 0 auto;
  width:min(100%,720px);
  flex-basis:min(100%,720px);
  scroll-snap-align:center;
  border:2px dashed #d8cfc0;
  border-radius:16px;
  padding:16px;
  text-align:center;
  background:#faf7f2;
}
.photo-group h3{
  margin:0 0 10px;
}
.photo-placeholder{
  height:320px;
  border-radius:12px;
  background:#eee;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#8a8174;
  font-weight:800;
}


/* 配饰与照片墙：提示紧贴配饰按钮，照片墙紧贴提示 */
.photo-scroll-hint{
  margin:14px 0 0;
  color:#7c7163;
  font-size:15px;
}
.price-note{
  margin-top:16px;
  font-size:14px;
  color:#8a8174;
}

/* 交通：地图 + 导航按钮 + 照片占位 */
.map-box{
  margin-top:20px;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 4px 16px rgba(0,0,0,.08);
}
.map-box iframe{
  display:block;
  width:100%;
  height:320px;
  border:0;
}
.map-btn{
  display:inline-block;
  padding:14px 24px;
  background:#332d24;
  color:#fff;
  border-radius:999px;
  font-weight:900;
  text-decoration:none;
}
.map-btn:hover{
  opacity:.88;
}
.access-photos-placeholder{
  margin-top:20px;
  border:2px dashed #d8cfc0;
  border-radius:16px;
  padding:32px 20px;
  text-align:center;
  color:#8a8174;
  font-weight:800;
  background:#faf7f2;
}

.access-address{
  margin-top:12px;
  font-size:15px;
  line-height:1.8;
  color:#7c7163;
}

.access-address-lines{
  display:block;
  white-space:pre-line;
}

/* 我们这里有：特色标签 */
.feature-extra{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-top:28px;
}
.feature-extra span{
  padding:10px 16px;
  background:#fff;
  border:1px solid #eadfcd;
  border-radius:999px;
  font-weight:900;
  color:#4a4238;
}

/* 烫法：每种烫法一张照片 + 说明 */
.iron-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
  margin-top:20px;
}
.iron-card{
  border:2px dashed #d8cfc0;
  border-radius:16px;
  padding:16px;
  text-align:center;
  background:#faf7f2;
}
.iron-card h3{
  margin:12px 0 6px;
}
.iron-card p{
  color:#7c7163;
  font-size:14px;
  margin:0;
}
.iron-photo{
  height:160px;
  border-radius:12px;
  background:#eee;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#8a8174;
  font-weight:800;
}

/* 后台发布的图片：仅在图片成功载入后替换内置占位。 */
.hero-slide--event.has-cms-image{
  background-color:#eee6d9;
  background-image:var(--cms-image);
  background-position:center;
  background-size:cover;
}

.hero-slide--event.has-cms-image::before,
.hero-slide--event.has-cms-image::after{
  display:none;
}

.hero-slide--event.has-cms-image .hero-event-poster{
  opacity:0;
}

.event-detail-poster.has-cms-image,
.iron-photo.has-cms-image,
.photo-placeholder.has-cms-image,
.access-photos-placeholder.has-cms-image{
  background-color:#eee6d9;
  background-image:var(--cms-image);
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  border-style:solid;
}

.event-detail-poster.has-cms-image > *,
.iron-photo.has-cms-image,
.photo-placeholder.has-cms-image,
.access-photos-placeholder.has-cms-image > *{
  color:transparent;
}

.event-detail-intro,
.event-detail-list dd,
.placeholder-box p,
.iron-card p,
.section-lead,
.price-note{
  white-space:pre-line;
}
