.loyalty-page { padding:34px 0 112px; overflow:hidden; background:linear-gradient(180deg,#fffafd 0%,#fff 38%,#fff7fa 100%); }
.loyalty-page :where(a,summary):focus-visible { outline:3px solid var(--berry); outline-offset:3px; }
.loyalty-page .product-breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-bottom:42px; color:var(--muted); font-size:16px; }
.loyalty-page .product-breadcrumbs a:hover { color:var(--violet-600); }
.loyalty-eyebrow { display:inline-flex; align-items:center; gap:10px; color:var(--violet-700); font-size:16px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.loyalty-eyebrow .ui-icon { width:22px; height:22px; color:var(--berry); }
.loyalty-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(380px,.72fr); align-items:center; gap:64px; padding-top:48px; padding-bottom:90px; }
.loyalty-hero::before { position:absolute; z-index:0; width:520px; height:520px; top:-90px; right:-210px; background:radial-gradient(circle,rgba(249,112,165,.16),rgba(249,112,165,0) 70%); border-radius:50%; content:""; pointer-events:none; }
.loyalty-hero__copy,.loyalty-pass { position:relative; z-index:1; }
.loyalty-hero h1 { max-width:790px; margin:24px 0 24px; font-size:clamp(52px,6vw,88px); line-height:.98; letter-spacing:-.055em; }
.loyalty-hero__copy>p { max-width:720px; margin:0; color:var(--muted); font-size:20px; line-height:1.65; }
.loyalty-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:34px; }
.loyalty-actions .button,.loyalty-account .button,.loyalty-hold .button,.loyalty-rules__cta .button { min-height:54px; justify-content:center; padding:13px 22px; font-size:16px; }
.loyalty-actions .button .ui-icon,.loyalty-account .button .ui-icon,.loyalty-hold .button .ui-icon,.loyalty-rules__cta .button .ui-icon { width:19px; height:19px; }
.loyalty-text-link { display:inline-flex; min-height:48px; align-items:center; color:var(--violet-700); font-size:16px; font-weight:800; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.loyalty-pass { min-height:510px; padding:38px; overflow:hidden; color:#fff; background:radial-gradient(circle at 80% 16%,rgba(255,255,255,.2),transparent 24%),linear-gradient(145deg,#a52e60,#5d3345 68%,#2c2227); border-radius:42px; box-shadow:0 30px 80px rgba(91,38,62,.24); transform:rotate(1.5deg); }
.loyalty-pass::before,.loyalty-pass::after { position:absolute; width:310px; height:310px; border:1px solid rgba(255,255,255,.18); border-radius:50%; content:""; pointer-events:none; }
.loyalty-pass::before { top:-176px; right:-92px; }
.loyalty-pass::after { right:-210px; bottom:-150px; }
.loyalty-pass__label,.loyalty-pass__note { position:relative; z-index:1; display:block; font-size:16px; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.loyalty-pass__label { color:rgba(255,255,255,.78); }
.loyalty-pass__flower { position:relative; z-index:1; display:grid; width:88px; height:88px; margin:52px 0 42px; place-items:center; color:var(--violet-800); background:#fff; border-radius:30px 30px 30px 10px; box-shadow:0 18px 45px rgba(35,20,29,.25); }
.loyalty-pass__flower .ui-icon { width:44px; height:44px; }
.loyalty-pass dl { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0; }
.loyalty-pass dl>div { padding-top:18px; border-top:1px solid rgba(255,255,255,.28); }
.loyalty-pass dt { color:rgba(255,255,255,.72); font-size:16px; }
.loyalty-pass dd { margin:5px 0 0; font-family:"Rounded Mplus 1c","Onest",sans-serif; font-size:30px; font-weight:700; line-height:1; }
.loyalty-pass__note { margin-top:42px; color:rgba(255,255,255,.72); text-transform:none; }
.loyalty-steps { padding-top:92px; padding-bottom:98px; border-top:1px solid var(--line); }
.loyalty-heading { display:grid; grid-template-columns:minmax(180px,.42fr) minmax(0,1fr); gap:18px 48px; margin-bottom:44px; }
.loyalty-heading>span { padding-top:10px; color:var(--violet-700); font-size:16px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.loyalty-heading h2 { max-width:780px; margin:0; font-size:clamp(40px,4.6vw,66px); }
.loyalty-heading p { max-width:720px; grid-column:2; margin:0; color:var(--muted); font-size:18px; line-height:1.65; }
.loyalty-steps__list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0; padding:0; list-style:none; counter-reset:none; }
.loyalty-steps__list li { position:relative; min-height:360px; padding:30px; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:30px; box-shadow:0 18px 54px rgba(91,38,62,.06); }
.loyalty-steps__list li:nth-child(2) { background:var(--violet-075); }
.loyalty-steps__list li:nth-child(3) { color:#fff; background:var(--violet-900); border-color:transparent; }
.loyalty-steps__list li>span { position:absolute; top:28px; right:28px; color:var(--violet-500); font-size:18px; font-weight:850; }
.loyalty-steps__list li>.ui-icon { width:40px; height:40px; color:var(--berry); }
.loyalty-steps__list h3 { margin:90px 0 15px; font-size:29px; }
.loyalty-steps__list p { margin:0; color:var(--muted); font-size:17px; line-height:1.65; }
.loyalty-steps__list li:nth-child(3)>span,.loyalty-steps__list li:nth-child(3)>.ui-icon { color:var(--violet-300); }
.loyalty-steps__list li:nth-child(3) p { color:rgba(255,255,255,.8); }
.loyalty-account { display:grid; grid-template-columns:minmax(0,.95fr) minmax(380px,.75fr); align-items:center; gap:80px; padding-top:86px; padding-bottom:86px; }
.loyalty-account__copy h2 { max-width:700px; margin:22px 0 20px; font-size:clamp(42px,4.7vw,68px); }
.loyalty-account__copy>p { max-width:700px; margin:0; color:var(--muted); font-size:18px; line-height:1.7; }
.loyalty-account__copy>.loyalty-account__rule { margin:22px 0 30px; padding:18px 20px; color:var(--violet-800); background:var(--violet-075); border-left:4px solid var(--berry); border-radius:0 16px 16px 0; font-weight:700; }
.loyalty-account__card { padding:0; background:transparent; border:0; border-radius:0; box-shadow:none; }
.loyalty-account__card>span { color:var(--violet-700); font-size:16px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.loyalty-account__balance { display:grid; grid-template-columns:62px minmax(0,1fr); align-items:center; gap:17px; margin:24px 0; padding:22px; color:#fff; background:linear-gradient(135deg,var(--violet-600),var(--violet-800)); border-radius:24px; }
.loyalty-account__balance>.ui-icon { width:62px; height:62px; padding:15px; background:rgba(255,255,255,.14); border-radius:19px; }
.loyalty-account__balance p { margin:0; font-size:16px; }
.loyalty-account__balance strong { display:block; margin-top:4px; font-size:22px; }
.loyalty-account__card ul { display:grid; gap:0; margin:0; padding:0 20px; background:#fff; border:1px solid var(--line); border-radius:22px; box-shadow:0 14px 38px rgba(91,38,62,.05); list-style:none; }
.loyalty-account__card li { display:flex; min-height:54px; align-items:center; gap:12px; border-top:1px solid var(--line); font-size:16px; font-weight:700; }
.loyalty-account__card li .ui-icon { width:20px; height:20px; color:var(--berry); }
.loyalty-rules { padding-top:92px; padding-bottom:0; border-top:1px solid var(--line); }
.loyalty-rules__grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.loyalty-rules__grid details { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:22px; }
.loyalty-rules__grid summary { display:grid; min-height:82px; grid-template-columns:minmax(0,1fr) 34px; align-items:center; gap:18px; padding:18px 22px; font-size:18px; font-weight:800; list-style:none; }
.loyalty-rules__grid summary::-webkit-details-marker { display:none; }
.loyalty-rules__grid summary i { display:grid; width:34px; height:34px; place-items:center; color:var(--violet-700); background:var(--violet-075); border-radius:50%; font-size:24px; font-style:normal; transition:transform .2s ease; }
.loyalty-rules__grid details[open] summary i { transform:rotate(45deg); }
.loyalty-rules__grid details p { margin:0; padding:0 22px 24px; color:var(--muted); font-size:17px; line-height:1.65; }
.loyalty-rules__cta { display:flex; align-items:center; justify-content:space-between; gap:34px; margin-top:48px; padding:36px 40px; color:#fff; background:linear-gradient(135deg,var(--violet-900),#7f3554); border-radius:32px; box-shadow:0 22px 65px rgba(91,38,62,.18); }
.loyalty-rules__cta span { display:block; color:var(--violet-300); font-size:16px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.loyalty-rules__cta h2 { max-width:720px; margin:9px 0 0; font-size:clamp(30px,3.4vw,48px); }
.loyalty-rules__cta .button { flex:0 0 auto; background:#fff; color:var(--violet-800); }
.loyalty-hold { min-height:620px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding-top:68px; padding-bottom:90px; }
.loyalty-hold h1 { max-width:100%; margin:24px 0 22px; font-size:clamp(48px,6vw,82px); }
.loyalty-hold>p { max-width:710px; margin:0 0 30px; color:var(--muted); font-size:20px; line-height:1.65; }
@media (max-width:980px) {
	.loyalty-hero,.loyalty-account { grid-template-columns:1fr; gap:42px; }
	.loyalty-pass { min-height:450px; transform:none; }
	.loyalty-steps__list { grid-template-columns:1fr; }
	.loyalty-steps__list li { min-height:280px; }
	.loyalty-steps__list h3 { margin-top:58px; }
	.loyalty-account__card { max-width:680px; }
	.loyalty-rules__cta { align-items:stretch; flex-direction:column; }
	.loyalty-rules__cta .button { width:100%; }
}
@media (max-width:680px) {
	.loyalty-page { padding-top:20px; padding-bottom:74px; }
	.loyalty-page .product-breadcrumbs { margin-bottom:28px; }
	.loyalty-hero { padding-top:22px; padding-bottom:66px; }
	.loyalty-hero h1 { margin:18px 0; font-size:clamp(43px,13vw,60px); }
	.loyalty-hero__copy>p,.loyalty-hold>p { font-size:18px; }
	.loyalty-actions { align-items:stretch; flex-direction:column; }
	.loyalty-actions .button,.loyalty-text-link { width:100%; justify-content:center; }
	.loyalty-pass { min-height:auto; padding:27px 22px; border-radius:30px; }
	.loyalty-pass__flower { width:72px; height:72px; margin:36px 0 32px; border-radius:24px 24px 24px 8px; }
	.loyalty-pass__flower .ui-icon { width:36px; height:36px; }
	.loyalty-pass dl { grid-template-columns:1fr; gap:12px; }
	.loyalty-pass dl>div { display:flex; align-items:end; justify-content:space-between; gap:20px; }
	.loyalty-pass dd { font-size:28px; text-align:right; }
	.loyalty-pass__note { margin-top:30px; }
	.loyalty-steps,.loyalty-account,.loyalty-rules { padding-top:64px; padding-bottom:64px; }
	.loyalty-heading { grid-template-columns:1fr; gap:12px; margin-bottom:30px; }
	.loyalty-heading p { grid-column:auto; }
	.loyalty-heading h2,.loyalty-account__copy h2 { font-size:clamp(36px,11vw,52px); }
	.loyalty-steps__list li { min-height:0; padding:24px; border-radius:24px; }
	.loyalty-steps__list li>span { top:24px; right:24px; }
	.loyalty-steps__list h3 { margin:44px 0 13px; font-size:27px; }
	.loyalty-account { gap:34px; }
	.loyalty-account__card { padding:0; }
	.loyalty-account__balance { grid-template-columns:50px minmax(0,1fr); padding:17px; }
	.loyalty-account__balance>.ui-icon { width:50px; height:50px; padding:12px; }
	.loyalty-rules__grid { grid-template-columns:1fr; }
	.loyalty-rules__grid summary { min-height:76px; padding:16px 17px; }
	.loyalty-rules__grid details p { padding:0 17px 20px; }
	.loyalty-rules__cta { align-items:stretch; flex-direction:column; padding:28px 22px; border-radius:26px; }
	.loyalty-rules__cta .button { width:100%; }
	.loyalty-hold { min-height:540px; padding-top:44px; padding-bottom:70px; }
	.loyalty-hold h1 { font-size:clamp(38px,10.8vw,58px); }
}
