/* Glam Specials: front end. Uses the theme's tokens when present. */
.gsp-myglam{margin:0 0 20px;display:grid;gap:20px}
.gsp-myglam-specials{background:#fff;border-radius:calc(var(--radius,16px) + 8px);box-shadow:0 24px 60px rgba(35,28,28,.10);padding:40px 44px}
.gsp-h{font-size:clamp(1.9rem,3.6vw,2.8rem);margin:0 0 22px}
.gsp-cards{display:grid;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr))}
.gsp-cards--1{grid-template-columns:1fr}
.gsp-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gsp-card{background:var(--blush,#FFEAF4);border-radius:calc(var(--radius,16px) + 6px);overflow:hidden;display:flex;flex-direction:column;min-width:0}
.gsp-cards--1 .gsp-card.has-img{flex-direction:row}
.gsp-cards--1 .gsp-card.has-img .gsp-card-img{flex:0 0 42%}
.gsp-card-img{aspect-ratio:4/3;overflow:hidden;background:var(--blush-2,#FFD6EA)}
.gsp-cards--1 .gsp-card-img{aspect-ratio:auto}
.gsp-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.gsp-card-body{padding:26px 28px 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.gsp-card h3{font-size:1.55rem;margin:0}
.gsp-card p{margin:0;font-size:.98rem}
.gsp-card .btn{align-self:flex-start;margin-top:auto}
.gsp-card .gsp-code{margin-top:2px}
/* No photo: magenta card so it never looks empty */
.gsp-card:not(.has-img){background:radial-gradient(120% 140% at 85% 15%,#E0338A 0%,var(--rose-deep,#C8186F) 55%,#A8105C 100%);color:#fff;position:relative;overflow:hidden}
.gsp-card:not(.has-img)::after{content:"";position:absolute;right:-90px;bottom:-90px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,157,203,.55),transparent 65%);pointer-events:none}
.gsp-card:not(.has-img) .gsp-card-body{position:relative;z-index:1;padding-top:34px}
.gsp-card:not(.has-img) h3{color:#fff;font-size:1.9rem}
.gsp-card:not(.has-img) p{color:rgba(255,255,255,.92)}
.gsp-card:not(.has-img) .gsp-dates{color:#FFD6EA}
.gsp-card:not(.has-img) .btn--rose{background:#fff;border-color:#fff;color:var(--ink,#231C1C)}
.gsp-card:not(.has-img) .btn--rose:hover{background:var(--blush,#FFEAF4);border-color:var(--blush,#FFEAF4)}
.gsp-dates{font-family:var(--f-head,inherit);font-weight:800;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-deep,#C8186F)}
.gsp-code b{display:inline-block;font-family:var(--f-head,inherit);font-weight:900;letter-spacing:.12em;border:2px dashed var(--rose,#FF5CA8);background:#fff;color:var(--ink,#231C1C);border-radius:10px;padding:.2em .7em;margin-left:.3em}

/* Signup */
.gsp-signup{background:var(--ink,#231C1C);color:#f3e6e4;border-radius:calc(var(--radius,16px) + 8px);padding:40px 44px;position:relative;overflow:hidden;scroll-margin-top:140px}
.gsp-signup::after{content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(255,92,168,.45),transparent 65%);pointer-events:none}
.gsp-signup > *{position:relative;z-index:1}
.gsp-signup .mg-kicker{color:var(--rose-soft,#FF9DCB)}
.gsp-signup h3{color:#fff;font-size:clamp(1.8rem,3.4vw,2.6rem);margin:0 0 8px}
.gsp-signup > p{max-width:56ch;margin:0 0 18px;color:rgba(255,255,255,.86)}
.gsp-form{display:grid;gap:14px;max-width:720px}
.gsp-fields{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}
.gsp-field{display:grid;gap:6px;font-size:.82rem;font-weight:600;color:rgba(255,255,255,.8)}
.gsp-field input{font:inherit;font-size:1rem;font-weight:400;color:var(--ink,#231C1C);background:#fff;border:2px solid transparent;border-radius:12px;padding:.8em 1em;width:100%;box-sizing:border-box}
.gsp-field input:focus{outline:none;border-color:var(--rose,#FF5CA8);box-shadow:0 0 0 4px rgba(255,92,168,.3)}
.gsp-consent{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:rgba(255,255,255,.86);line-height:1.45}
.gsp-consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--rose,#FF5CA8);flex:0 0 auto}
.gsp-form .btn{justify-self:start}
.gsp-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.gsp-msg{border-radius:12px;padding:12px 16px;font-weight:600;margin:0 0 16px!important;max-width:720px}
.gsp-msg--ok{background:rgba(255,92,168,.18);color:#fff;border:1px solid rgba(255,92,168,.55)}
.gsp-msg--err{background:#fff;color:#a1124f}
.gsp-signup--page{margin:28px 0}

/* Home */
.gsp-home{padding:88px 0 8px}
.gsp-home-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;flex-wrap:wrap}
.gsp-home-head h2{margin:0}
.gsp-none{font-style:italic}

@media (max-width:900px){
	.gsp-cards,.gsp-cards--2{grid-template-columns:1fr}
	.gsp-cards--1 .gsp-card.has-img{flex-direction:column}
	.gsp-cards--1 .gsp-card-img{aspect-ratio:4/3}
}
@media (max-width:640px){
	.gsp-myglam-specials,.gsp-signup{padding:28px 22px}
	.gsp-fields{grid-template-columns:1fr}
	.gsp-form .btn{justify-self:stretch}
	.gsp-home{padding-top:64px}
}
/* No-photo card next to photo cards: center its content so the tall card looks intentional */
.gsp-card:not(.has-img) .gsp-card-body{justify-content:center;padding:40px 36px}
.gsp-card:not(.has-img) .btn{margin-top:8px}
@media (min-width:901px){.gsp-cards--2 .gsp-card:not(.has-img) h3,.gsp-cards--3 .gsp-card:not(.has-img) h3{font-size:clamp(2rem,2.8vw,2.8rem)}}
