/* Coupon artwork and real CTA share a common visual center. */
.monthly-banner-cta{top:auto;bottom:1.6%;left:2.5%;right:2.5%;height:29.8%;display:grid;grid-template-columns:clamp(26px,7vw,42px) minmax(0,1fr) clamp(28px,7vw,42px);column-gap:8px;padding:8px 16px;align-items:center}
.monthly-cta-copy{display:contents}
.monthly-cta-copy strong{grid-column:2;grid-row:1;align-self:center;font-size:clamp(21px,6.3vw,33px);line-height:1.2;position:relative;top:-7px;text-align:center}
.monthly-cta-ticket{grid-column:1;grid-row:1;width:100%;height:auto;position:relative;top:-7px;justify-self:center}
.monthly-cta-arrow{grid-column:3;grid-row:1;width:100%;height:auto;aspect-ratio:1;position:relative;top:-7px;line-height:1;font-size:inherit;justify-self:center}
.monthly-cta-arrow svg{width:42%;height:42%;display:block}
.monthly-cta-copy small{position:absolute;left:8%;right:8%;bottom:11%;text-align:center;font-size:clamp(9px,2.4vw,12px);line-height:1.2}

/* November offers: a distinct teal and champagne-gold collection. */
.nov-special{position:relative;isolation:isolate;overflow:hidden;margin:24px 16px 36px;padding:28px 18px 22px;border:1px solid #cfb36d;border-radius:27px;color:#fffdf3;background:radial-gradient(ellipse at 95% 0%,#d7ecd887,transparent 48%),radial-gradient(ellipse at 0 40%,#18b5b14a,transparent 65%),linear-gradient(135deg,#007b86,#226d75 62%,#174d61);box-shadow:0 12px 25px #174e5f24;scroll-margin-top:24px}
.nov-special::before{content:"";position:absolute;inset:7px;border:1px solid #eddb9e65;border-radius:21px;pointer-events:none;z-index:-1}
.nov-special::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 8% 18%,#ffe5a6 0 1px,transparent 2px),radial-gradient(circle at 91% 60%,#fff7d0 0 1px,transparent 2px),radial-gradient(circle at 76% 86%,#b5edf0 0 1px,transparent 2px);background-size:143px 223px,183px 291px,271px 189px;opacity:.65}
.nov-sky{position:absolute;right:14px;top:19px;width:100px;height:125px;opacity:.7;pointer-events:none;z-index:-1}
.nov-sky svg{display:block;width:100%;height:100%;filter:drop-shadow(0 5px 9px #04445840)}
.nov-heading{position:relative;margin:0 0 18px;padding:0;background:none;border:0;box-shadow:none;color:inherit}
.nov-heading>p{margin:0 0 12px;color:#f2deaa;font:600 11px/1.5 var(--sans,sans-serif);letter-spacing:.14em}
.nov-heading h2{margin:0;padding:0;border:0;color:#fffdf5;font:600 clamp(25px,7vw,34px)/1.45 var(--serif,serif);letter-spacing:.03em;text-shadow:0 2px 8px #003c4c40;background:none;box-shadow:none}
.nov-heading h2 span{display:block}
.nov-terms{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;margin:0 0 19px;padding:10px 12px;border:1px solid #eddb9c65;border-radius:10px;background:#ffffff0d;color:#fff6df;font:500 12px/1.55 var(--sans,sans-serif)}
.nov-terms strong{color:#ffe6a2;font-weight:700}
.nov-offers{display:grid;gap:16px}
.nov-offer{margin:0;padding:13px;border:1px solid #efdca475;border-radius:18px;background:linear-gradient(135deg,#ffffff14,#ffffff06);box-shadow:0 6px 14px #003a4d20;color:inherit;min-width:0}
.nov-offer-grid{display:grid;grid-template-columns:40% minmax(0,1fr);gap:13px;align-items:stretch}
.nov-photo{position:relative;margin:0;min-width:0;min-height:169px;border-radius:12px;overflow:hidden;border:1px solid #f5e2b575;background:#e5e5d4}
.nov-photo img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.nov-offer:nth-child(2) .nov-photo img{object-position:58% 34%}
.nov-number{position:absolute;top:7px;left:8px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#005a6ccc;color:#ffe6ac;font:500 15px/1 var(--serif,serif)}
.nov-copy{min-width:0;align-self:center}
.nov-treatment-badge,.nov-staff-badge{display:inline-block;padding:3px 7px;margin-bottom:6px;border:1px solid #f4dda67a;border-radius:5px;color:#fff2ca;font:600 10px/1.4 var(--sans,sans-serif);letter-spacing:.04em}
.nov-staff-badge{background:linear-gradient(135deg,#f6e3ac,#d6b768);color:#144e5c;box-shadow:0 2px 5px #00334726}
.nov-copy h3{margin:0 0 3px;color:#fffef8;font:700 clamp(20px,5.5vw,27px)/1.3 var(--serif,serif);border:0;background:none;padding:0;white-space:nowrap}
.nov-duration{margin:0 0 9px;font:500 14px/1.4 var(--serif,serif);color:#fff5d9}
.nov-standard{margin:0;font:400 11px/1.5 var(--sans,sans-serif);color:#e2ece8}
.nov-saving{margin:2px 0 3px;color:#ffe4a3;font:600 11px/1.4 var(--sans,sans-serif)}
.nov-price{display:flex;align-items:center;gap:3px;margin:0;color:#ffe3a0;white-space:nowrap}
.nov-price>strong{font:600 clamp(30px,8vw,43px)/1.1 var(--serif,serif);letter-spacing:-.035em;text-shadow:0 2px 6px #003a4a66}
.nov-price>span{display:grid;gap:2px;align-self:end;padding-bottom:2px;font:500 12px/1.1 var(--sans,sans-serif)}
.nov-price small{font-size:9px;line-height:1.2;color:#fff4d8}
.nov-book{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:12px;min-height:44px;padding:9px 10px;border:1px solid #fff1b8;border-radius:999px;background:linear-gradient(130deg,#fff4c9,#ddc17f 60%,#f8e9b3);color:#164f5e;text-decoration:none;font:700 13px/1.5 var(--sans,sans-serif);box-shadow:inset 0 1px 1px #fff,0 3px 0 #997c3e;transition:transform .16s,filter .16s}
.nov-book svg{width:17px;height:17px;flex:none}
.nov-book:active{transform:translateY(2px);filter:brightness(.9);box-shadow:0 1px 0 #997c3e}
.nov-book:focus-visible{outline:3px solid #fff;outline-offset:3px}
.nov-note{margin:17px 2px 0;color:#edf5ed;font:400 11px/1.8 var(--sans,sans-serif)}
@media(max-width:350px){.nov-special{margin-left:12px;margin-right:12px;padding:24px 13px 19px}.nov-offer{padding:10px}.nov-offer-grid{gap:9px;grid-template-columns:38% minmax(0,1fr)}.nov-photo{min-height:169px}.nov-copy h3{font-size:20px}.nov-price>strong{font-size:30px}.monthly-banner-cta{padding-left:10px;padding-right:10px;column-gap:5px}.monthly-cta-copy strong{font-size:20px}.monthly-cta-copy small{font-size:8px}}

/* v75: integrated ivory coupon cards with existing Kaneko coupon artwork. */
.nov-offer{position:relative;padding:0;overflow:hidden;border:1px solid #e8d398;border-radius:20px;background:linear-gradient(120deg,#fffdf6,#f5ecd4);box-shadow:0 9px 18px #00374635,inset 0 0 0 4px #fff9e8;color:#164d58}
.nov-offer-grid{position:relative;display:block;min-height:245px;isolation:isolate;overflow:hidden;border-bottom:1px solid #d1b674}
.nov-photo{position:absolute;inset:0 0 0 auto;width:56%;min-height:0;border:0;border-radius:0;background:#f8ebdf;z-index:-2;overflow:hidden}
.nov-photo img,.nov-offer:nth-child(2) .nov-photo img{position:absolute;inset:0 0 auto auto;width:245%;height:auto;max-width:none;object-fit:initial;object-position:initial}
.nov-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fffaf0 0%,#fffaf0a6 8%,transparent 32%),linear-gradient(0deg,#f5ecd4,transparent 22%);pointer-events:none}
.nov-number{top:auto;left:auto;bottom:12px;right:12px;z-index:1;background:#fff9e7d9;color:#987b3b;border:1px solid #d8be82;font:500 20px/1 var(--serif,serif);width:34px;height:34px}
.nov-copy{position:relative;width:56%;padding:22px 0 18px 19px;box-sizing:border-box;background:linear-gradient(90deg,#fffaf0 70%,#fffaf000);min-height:245px}
.nov-staff-badge{padding:4px 8px;font-size:11px;background:linear-gradient(125deg,#006b78,#198a91);color:#fff0bb;border:1px solid #dfc484;border-radius:5px;box-shadow:0 3px 7px #14667521;margin-bottom:10px}
.nov-copy h3{font-size:clamp(24px,6.4vw,31px);color:#124d5d;letter-spacing:.01em;text-shadow:0 1px 0 #fff}
.nov-duration{color:#43636a;font-size:16px;margin-bottom:13px}
.nov-standard{color:#627477;font-size:12px}
.nov-saving{color:#947235;margin:4px 0 3px;font-size:12px}
.nov-price{color:#b21d53}.nov-price>strong{font-size:clamp(38px,10vw,50px);text-shadow:0 1px 0 white}.nov-price small{color:#667676}
.nov-book{margin:13px 15px 17px;min-height:45px;background:linear-gradient(180deg,#279ca5,#006576 72%,#004c62);color:#fff5d5;border:1px solid #d9ba73;box-shadow:inset 0 1px 1px #ffffffa0,0 3px 0 #b49654;font-size:14px}
.nov-book:active{box-shadow:0 1px 0 #b49654}
.nov-offer:nth-child(2) .nov-photo img{width:265%;right:-11%;top:0}
@media(max-width:350px){.nov-copy{padding-left:13px;width:58%}.nov-copy h3{font-size:24px}.nov-photo{width:53%}.nov-offer{padding:0}.nov-price>strong{font-size:38px}.nov-staff-badge{font-size:10px}}

.nov-photo img{right:-20%}.nov-offer:nth-child(2) .nov-photo img{right:-24%}

.nov-photo img,.nov-offer:nth-child(2) .nov-photo img{width:330%;right:-31%;top:-24px}.nov-photo::after{background:linear-gradient(90deg,#fffaf0,transparent 30%),linear-gradient(0deg,#f5ecd4,transparent 20%)}

/* v77: separate visuals, with treatment context rather than face close-ups. */
.nov-offer-grid,.nov-copy{min-height:310px}.nov-copy{display:flex;flex-direction:column;justify-content:center}.nov-staff-badge{align-self:flex-start}
.nov-photo img{width:100%;height:100%;inset:0;object-fit:cover;object-position:50% 50%;max-width:100%}
.nov-offer:nth-child(2) .nov-photo img{width:268%;max-width:none;height:auto;inset:0 -24% auto auto;object-fit:initial}
.nov-photo::after{background:linear-gradient(90deg,#fffaf0,transparent 20%),linear-gradient(0deg,#f5ecd4,transparent 12%)}
.nov-offer:nth-child(2) .nov-photo::after{background:linear-gradient(90deg,#fffaf0,transparent 16%),linear-gradient(0deg,#f5ecd4,transparent 10%)}
@media(max-width:350px){.nov-offer-grid,.nov-copy{min-height:265px}}

/* v78: no needle close-up in the November acupuncture offer. */
.nov-offer:first-child .nov-photo img{inset:0;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center}
.nov-offer:first-child .nov-photo::after{background:linear-gradient(90deg,#fffaf0,transparent 24%),linear-gradient(0deg,#f5ecd4,transparent 14%)}

/* v79: swap upper and lower coupon visuals, preserving wide composition. */
.nov-offer:first-child .nov-photo img{width:268%;max-width:none;height:auto;inset:0 -24% auto auto;object-fit:initial;object-position:initial}
.nov-offer:nth-child(2) .nov-photo img{inset:0;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center}
.nov-offer:first-child .nov-photo::after{background:linear-gradient(90deg,#fffaf0,transparent 16%),linear-gradient(0deg,#f5ecd4,transparent 10%)}
.nov-offer:nth-child(2) .nov-photo::after{background:linear-gradient(90deg,#fffaf0,transparent 24%),linear-gradient(0deg,#f5ecd4,transparent 14%)}

/* v80: clip the original poster lettering and price, without enlarging the face. */
.nov-offer:first-child .nov-photo img{clip-path:inset(0 12% 28% 61%)}
.nov-offer:first-child .nov-photo{background:#faf1e5}
