/* Campaign palette is scoped to this Thanksgiving microsite. */
.thanksgiving-page{
  --tg-wine:#4b1824;
  --tg-cream:#f8f0df;
  --tg-line:#c8a58e;
  margin:0;
  background:var(--tg-cream);
  color:var(--tg-wine);
  font-family:Inter,"Noto Sans KR",sans-serif;
  font-size:16px;
  line-height:1.7
}
.thanksgiving-page *{
  box-sizing:border-box
}
.thanksgiving-page a{
  color:inherit;
  text-decoration:none
}
.thanksgiving-page button,.thanksgiving-page input,.thanksgiving-page select{
  font:inherit
}
.thanksgiving-page h1,.thanksgiving-page h2,.thanksgiving-page p,.thanksgiving-page figure{
  margin:0
}
.thanksgiving-page h1,.thanksgiving-page h2{
  font-family:"Bodoni Moda",Georgia,serif;
  font-weight:400;
  letter-spacing:-.055em;
  line-height:1.06
}
.thanksgiving-page h2{
  font-size:clamp(44px,5.2vw,76px)
}
.thanksgiving-page em{
  font-weight:400
}
.thanksgiving-page :focus-visible{
  outline:3px solid #c27732;
  outline-offset:5px
}
.tg-wrap{
  max-width:1280px;
  margin:auto;
  padding:90px 64px
}
.tg-header{
  height:92px;
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 64px;
  color:var(--tg-cream)
}
.tg-header img{
  width:100px;
  height:auto
}
.tg-header nav{
  display:flex;
  align-items:center;
  gap:24px
}
.tg-header nav>a{
  min-height:44px;
  display:flex;
  align-items:center
}
.tg-header [aria-current]{
  text-decoration:underline;
  text-underline-offset:6px
}
.tg-button{
  min-height:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:32px;
  padding:14px 26px;
  border:1px solid transparent;
  border-radius:3px;
  font-weight:600;
  cursor:pointer;
  transition:transform .2s,background .2s
}
.tg-button:hover{
  transform:translateY(-2px)
}
.thanksgiving-page .tg-button-light{
  background:var(--tg-cream);
  color:var(--tg-wine)
}
.thanksgiving-page .tg-button-dark{
  background:var(--tg-wine);
  color:var(--tg-cream)
}
.tg-header .tg-button{
  min-height:44px;
  padding:8px 22px
}
.tg-hero{
  position:relative;
  min-height:760px;
  height:min(880px,100svh);
  background:var(--tg-wine);
  color:var(--tg-cream);
  isolation:isolate;
  overflow:hidden
}
.tg-hero-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  z-index:-2
}
.tg-hero:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(47,11,22,.88),rgba(47,11,22,.5) 43%,transparent 75%)
}
.tg-hero-copy{
  max-width:730px;
  padding:170px 0 100px 64px
}
.tg-hero h1{
  font-size:clamp(68px,8vw,120px);
  line-height:.99;
  margin-bottom:30px
}
.tg-hero-lead{
  font-size:23px;
  font-weight:500
}
.tg-hero-copy>p:not(.tg-hero-lead){
  max-width:350px;
  margin-top:12px;
  color:#f0ddcf
}
.tg-hero-copy>.tg-button{
  margin-top:34px
}
.tg-photo-note{
  position:absolute;
  right:24px;
  bottom:20px;
  font-size:11px;
  color:#fff;
  text-shadow:0 1px 6px #000
}
.tg-label{
  font-size:11px;
  letter-spacing:.24em;
  font-weight:600;
  margin-bottom:22px!important
}
.tg-invitation{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:64px;
  align-items:center
}
.tg-intro{
  font-size:21px;
  font-weight:600;
  margin-top:30px!important
}
.tg-invitation-copy{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  margin-top:24px;
  font-size:14px;
  color:#6a4146;
  line-height:1.9
}
.tg-invitation-copy>p+p{
  border-left:1px solid var(--tg-line);
  padding-left:28px
}
.tg-invitation figure img{
  width:100%;
  height:390px;
  object-fit:cover
}
.tg-invitation figcaption{
  font-size:10px;
  letter-spacing:.16em;
  margin-top:12px
}
.tg-ribbon{
  padding:24px;
  text-align:center;
  background:var(--tg-wine);
  color:var(--tg-cream);
  font-family:Georgia,serif;
  letter-spacing:.22em;
  font-style:italic;
  font-size:20px
}
.tg-ribbon span{
  margin:0 44px;
  font-style:normal
}
.tg-details{
  padding-bottom:50px;
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:40px
}
.tg-details h2{
  font-size:52px
}
.tg-details dl{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  margin:0;
  gap:25px
}
.tg-details dl>div+div{
  border-left:1px solid var(--tg-line);
  padding-left:25px
}
.tg-details dt{
  font-size:11px;
  letter-spacing:.1em;
  margin-bottom:10px
}
.tg-details dd{
  margin:0;
  font-size:16px;
  font-weight:600;
  overflow-wrap:anywhere
}
.tg-details small{
  display:block;
  font-size:12px;
  font-weight:400;
  margin-top:8px
}
.tg-event-description{
  grid-column:1/-1;
  white-space:normal;
  border-top:1px solid var(--tg-line);
  padding-top:25px;
  max-width:900px;
  line-height:1.9
}
.tg-event-description p+p{
  margin-top:18px
}
.tg-tickets{
  padding-top:32px
}
.tg-section-heading{
  border-top:1px solid var(--tg-line);
  padding-top:45px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
  align-items:center;
  margin-bottom:36px
}
.tg-section-heading p{
  font-size:14px;
  max-width:380px
}
.tg-offers{
  border:0;
  padding:0;
  margin:0;
  display:grid;
  gap:12px
}
.tg-offer{
  border:1px solid var(--tg-line);
  display:flex;
  align-items:center;
  gap:20px;
  padding:22px 26px;
  border-radius:3px;
  cursor:pointer;
  min-height:96px
}
.tg-offer:has(input:checked){
  border:2px solid var(--tg-wine);
  padding:21px 25px;
  background:#f0e2cc
}
.tg-offer input{
  accent-color:var(--tg-wine);
  height:20px;
  width:20px;
  flex-shrink:0
}
.tg-offer-name{
  flex:1
}
.tg-offer-name strong{
  font-family:Georgia,serif;
  font-weight:400;
  font-size:25px;
  font-style:italic
}
.tg-offer small{
  display:block;
  font-size:12px;
  font-weight:400;
  margin-top:3px
}
.tg-offer-price{
  text-align:right
}
.tg-offer-price>strong{
  font-size:24px;
  font-weight:500
}
.tg-unavailable{
  cursor:default;
  color:#76575a;
  background:rgba(75,24,36,.025)
}
.tg-order-summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:28px 0;
  border-bottom:1px solid var(--tg-line)
}
.tg-order-summary label{
  display:flex;
  align-items:center;
  gap:20px
}
.tg-order-summary select{
  border:1px solid var(--tg-line);
  background:transparent;
  min-height:46px;
  min-width:80px;
  padding:8px 15px;
  border-radius:3px
}
.tg-order-summary p{
  display:flex;
  align-items:center;
  gap:30px
}
.tg-order-summary strong{
  font-size:28px;
  font-weight:500
}
.tg-booking>.tg-button{
  display:flex;
  width:100%;
  margin-top:22px
}
.tg-payment-note,.tg-ticket-footnote{
  font-size:12px;
  line-height:1.8;
  margin-top:20px!important
}
.tg-ticket-footnote{
  color:#76575a
}
.tg-consents{
  margin-top:24px
}
.tg-consents .dui-alert{
  background:transparent;
  border:1px solid var(--tg-line);
  color:var(--tg-wine);
  box-shadow:none;
  margin-bottom:12px
}
.tg-consents .material-symbols-outlined{
  display:none
}
.tg-consents input{
  accent-color:var(--tg-wine)
}
.tg-consents a{
  text-decoration:underline
}
.tg-booking [role=alert]{
  color:#a31e2c
}
.tg-status{
  padding:20px 0;
  font-size:14px
}
.tg-coming-soon{
  border:1px solid var(--tg-line);
  padding:40px;
  text-align:center
}
.tg-coming-soon>span{
  font-size:36px;
  display:block;
  margin-bottom:16px
}
.tg-coming-soon p+p{
  margin-top:8px;
  font-size:14px
}
.tg-faq{
  display:grid;
  grid-template-columns:1fr 1.6fr;
  gap:60px;
  border-top:1px solid var(--tg-line);
  padding-top:65px
}
.tg-faq details{
  border-bottom:1px solid var(--tg-line)
}
.tg-faq summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  min-height:68px;
  font-size:15px
}
.tg-faq summary::-webkit-details-marker{
  display:none
}
.tg-faq summary>span{
  font-size:24px;
  font-weight:400
}
.tg-faq details[open] summary>span{
  transform:rotate(45deg)
}
.tg-faq details>p{
  font-size:14px;
  padding:0 24px 24px 0;
  color:#6a4146
}
.tg-faq details a{
  text-decoration:underline
}
.tg-closing{
  background:var(--tg-wine);
  color:var(--tg-cream);
  text-align:center;
  padding:65px 24px
}
.tg-closing>p{
  font-family:"Bodoni Moda",Georgia,serif;
  font-size:clamp(30px,4vw,56px);
  font-style:italic;
  max-width:800px;
  margin:auto
}
.tg-closing .tg-button{
  margin-top:26px
}
.tg-mobile-cta{
  display:none
}
.tg-visually-hidden,.tg-skip:not(:focus){
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap
}
.tg-skip:focus{
  position:fixed;
  top:10px;
  left:10px;
  background:white;
  padding:10px;
  z-index:10
}
html:has(.thanksgiving-page){
  scroll-behavior:smooth;
  scroll-padding-top:24px
}
@media(min-width:1500px){
  .tg-header{
    padding:0 calc((100vw - 1370px)/2)
  }
  .tg-hero-copy{
    padding-left:calc((100vw - 1370px)/2);
    max-width:900px
  }
}
@media(max-width:800px){
  .tg-wrap{
    padding:56px 24px
  }
  .tg-header{
    padding:0 24px;
    height:80px
  }
  .tg-header nav{
    gap:16px;
    font-size:12px
  }
  .tg-header img{
    width:82px
  }
  .tg-header .tg-button{
    padding:8px 14px;
    gap:8px
  }
  .tg-hero{
    min-height:760px;
    height:95svh;
    max-height:900px
  }
  .tg-hero-photo{
    object-position:62% center
  }
  .tg-hero:after{
    background:linear-gradient(180deg,rgba(47,11,22,.58),rgba(47,11,22,.74) 25%,rgba(47,11,22,.2) 70%,rgba(47,11,22,.22))
  }
  .tg-hero-copy{
    padding:135px 24px 0
  }
  .tg-hero h1{
    font-size:clamp(55px,10.3vw,86px);
    margin-bottom:24px
  }
  .tg-hero-lead{
    font-size:20px
  }
  .tg-hero-copy>p:not(.tg-hero-lead){
    font-size:14px;
    max-width:290px
  }
  .tg-hero-copy>.tg-button{
    margin-top:25px
  }
  .tg-photo-note{
    left:24px;
    right:auto;
    font-size:10px
  }
  .tg-invitation{
    grid-template-columns:1fr;
    gap:32px
  }
  .tg-invitation-copy{
    font-size:14px;
    gap:20px
  }
  .tg-invitation-copy>p+p{
    padding-left:20px
  }
  .tg-invitation figure img{
    height:300px
  }
  .tg-ribbon{
    font-size:11px;
    padding:22px 12px;
    letter-spacing:.1em;
    white-space:nowrap
  }
  .tg-ribbon span{
    margin:0 12px
  }
  .tg-details{
    grid-template-columns:1fr;
    gap:28px
  }
  .tg-details h2{
    font-size:44px
  }
  .tg-details dl{
    grid-template-columns:1fr;
    gap:20px
  }
  .tg-details dl>div,.tg-details dl>div+div{
    display:grid;
    grid-template-columns:90px 1fr;
    border-left:0;
    padding-left:0;
    border-bottom:1px solid var(--tg-line);
    padding-bottom:20px
  }
  .tg-details dt{
    margin-top:4px
  }
  .tg-section-heading{
    grid-template-columns:1fr;
    gap:20px;
    padding-top:30px
  }
  .tg-offer{
    padding:18px 16px;
    gap:12px
  }
  .tg-offer:has(input:checked){
    padding:17px 15px
  }
  .tg-offer-name strong{
    font-size:21px
  }
  .tg-offer-price>strong{
    font-size:20px
  }
  .tg-offer small{
    font-size:11px
  }
  .tg-order-summary p{
    gap:14px;
    font-size:13px
  }
  .tg-order-summary strong{
    font-size:23px
  }
  .tg-order-summary label{
    gap:12px;
    font-size:13px
  }
  .tg-faq{
    grid-template-columns:1fr;
    gap:24px
  }
  .tg-faq h2{
    font-size:46px
  }
  .tg-coming-soon{
    padding:26px 20px
  }
  .tg-mobile-cta{
    position:fixed;
    display:flex;
    bottom:calc(12px + env(safe-area-inset-bottom));
    left:16px;
    right:16px;
    z-index:5;
    box-shadow:0 4px 24px #0003
  }
  .thanksgiving-page{
    padding-bottom:calc(86px + env(safe-area-inset-bottom))
  }
  .tg-closing{
    padding:45px 24px
  }
}
@media(prefers-reduced-motion:reduce){
  html:has(.thanksgiving-page){
    scroll-behavior:auto
  }
  .tg-button{
    transition:none
  }
}
.tg-menu{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  border-top:1px solid var(--tg-line)
}
.tg-menu-intro{
  margin-top:24px!important;
  font-size:14px
}
.tg-menu ul{
  list-style:none;
  padding:0;
  margin:0
}
.tg-menu li{
  padding:14px 0;
  border-bottom:1px solid var(--tg-line);
  font-size:15px;
  display:flex;
  gap:24px
}
.tg-menu li>span{
  font-size:11px;
  letter-spacing:.1em;
  color:#76575a;
  padding-top:4px
}
.tg-byo{
  background:var(--tg-wine);
  color:var(--tg-cream)
}
.tg-byo>.tg-wrap{
  display:flex;
  align-items:center;
  gap:50px;
  padding-top:45px;
  padding-bottom:45px
}
.tg-byo>.tg-wrap>span{
  font-size:90px;
  font-family:Georgia,serif;
  line-height:1
}
.tg-byo h2{
  font-family:Inter,sans-serif;
  font-size:clamp(38px,6vw,72px);
  font-weight:600;
  letter-spacing:-.04em
}
.tg-byo p{
  font-size:24px;
  margin-top:10px
}
.tg-byo small{
  display:block;
  margin-top:8px;
  font-size:14px;
  color:#edcfbe
}
@media(max-width:800px){
  .tg-menu{
    grid-template-columns:1fr;
    gap:28px
  }
  .tg-byo>.tg-wrap{
    gap:20px
  }
  .tg-byo>.tg-wrap>span{
    font-size:55px
  }
  .tg-byo p{
    font-size:18px
  }
  .tg-byo small{
    font-size:12px
  }
}
.thanksgiving-page p,.thanksgiving-page dd{
  word-break:keep-all;
  overflow-wrap:anywhere
}
.thanksgiving-page footer a{
  min-width:0
}
.thanksgiving-page footer .material-symbols-outlined{
  flex-shrink:0
}
.tg-consents h2{
  font-family:Inter,"Noto Sans KR",sans-serif;
  font-size:16px;
  font-weight:600;
  letter-spacing:0;
  line-height:1.5
}
.tg-mobile-cta[hidden]{
  display:none
}
@media(max-width:800px){
  .tg-photo-note{
    bottom:100px
  }
  .tg-order-summary label{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    white-space:nowrap
  }
  .tg-order-summary p{
    flex-direction:column;
    align-items:flex-end;
    gap:4px;
    white-space:nowrap
  }
}
