/* ─── Design Tokens ──────────────────────────────────────────── */
:root {
  /* Brand (override per-site) */
  /* Brand (override per-site) */
  --brand-bg:     oklch(93% 0.022 72);   /* rich warm gold-cream */
  --brand-accent: #BF9775;               /* bronze — headings, focus rings */

  /* Card surface */
  --color-card:        oklch(87% 0.030 68);   /* warm amber-tinted card */
  --color-card-inner:  oklch(82% 0.034 66);   /* deeper warm inner panel */
  --color-card-text:   oklch(16% 0.018 55);   /* deep warm charcoal */
  --color-on-dark:     oklch(16% 0.018 55);   /* text on light bg */
  --color-table-border:oklch(70% 0.026 66);   /* warm amber divider */

  /* Shadow — warm, pronounced on golden surface */
  --shadow-card: 0px 2px 6px -2px rgba(0, 0, 0, 0.14),
                 0px 8px 28px -4px rgba(0, 0, 0, 0.11),
                 inset 0px 0px 0px 1px rgba(191, 151, 117, 0.35);

  /* Radii */
  --radius-md:   8px;
  --radius-lg:   10px;
  --radius-full: 50%;

  /* Typography */
  --font-display:   'Cinzel', serif;        /* brand name, location name headings */
  --font-brand:     'Jost', sans-serif;     /* all UI: buttons, labels, phone */
  --display-weight:   700;
  --display-tracking: 0.1em;               /* Cinzel uppercase needs generous tracking */
  --display-case:     uppercase;

  /* Sizes */
  --size-touch-target: 60px;
  --size-icon:         43px;
  --size-logo:         96px;
  --size-page-max:     680px;

  /* Motion — ease-out-quint, no bounce */
  --transition-hover: transform 0.15s cubic-bezier(0.22, 1, 0.36, 1);
  --transition-fade:  opacity 0.25s ease;
}
/* ──────────────────────────────────────────────────────────────── */

body,html{
    -ms-scroll-chaining:none;
    overscroll-behavior:none;
    margin:0;
    padding:0;
    background-color: var(--brand-bg);
    }

@-webkit-keyframes slidetounlock{
    0%{background-position:-100px 0}
    10%{background-position:-100px 0}
    50%{background-position:100px 0}
    to{background-position:100px 0}
}

@keyframes slidetounlock{
    0%{background-position:-100px 0}
    10%{background-position:-100px 0}
    50%{background-position:100px 0}
    to{background-position:100px 0}
}
#fadeBody{
  opacity: 0;
  transition: var(--transition-fade);
}

/* ─── Entrance choreography ───────────────────────────────────────
   Delays are relative to when JS renders the DOM (same tick as
   opacity = 1), so items animate in as the page fades up.
   fill-mode: both keeps elements invisible during their delay.
──────────────────────────────────────────────────────────────── */
@keyframes fadeSlideUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0);    }
}

@keyframes fadeScaleIn {
  from { opacity: 0; transform: scale(0.90); }
  to   { opacity: 1; transform: scale(1);    }
}

#app > img { animation: fadeScaleIn  0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.10s both; }
#app > h2  { animation: fadeSlideUp  0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.17s both; }
#app > p   { animation: fadeSlideUp  0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.23s both; }

.mt-24 > .page-item-wrap:nth-child(1) { animation: fadeSlideUp 0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.28s both; }
.mt-24 > .page-item-wrap:nth-child(2) { animation: fadeSlideUp 0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.34s both; }
.mt-24 > .page-item-wrap:nth-child(3) { animation: fadeSlideUp 0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.40s both; }
.mt-24 > .page-item-wrap:nth-child(4) { animation: fadeSlideUp 0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.46s both; }
.mt-24 > .page-item-wrap:nth-child(5) { animation: fadeSlideUp 0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.52s both; }
.mt-24 > .page-item-wrap:nth-child(6) { animation: fadeSlideUp 0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.58s both; }
.mt-24 > .page-item-wrap:nth-child(7) { animation: fadeSlideUp 0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.64s both; }
.mt-24 > .page-item-wrap:nth-child(8) { animation: fadeSlideUp 0.40s cubic-bezier(0.22, 1, 0.36, 1) 0.70s both; }

/* ─── Tap / press feedback (mobile) ──────────────────────────────
   Overrides the hover lift on active press — clear physical feedback.
──────────────────────────────────────────────────────────────── */
.page-item-wrap:active {
    transform: scale(0.97);
    transition: transform 0.1s ease;
}

/* ─── Social icon hover ───────────────────────────────────────────
   Subtle vertical lift, consistent with the premium feel.
──────────────────────────────────────────────────────────────── */
.link-social-image {
    transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.table-social a:hover .link-social-image {
    transform: translateY(-3px);
}

.table-social td, .table-social th{
  border-top:none;
}
.invertColor{
  color: var(--color-card-text);
  fill: var(--color-card-text);
  filter: none;
  margin-right: 5px;
}
.grow{
  flex-grow:1;
}
 .card-body {
   background: var(--color-card-inner);
   border-radius: var(--radius-lg);
 }

/* Override Bootstrap's light table styles for dark theme */
.card-body .table,
.card-body .table th,
.card-body .table td,
.card-body .table b {
    color: var(--color-card-text);
}
.card-body .table th,
.card-body .table td {
    border-top-color: var(--color-table-border);
}

.min-h-full{
    min-height:100vh
}

.flex{
    display:flex
}

.flex-both-center{
    display:flex;
    justify-content:center;
    align-items:center
}

.flex-wrap{
    flex-wrap:wrap
}

.flex-h-center{
    display:flex;
    justify-content:center
}

.item-center{
    align-items:center
}

.flex-dir-c{
    flex-direction:column
}

.mx-auto{
    margin-left:auto;
    margin-right:auto
}
.mt-2{
    margin-top:2px
}
.mt-4{
    margin-top:4px
}
.mt-8{
    margin-top:8px
}
.mt-12{
    margin-top:12px
}
.mt-16{
    margin-top:16px
}
.mt-24{
    margin-top:24px
}
.mt-32{
    margin-top:32px
}
.mt-48{
    margin-top:48px
}
.mt-120{
    margin-top:120px
}
.mb-48{
    margin-bottom:48px
}
.m-auto{
    margin:auto
}
.ml-6{
    margin-left:6px
}
.py-2{
    padding:2px
}
.py-10{
    padding:10px
}
.ln-h-22{
    line-height:22px
}
.ln-h-32{
    line-height:32px
}

.text-fs-14{
    font-size:14px
}
.text-fs-16{
    font-size:16px
}
.text-fs-18{
    font-size:18px
}
.text-fs-20{
    font-size:20px
}
.text-fs-22{
    font-size:22px
}

.font-inter{
    font-family: var(--font-brand)
}
.font-weight-500{
    font-weight:500
}
.font-weight-600{
    font-weight:600
}

.color-white{
    color:#fff
}
.color-gray{
    color:hsla(0,0%,100%,.9)
}
.color-dark{
    color:#222
}
.color-danger{
    color:#ff4963
}

.page-bg{
    position:fixed;
    inset:0;
    z-index:-1;
    height:100vh;
    width:100vw
}
.page-image {
    object-position: center;

}

.display-image {
    border-radius: var(--radius-full);
}

.page-title {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: var(--display-weight);
    letter-spacing: var(--display-tracking);
    line-height: 1.15;
    text-transform: var(--display-case);
}

/* Brand heading in accent color — more specific than .page-text-color */
.page-title.page-text-color {
    color: var(--brand-accent);
}

.page-bioline {
    font-size: 1rem;
    font-weight: 600;
}

.page-item-title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 16px;
}

.page-item-each {
    color: var(--color-card-text);
    font-family: var(--font-brand);
    font-size: 1rem;
    font-weight: 500;
    text-transform: none;
    border-radius: var(--radius-md);

    min-height: var(--size-touch-target);
}

.page-item-each:focus-visible,
.btn-link:focus-visible {
    outline: 3px solid var(--brand-accent);
    outline-offset: 2px;
}

.page-item-wrap {
    margin: 12px 0;
}

.page-item-wrap:last-child {
    margin-bottom: 0;
}

/* Header → actions breathing room: more space than the generic mt-24 utility */
#app > .mt-24 {
    margin-top: 36px;
}

/* Social icons float apart from the nav items */
.mt-24 > .page-item-wrap:has(.table-social) {
    margin-top: 32px;
}

.page-item-wrap:hover {
    transform: translate3d(0px, 0px, 0px) scale(1.015);
}

.page-item {
    border: 0px solid var(--color-card);
    background: var(--color-card);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
}


/* ─── Native <details>/<summary> (replaces Bootstrap accordion) ──
   summary is styled via the .page-item-each class — it just needs
   its default list-item display overridden to enable flexbox.
──────────────────────────────────────────────────────────────── */
details > summary {
    display: flex;
    cursor: pointer;
    user-select: none;
}

details > summary::-webkit-details-marker,
details > summary::marker {
    display: none;
    content: '';
}

/* Chevron affordance — rotates 180° when open */
details > summary::after {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    margin-left: auto;
    margin-right: 4px;
    flex-shrink: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgba(0,0,0,0.4)' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6l5 5 5-5'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

details[open] > summary::after {
    transform: rotate(180deg);
}

.hours-collapse {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

details[open] > .hours-collapse {
    grid-template-rows: 1fr;
}

.hours-collapse > div {
    overflow: hidden;
    min-height: 0;
}

.embed-wrap iframe, .embed-wrap-inside {
    border-radius: var(--radius-md);
}

.link-each-image, .page-item-wrap {
    border-radius: var(--radius-md);
}

.page-text-font {
    font-family: var(--font-brand);
    text-transform: none;
}

.page-text-color {
    color: var(--color-on-dark);
}

.social-icon-fill path, .social-icon-fill circle, .social-icon-fill rect {
    fill: var(--color-on-dark);
}

.page-overlay-btn {
    border: 2px solid var(--color-card-text);
}

.w-full{``
    width:100%
}

.w-250{
    width:250px
}
.h-150,.h-165{
    height:150px
}

.background-overlay{
    position:fixed;
    width:100%;
    height:100%;
    z-index:0
}

.page-overlay{
    position:fixed;
    left:0;
    top:0;
    width:100vw;
    height:100vh;
    background:rgba(0,0,0,.1);
    -webkit-backdrop-filter:blur(20px);
    backdrop-filter:blur(20px);
    z-index:100
}
.page-overlay-btn{
    text-decoration:none;
    font-family: var(--font-brand);
    background:transparent;
    padding:10px 30px;
    border-radius:6px;
    font-size:1.2em;
    display:inline-block;
    cursor:pointer
}
.page-overlay-title{
    font-size:30px;
    font-family:sans-serif
}

.page-overlay-text{
    font-size:18px
}

.page-image{
    position:fixed;
    left:0;
    top:0;
    width:100vw;
    height:100vh;
    -o-object-fit:cover;
    object-fit:cover
}

.display-image{
    width:var(--size-logo);
    height:var(--size-logo);
    display:block;
    border-radius:var(--radius-full);
    -o-object-fit:cover;
    object-fit:cover
}
.text-center{
    text-align:center
}

.page-title{
    margin-bottom:0
}

.page-bioline{
    font-weight:500
}

.page-full-wrap{
    width:var(--size-page-max);
    z-index:10;
    padding-bottom:96px
}
.page-item-wrap{
    transition:var(--transition-hover)
}

.page-item-wrap.show-embed{
    border-radius:30px;
    transition:unset;
    transform:unset
}

.page-item-wrap.show-embed:hover{
    transform:unset
}

.page-item-wrap.show-embed:hover .page-item:after,.page-item-wrap.show-embed:hover .page-item:before{
    -webkit-animation:unset;
    animation:unset
}

.show-embed-item{
    overflow:hidden;
    transition:all .3s ease-in-out
}

.page-item-wrap.show-embed .show-embed-item{
    overflow:visible
}

.embed-ind-arrow-icon{
    transform:rotate(-90deg)
}

.page-item-wrap.show-embed .embed-ind-arrow-icon{
    transform:rotate(0deg)
}

.page-item{
    box-sizing:border-box;
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:100%;
    z-index:-1
}
.page-social{
    display:block;
    cursor:pointer;
    margin:0 12px 12px
}

.page-social svg{
    width:28px;
    height:28px
}

.relative{
    position:relative
}

.link-each-image{
    width:var(--size-icon);
    height:var(--size-icon);
    position:absolute;
    left:9px;
    -o-object-fit:cover;
    object-fit:cover;
    filter: none;
}
.link-social-image{
    width:var(--size-icon);
    height:var(--size-icon);
    -o-object-fit:cover;
    object-fit:cover
}
.page-logo{
    position:absolute;
    bottom:32px;
    left:calc(50% - 15px)
}

.page-logo:hover svg .bl-logo-br{
    opacity:1
}

.rounded-md{
    border-radius:8px
}

.close-embed{
    width:25px;
    height:25px;
    border-radius:50%;
    background:#fff;
    opacity:.7
}

.embed-wrap{
    width:100%;
    box-sizing:border-box;
    padding:8px;
    height:100%
}

.embed-ind-arrow{
    position:absolute;
    right:24px;
    height:14px;
    top:calc(50% - 7px);
    margin-bottom:16px
}

.embed-ind-arrow-icon{
    transition:all .4s ease-in-out
}

.close-embed:hover{
    opacity:1
}

.cursor-pointer{
    cursor:pointer
}

.page-item-each{
    text-decoration:none;
    overflow:hidden;
    z-index:10;
    box-sizing:border-box
}

.item-title{
    width:55%;
    word-break: break-word;
}
.social-icon-anchor{
    position:absolute;
    width:100%;
    height:100%;
    left:0;
    top:0
}

.page-social:hover{
    transition:all .1s ease-in-out;
    transform:scale(1.1)
}

/* .page-item-title — consolidated above */

.embed-wrap-inside{
    background-color:#fff;
    display:flex;
    justify-content:center;
    box-sizing:border-box;
    padding:10px;
    height:100%;
    overflow:hidden
}

.embed-wrap-inside iframe{
    width:auto;
    min-width:500px
}

.embed-wrap-inside{
    position:relative
}

.embed-wrap-inside:after{
    content:"";
    position:absolute;
    height:85%;
    width:495px;
    border:10px solid #fff;
    transition-property:border;
    transition-duration:.2s;
    pointer-events:none
}

.subscribers-img{
    width:66px;
    height:66px;
    border-radius:50%;
    box-shadow:0 0 10px rgba(0,0,0,.05);
    position:absolute;
    top:-33px;
    left:calc(50% - 33px)
}

.subsc-count{
    color:hsla(0,0%,100%,.9);
    line-height:24px;
    font-weight:300
}

.subsc-err{
    height:40px;
    transition:all .25s ease-in-out
}

.w-400{
    width:400px
}

.subsc-button{
    height:40px;
    padding:0 16px;
    background:#fff;
    border:1px solid #fff;
    border-radius:0 2px 2px 0;
    line-height:32px;
    text-transform:capitalize;
    color:#000;
    cursor:pointer;
    justify-content:center;
    align-items:center;
    text-decoration:none
}

.thank-you-btn{
    border-radius:2px
}

.dark-btn{
    background:#222;
    height:48px;
    padding:0 24px;
    color:#fff;
    border:1.5px solid #222
}

.subsc-button:focus{
    outline:none
}

.subsc-email{
    background:hsla(0,0%,100%,.1);
    border:1.5px solid #fff;
    border-radius:2px 0 0 2px;
    padding:0 12px;
    height:40px;
    font-size:14px;
    width:calc(100% - 180px);
    box-sizing:border-box
}

.dark-input{
    border:1.5px solid #222;
    height:48px;
    width:calc(100% - 100px);
    font-size:16px;
    color:#222
}

.subsc-email::-moz-placeholder{
    font-family: var(--font-brand);
    font-size:14px;
    line-height:19px;
    color:hsla(0,0%,100%,.5)

}

.subsc-email:-ms-input-placeholder{
    font-family: var(--font-brand);
    font-size:14px;
    line-height:19px;
    color:hsla(0,0%,100%,.5)
}

.subsc-email::placeholder{
    font-family: var(--font-brand);
    font-size:14px;
    line-height:19px;
    color:hsla(0,0%,100%,.5)
}

.dark-input::-moz-placeholder{
    color:#6e6d7a;
    font-size:16px
}

.dark-input:-ms-input-placeholder{
    color:#6e6d7a;
    font-size:16px
}

.dark-input::placeholder{
    color:#6e6d7a;
    font-size:16px
}

.subsc-email:focus{
    outline:none;
    background:hsla(0,0%,100%,0)
}

.subscribers-email-wrap.error-wrap .subsc-button,.subscribers-email-wrap.error-wrap .subsc-email{
    border:1.5px solid #ff4963
}

.subscribers-email-wrap.error-wrap .subsc-email{
    border-right:none
}

.featured-subscribers{
    position:fixed;
    left:0;
    bottom:0;
    width:100%;
    background:#000;
    box-shadow:0 1.60588px 4.41618px rgba(24,39,75,.12),0 2.81029px 12.8471px rgba(24,39,75,.12);
    z-index:100;
    box-sizing:border-box;
    opacity:1;
    transition:all .27s cubic-bezier(.1,.9,.9,.9);
    flex-wrap:wrap;
    display:flex;
    flex-flow:column;
    justify-content:center;
    align-items:center
}

.featured-subscribers .subsc-count,.featured-subscribers .subsc-svg,.featured-subscribers .subscribers-email-wrap{
    opacity:1
}

.featured-subscribers.hide-subscribers .subsc-count,.featured-subscribers.hide-subscribers .subsc-svg,.featured-subscribers.hide-subscribers .subscribers-email-wrap{
    opacity:0
}

.featured-subscribers .subscribers-img{
    opacity:1;
    transform:scale(1);
    transition:all .27s cubic-bezier(.1,.9,.9,.9)
}

.featured-subscribers.hide-subscribers .subscribers-img{
    opacity:0;
    transform:scale(.15);
    transition:all .27s cubic-bezier(.1,.9,.9,.9)
}

.featured-subscribers .subsc-title{
    margin-top:32px;
    transition:all .27s cubic-bezier(.1,.9,.9,.9)
}

.featured-subscribers.hide-subscribers .show-after-success .thank-you-msg{
    opacity:1
}

.featured-subscribers.hide-subscribers .pt-38{
    padding-top:38px
}

.featured-subscribers.hide-subscribers .pt-52{
    padding-top:52px
}

.featured-subscribers.hide-subscribers .subsc-title{
    font-size:16px;
    font-weight:400;
    transition:all .27s cubic-bezier(.1,.9,.9,.9)
}

.featured-subscribers.hide-subscribers{
    transition:all .25s cubic-bezier(.1,.9,.9,.9);
    height:56px
}

.featured-subscribers.hide-subscribers .subscribers-btn{
    transform:rotate(180deg)
}

.subscribers-btn{
    position:absolute;
    right:16px;
    top:14px;
    width:30px;
    height:30px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:30px;
    transition:all .2s ease-out
}

.subscribers-btn svg path{
    opacity:.5;
    transition:all 75ms ease
}

.subscribers-btn:hover svg path{
    opacity:1;
    transition:all 75ms ease
}

.op-0{
    opacity:0
}

.hidden{
    display:none
}

.campaign-main-wrap{
    width:400px
}

.campaign-email{
    border:1px solid #e7e7e9;
    width:80px;
    height:80px;
    -o-object-fit:cover;
    object-fit:cover;
    border-radius:50%
}

.campaign-subsc-count{
    color:rgba(34,34,34,.9)
}

.campaign-user-link{
    background:rgba(0,0,0,.05);
    -webkit-backdrop-filter:blur(200px);
    backdrop-filter:blur(200px);
    border-radius:68px;
    height:42px;
    padding:0 12px;
    margin:0 auto;
    text-decoration:none;
    position:fixed;
    bottom:36px;
    transition:all .15s ease-out
}

.campaign-user-link:hover{
    background:rgba(0,0,0,.1)
}

.campaign-user-image{
    width:24px;
    height:24px;
    border-radius:50%;
    margin-right:12px
}

.bl-circle-loader{
    border-right:3px solid transparent;
    border-top:3px solid transparent;
    border-radius:50%;
    border-color:#000 #000 transparent transparent;
    border-style:solid;
    border-width:3px;
    width:15px;
    height:15px;
    -webkit-animation:spin 1s linear infinite;
    animation:spin 1s linear infinite;
    position:absolute
}

.dark-btn .bl-circle-loader{
    border-top:3px solid #fff;
    border-right:3px solid #fff
}

@-webkit-keyframes spin{
    0%{
        -webkit-transform:rotate(0deg)
    }
    to{
        -webkit-transform:rotate(1turn)
    }
}

@keyframes spin{
    0%{
        transform:rotate(0deg)
    }
    to{
        transform:rotate(1turn)
    }
}

@media (max-width:768px){
    .page-full-wrap{
        width:100%;
        padding-left:20px;
        padding-right:20px;
        box-sizing:border-box
    }
    .embed-wrap-inside iframe{
        width:100%;
        min-width:unset
    }
    .page-overlay-title{
        font-size:24px;
        margin:16px 0
    }
    .embed-wrap-inside:after{
        width:93%
    }
}

@media (max-width:480px){
    .campaign-main-wrap{
        width:100%;
        padding:0 24px
    }
    .xs-hidden{
        display:none
    }
    .xs-w-100{
        width:100%
    }
    .xs-w-150{
        width:150px
    }
    .featured-subscribers{
        height:150px;
        padding:24px 16px 32px
    }
    .h-165{
        height:165px
    }
    .xs-mt-6{
        margin-top:6px
    }
    .xs-mt-8{
        margin-top:8px
    }
    .xs-mt-16{
        margin-top:16px
    }
    .xs-mt-32{
        margin-top:32px
    }
    .xs-mx-24{
        margin:auto 24px
    }
    .xs-block{
        display:block
    }
    .subsc-button{
        font-weight:400;
        padding:0 16px;
        border-radius:0 4px 4px 0
    }
    .thank-you-btn{
        border-radius:4px
    }
    .subsc-email{
        width:calc(100% - 65px);
        border:1.5px solid #fff;
        border-radius:4px 0 0 4px
    }
    .dark-input{
        border:1.5px solid #222
    }
    .subsc-title{
        font-size:16px
    }
    .featured-subscribers .subsc-title{
        margin-top:38px;
        width:calc(100% - 20px)
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

@media (max-width:400px){
    .embed-wrap-inside:after{
        width:90%
    }
}
