:root{--pink:#dfbebc;--blush:#f7eeec;--cream:#fbf7f4;--ink:#2b2426;--rose:#a8626a;--sage:#e4eadf}
*{box-sizing:border-box}
body{margin:0;font:400 17px/1.65 Jost,system-ui,sans-serif;color:var(--ink);background:var(--cream)}
a{color:inherit}
.bar{background:var(--ink);color:var(--cream);text-align:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:8px 12px}
header{text-align:center;padding:26px 16px 8px}
.logo{display:inline-block;text-decoration:none;font:600 clamp(26px,7vw,44px)/1.1 "Playfair Display",Georgia,serif;letter-spacing:.16em;text-transform:uppercase}
.slogan{margin:6px 0 0;font:italic 400 clamp(16px,4vw,20px) "Playfair Display",Georgia,serif;color:var(--rose)}
nav{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 22px;padding:14px 12px 16px;border-bottom:1px solid var(--pink);font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
nav a{text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
nav a:hover,nav a[aria-current]{border-color:var(--rose)}
.hero{background:var(--blush);text-align:center;padding:52px 20px}
.wrap{max-width:900px;margin:0 auto;padding:36px 20px}
h1,h2{font-family:"Playfair Display",Georgia,serif;font-weight:400;line-height:1.15;margin:0 0 .5em}
h1{font-size:clamp(34px,8vw,56px)}
h2{font-size:clamp(26px,5.5vw,36px);margin-top:1.2em}
.c{text-align:center}
.lead{max-width:36em;margin:0 auto 1.4em;font-size:18px}
.btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:1.4em 0}
.btn{background:var(--ink);color:var(--cream);text-decoration:none;padding:14px 26px;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--ink)}
.btn.alt{background:transparent;color:var(--ink)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:1.2em 0}
.step{background:#fff;border:1px solid var(--pink);padding:22px 18px;text-align:center}
.step i{display:block;font:italic 400 44px/1 "Playfair Display",Georgia,serif;color:var(--rose);margin-bottom:6px}
.tile{display:block;background:#fff;border:1px solid var(--pink);padding:26px 16px;text-align:center;text-decoration:none;font:400 21px/1.2 "Playfair Display",Georgia,serif}
.tile small{display:block;margin-top:6px;font:400 14px/1.4 Jost,sans-serif;color:#6b5f62}
.tile:hover{background:var(--blush)}
.band{background:var(--sage);text-align:center;padding:44px 20px}
.card{background:#fff;border:1px solid var(--pink);padding:18px 20px;margin:14px 0}
.key span{display:inline-block;margin:4px 8px 4px 0;padding:4px 14px;border:1px solid var(--rose);color:var(--rose);font-size:13px;letter-spacing:.12em;text-transform:uppercase}
footer{background:var(--ink);color:var(--cream);text-align:center;padding:30px 16px;font-size:14px;letter-spacing:.04em}
footer a{margin:0 10px}
.photo{max-width:360px;margin:0 auto 26px}
.photo img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--pink)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:1em 0}
.gallery figure{margin:0}
.gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--pink)}

.wide{margin:1.2em auto;max-width:900px}
.wide img,.one img,.grid2 img{display:block;width:100%;height:auto;border:1px solid var(--pink)}
figcaption{font-size:14px;letter-spacing:.04em;text-align:center;color:#6b5f62;margin-top:6px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;align-items:start;margin:1em 0}
.grid2 figure,.wide,.one{margin-left:auto;margin-right:auto}
.grid2 figure{margin:0}
.one{max-width:420px;margin-top:1em;margin-bottom:1em}

/* pastel refresh */
:root{--lav:#e6def2;--mint:#dcebe2;--peach:#fde4d6;--rose2:#ebbcc3}
body{background:linear-gradient(180deg,#fdf5f3 0%,#f6eef6 100%);background-color:#fdf5f3}
.bar{background:var(--pink);color:var(--ink)}
nav{border-bottom-color:var(--rose2)}
.hero{background:linear-gradient(135deg,#f8dede 0%,#eadff3 100%)}
.btn{background:var(--rose2);border-color:var(--rose2);color:var(--ink)}
.btn:hover{background:#e3a5ae;border-color:#e3a5ae}
.btn.alt{background:var(--lav);border-color:var(--lav);color:var(--ink)}
.btn.alt:hover{background:#d6cae9;border-color:#d6cae9}
.step,.tile{border:1px solid rgba(43,36,38,.08)}
.cols>*:nth-child(4n+1){background:#fbe1e3}
.cols>*:nth-child(4n+2){background:var(--lav)}
.cols>*:nth-child(4n+3){background:var(--mint)}
.cols>*:nth-child(4n+4){background:var(--peach)}
.tile:hover{filter:brightness(.97)}
.band{background:linear-gradient(135deg,#dcebe2 0%,#e6def2 100%)}
.card{background:#fff5f6;border-color:#ecd0d4}
.key span{background:var(--lav);border-color:var(--lav);color:var(--ink)}
.key span:nth-of-type(1){background:var(--mint);border-color:var(--mint)}
.key span:nth-of-type(2){background:var(--peach);border-color:var(--peach)}
footer{background:var(--pink);color:var(--ink)}

/* subtle checker */
:root{--chk:conic-gradient(#2b2426 25%,#fff 0 50%,#2b2426 0 75%,#fff 0)}
header,.hero,.band,footer{position:relative;overflow:hidden}
header>*,.hero>*,.band>*,footer>*{position:relative;z-index:1}
header::before{content:"";position:absolute;width:220px;height:220px;left:-70px;top:-90px;background:var(--chk) 0 0/26px 26px;opacity:.09;transform:rotate(12deg);border-radius:46% 54% 60% 40%/50% 40% 60% 50%}
.hero::before{content:"";position:absolute;width:240px;height:240px;top:-70px;right:-80px;background:var(--chk) 0 0/28px 28px;opacity:.10;transform:rotate(-12deg);border-radius:46% 54% 60% 40%/50% 40% 60% 50%}
.hero::after{content:"";position:absolute;width:280px;height:280px;bottom:-110px;left:-90px;background:var(--chk) 0 0/28px 28px;opacity:.10;transform:rotate(10deg);border-radius:46% 54% 60% 40%/50% 40% 60% 50%}
.band::before{content:"";position:absolute;width:220px;height:220px;right:-70px;top:-70px;background:var(--chk) 0 0/24px 24px;opacity:.09;border-radius:50%}
footer::before{content:"";position:absolute;width:200px;height:200px;left:-60px;bottom:-90px;background:var(--chk) 0 0/24px 24px;opacity:.10;border-radius:50%}

/* polish: trendy, sophisticated, cute */
h1 em{font-style:italic;color:var(--rose)}
.hero{padding-top:56px;padding-bottom:60px}
.wrap{padding-top:44px;padding-bottom:48px}
.tag-badge{display:inline-block;position:relative;margin:0 0 20px;padding:9px 18px 9px 32px;background:#fff;border:1px dashed var(--rose);border-radius:4px 14px 14px 4px;font:500 12px/1 Jost,sans-serif;letter-spacing:.18em;text-transform:uppercase;transform:rotate(-3deg)}
.tag-badge::before{content:"";position:absolute;left:11px;top:50%;width:9px;height:9px;margin-top:-5px;border-radius:50%;background:var(--pink);border:1px solid var(--rose)}
.btn{border-radius:999px;box-shadow:0 4px 14px rgba(43,36,38,.08)}
.step,.tile,.card{border-radius:16px;box-shadow:0 6px 20px rgba(43,36,38,.05)}
.tile{transition:transform .2s ease}
.tile:hover{transform:translateY(-3px)}
.wide img,.one img,.grid2 img{border:0;border-radius:16px;box-shadow:0 8px 24px rgba(43,36,38,.10)}
.photo{max-width:340px}
.photo img{border:0;border-radius:999px 999px 0 0;box-shadow:0 10px 28px rgba(43,36,38,.12)}
h2.c::after,.band h2::after{content:"♡";display:block;width:auto;height:auto;margin-top:8px;background:none;font:400 20px/1 "Playfair Display",Georgia,serif;color:var(--rose)}

/* store icons */
.ico{position:relative;display:grid;place-items:center;width:54px;height:54px;margin:0 auto 12px;border-radius:50%;background:#fff;box-shadow:0 4px 12px rgba(43,36,38,.08)}
.ico::before{content:attr(data-i);font:600 22px/1 "Playfair Display",Georgia,serif;color:var(--rose)}
.ico img{position:absolute;top:50%;left:50%;width:30px;height:30px;margin:-15px 0 0 -15px;background:#fff}

/* reviews */
.stars{color:#d9a441;letter-spacing:.2em}
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:1.2em 0;text-align:center}
.quote{margin:0;padding:20px 18px;background:#fff5f6;border:1px solid #ecd0d4;border-radius:16px;box-shadow:0 6px 20px rgba(43,36,38,.05)}
.quote:nth-child(3n+2){background:#f1ecf8;border-color:#e2d9f0}
.quote:nth-child(3n+3){background:#eef5f0;border-color:#d6e5db}
.quote .stars{font-size:15px}
.quote p{margin:.6em 0;font:italic 400 19px/1.45 "Playfair Display",Georgia,serif}
.quote cite{font-style:normal;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#6b5f62}

/* design catalog */
h3{font:600 14px/1.2 Jost,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--rose);margin:1.8em 0 .6em}
.dlist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2px 22px}
.dlist li{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dashed #ecd0d4;line-height:1.3}
.dlist .num{flex:none;min-width:40px;height:40px;padding:0 8px;border-radius:20px;display:grid;place-items:center;background:var(--lav);font:600 15px Jost,system-ui,sans-serif;color:var(--ink)}
.dlist li:nth-child(3n+1) .num{background:#fbe1e3}
.dlist li:nth-child(3n+3) .num{background:var(--mint)}
h3.sub{margin-top:1.4em}

/* design thumbnails */
.dlist{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px 14px}
.dlist li.d{display:block;padding:0;border:0}
.thumb{display:block;width:100%;aspect-ratio:1/1;background-size:400% 400%;background-repeat:no-repeat;background-color:#fff;border-radius:14px;box-shadow:0 6px 18px rgba(43,36,38,.08)}
.cap{display:flex;align-items:flex-start;gap:8px;margin-top:8px;font-size:14px;line-height:1.3}
.dlist .num{min-width:32px;height:32px;padding:0 6px;border-radius:16px;font-size:14px}

/* side by side photos */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;margin:1.2em 0}
.pair .one{max-width:none;margin:0}

/* photo lightbox */
figure img,.thumb{cursor:zoom-in}
.lb{position:fixed;inset:0;z-index:1000;background:rgba(43,36,38,.88);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px}
.lb[hidden]{display:none}
.lb-body{max-width:100%;display:flex;align-items:center;justify-content:center}
.lb-body img{max-width:100%;max-height:78vh;width:auto;height:auto;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.lb-thumb{width:min(88vw,460px);aspect-ratio:1/1;background-size:400% 400%;background-repeat:no-repeat;background-color:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.lb-cap{color:#fff;font-size:15px;text-align:center;margin:12px 0 0;max-width:36em}
.lb-x{position:absolute;top:12px;right:14px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#2b2426;font:400 28px/1 Jost,system-ui,sans-serif;cursor:pointer}

/* order buttons in the viewer */
.lb-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}

/* order form in the viewer */
.lb{overflow-y:auto;justify-content:flex-start;padding:64px 16px 24px}
.lb-body{margin-top:auto}
.lb-x{position:fixed}
.lb-thumb{width:min(70vw,300px)}
.lb-form{margin:14px 0 auto;width:min(92vw,420px);background:#fff5f6;color:#2b2426;border-radius:16px;padding:16px;display:grid;gap:10px}
.lb-form label{display:grid;gap:4px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.lb-form select,.lb-form input{width:100%;font:400 16px Jost,system-ui,sans-serif;letter-spacing:normal;text-transform:none;padding:10px 12px;border:1px solid #ecd0d4;border-radius:10px;background:#fff;color:#2b2426}
.lb-note{margin:0;font-size:13px;color:#6b5f62}
.lb-form .lb-actions{margin-top:4px}

/* order form: contact and address */
.lb-form [hidden]{display:none}
.lb-form textarea{width:100%;font:400 16px Jost,system-ui,sans-serif;letter-spacing:normal;text-transform:none;padding:10px 12px;border:1px solid #ecd0d4;border-radius:10px;background:#fff;color:#2b2426;resize:vertical}

/* keep the order buttons clear of the Wix badge */
.lb::after{content:"";flex:none;width:1px;height:180px}

/* keep the footer links clear of the Wix badge */
footer{padding-bottom:104px}

/* owner intro */
.owner{display:flex;align-items:center;gap:20px;margin:0 0 1.6em}
.owner .photo{flex:0 0 46%;max-width:300px;margin:0}
.owner-text{flex:1;min-width:0}
.owner-name{margin:0;font:400 clamp(26px,7vw,40px)/1.1 "Playfair Display",Georgia,serif}
.owner-role{margin:8px 0 0;font:500 12px/1.2 Jost,system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--rose)}

/* equal photo tiles on Our Story */
.grid2 img{aspect-ratio:1/1;height:auto;object-fit:cover;object-position:center}
.grid2 figure:nth-child(2) img{object-position:15% center}

/* keep photo grids from overflowing small screens */
.pair,.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}

/* design page tabs */
.tabs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:1em 0 1.6em}
.tabs a{padding:10px 18px;border-radius:999px;background:#fff;border:1px solid #ecd0d4;text-decoration:none;font:500 13px/1.2 Jost,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.tabs a[aria-current]{background:var(--rose2);border-color:var(--rose2)}

/* upcoming shows */
.shows{display:grid;gap:22px;margin:1.2em 0 1.8em}
.show{position:relative;display:flex;gap:16px;align-items:flex-start;background:#fff5f6;border:1px solid #ecd0d4;border-radius:16px;padding:20px 18px 18px;box-shadow:0 6px 20px rgba(43,36,38,.05)}
.show.next{background:linear-gradient(135deg,#fbe1e3 0%,#eadff3 100%);border-color:#e2d0e6}
.next-tag{position:absolute;top:-12px;left:18px;padding:6px 12px 6px 24px;background:#fff;border:1px dashed var(--rose);border-radius:4px 12px 12px 4px;font:500 11px/1 Jost,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;transform:rotate(-2deg)}
.next-tag::before{content:"";position:absolute;left:8px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--pink);border:1px solid var(--rose)}
.date{flex:none;width:64px;padding:8px 0;text-align:center;background:#fff;border-radius:12px;box-shadow:0 4px 12px rgba(43,36,38,.08)}
.date .mo{display:block;font:500 12px/1.2 Jost,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--rose)}
.date .day{display:block;font:400 30px/1.1 "Playfair Display",Georgia,serif}
.show .info{min-width:0;flex:1}
.show h3{margin:0 0 6px;font:400 24px/1.15 "Playfair Display",Georgia,serif;letter-spacing:0;text-transform:none;color:var(--ink)}
.show .where,.show .when{margin:0}
.show .when{font-weight:500}
.show .note{margin:8px 0 0;font-size:14px;color:#6b5f62}
.show-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.show-btns .btn{padding:10px 18px;font-size:12px}

/* show graphics */
.side{flex:none;width:76px;display:grid;gap:10px}
.side .date{width:100%}
.show-img{display:block;width:76px;height:76px;object-fit:cover;border-radius:12px;box-shadow:0 4px 12px rgba(43,36,38,.12)}

/* add to calendar */
.cal{display:block}
.cal summary{list-style:none;cursor:pointer;display:inline-block}
.cal summary::-webkit-details-marker{display:none}
.cal-menu{display:grid;gap:4px;margin-top:8px;padding:8px;background:#fff;border:1px solid #ecd0d4;border-radius:12px}
.cal-menu a{padding:10px 12px;border-radius:8px;text-decoration:none;font-size:15px}
.cal-menu a:hover{background:#fbe1e3}

/* green calendar button */
.cal summary.btn{background:var(--mint);border-color:var(--mint);color:var(--ink)}
.cal summary.btn:hover,.cal[open] summary.btn{background:#cde2d6;border-color:#cde2d6}

/* two-day show times */
.show .when + .when{margin-top:8px}

/* next show spotlight */
.show[hidden]{display:none}
.countdown{display:inline-block;margin:0 0 8px;padding:4px 12px;border-radius:999px;background:#fff;font:500 12px/1.2 Jost,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--rose)}
.show.next{border-width:2px;border-color:var(--rose2);animation:nextGlow 2.8s ease-out infinite}
.show.next .next-tag{transform-origin:left center;animation:tagWiggle 3.2s ease-in-out infinite}
@keyframes nextGlow{0%,100%{box-shadow:0 6px 20px rgba(43,36,38,.05),0 0 0 0 rgba(235,188,195,.6)}60%{box-shadow:0 6px 20px rgba(43,36,38,.05),0 0 0 12px rgba(235,188,195,0)}}
@keyframes tagWiggle{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@media (prefers-reduced-motion:reduce){.show.next,.show.next .next-tag{animation:none}}
