/* ==========================================================================
   Slim & Social – front-end styles
   ========================================================================== */
:root {
	--sns-pink: #ed007d;
	--sns-pink-d: #b9005c;
	--sns-pink-l: #ffd6eb;
	--sns-pink-xl: #fff5fa;
	--sns-green: #398d12;
	--sns-green-d: #145d16;
	--sns-lime: #a9e132;
	--sns-ink: #222;
	--sns-muted: #6b5a63;
	--sns-script: 'Great Vibes', 'Dancing Script', cursive;
	--sns-hand: 'Dancing Script', cursive;
	--sns-body: 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--sns-shadow: 0 10px 30px rgba(194, 15, 106, .14);
}

/* ---------- Base (canvas pages) ---------- */
body.sns-canvas { margin: 0; background: var(--sns-pink-xl); color: var(--sns-ink); font-family: var(--sns-body); font-size: 17px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
.sns-canvas *, .sns-page *, .sns-modal * { box-sizing: border-box; }
.sns-page { font-family: var(--sns-body); color: var(--sns-ink); overflow-x: hidden; background: var(--sns-pink-xl); }
.sns-page h1, .sns-page h2, .sns-page h3 { margin: 0; line-height: 1.15; }
.sns-page p { margin: 0 0 .8em; }
.sns-page img { max-width: 100%; }
.sns-page a { color: var(--sns-pink-d); }
.sns-wrap { max-width: 1220px; margin: 0 auto; padding: 0 24px; position: relative; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.sns-ic { flex-shrink: 0; vertical-align: middle; }
.sns-hp { position: absolute !important; left: -9999px; }
.sns-muted { color: var(--sns-muted); }
.sns-small { font-size: .85em; color: var(--sns-muted); }
[data-ph="1"] { background: radial-gradient(circle at 20% 30%, rgba(255,255,255,.55) 0 8%, transparent 9%), radial-gradient(circle at 75% 20%, rgba(255,255,255,.35) 0 6%, transparent 7%), radial-gradient(circle at 60% 75%, rgba(255,255,255,.3) 0 10%, transparent 11%), linear-gradient(135deg, #f7b3d3 0%, #f8d7e7 45%, #cfeab0 100%); }

.sns-page [hidden], .sns-chart-empty[hidden] { display: none !important; }

/* ---------- Header ---------- */
.sns-header { background: rgba(255,255,255,.97); position: sticky; top: 0; z-index: 50; box-shadow: 0 2px 18px rgba(194,15,106,.08); }
.admin-bar .sns-header { top: 32px; }
.sns-header__in { max-width: 1260px; margin: 0 auto; padding: 8px 24px; display: flex; align-items: center; gap: 20px; min-height: 76px; }
.sns-logo { flex-shrink: 0; display: block; line-height: 0; }
.sns-logo img { width: 92px; height: 92px; margin: -6px 0 -22px; filter: drop-shadow(0 4px 10px rgba(194,15,106,.25)); transition: transform .3s; }
.sns-is-home .sns-logo img { width: 170px; height: 170px; margin: -4px 0 -100px; }
.sns-logo:hover img { transform: rotate(-4deg) scale(1.03); }
.sns-nav { flex: 1; display: flex; align-items: center; justify-content: flex-end; gap: 16px; }
.sns-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.sns-nav ul a { display: block; padding: 8px 15px; border-radius: 999px; color: #1b1b1b; font-weight: 700; font-size: 15px; text-decoration: none; transition: background .2s, color .2s; }
.sns-nav ul a:hover { background: var(--sns-pink-l); color: var(--sns-pink-d); }
.sns-nav ul a.is-active { background: linear-gradient(180deg, #ef3b96, var(--sns-pink-d)); color: #fff; box-shadow: 0 4px 12px rgba(226,23,126,.35); }
.sns-login-btn { display: inline-flex; align-items: center; gap: 8px; padding: 8px 20px; border: 2.5px solid var(--sns-green); border-radius: 999px; color: var(--sns-green-d); font-weight: 800; text-decoration: none; white-space: nowrap; transition: .2s; }
.sns-login-btn:hover, .sns-login-btn.is-active { background: var(--sns-green); color: #fff; }
.sns-burger { display: none; margin-left: auto; background: none; border: 0; color: var(--sns-pink); padding: 8px; cursor: pointer; }

/* ---------- Buttons ---------- */
.sns-btn { display: inline-flex; align-items: center; justify-content: center; gap: 14px; padding: 13px 28px; border-radius: 999px; border: 3px solid rgba(255,255,255,.85); color: #fff !important; font-family: var(--sns-body); font-weight: 800; font-size: 18px; line-height: 1.15; text-decoration: none; cursor: pointer; text-align: center; box-shadow: 0 8px 22px rgba(0,0,0,.18), inset 0 2px 0 rgba(255,255,255,.35); transition: transform .2s, box-shadow .2s, filter .2s; }
.sns-btn:hover { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 12px 26px rgba(0,0,0,.22), inset 0 2px 0 rgba(255,255,255,.35); }
.sns-btn:disabled { opacity: .6; cursor: wait; transform: none; }
.sns-btn--pink { background: linear-gradient(180deg, #f0399a 0%, var(--sns-pink) 45%, var(--sns-pink-d) 100%); }
.sns-btn--green { background: linear-gradient(180deg, #6cc04a 0%, var(--sns-green) 50%, var(--sns-green-d) 100%); }
.sns-btn--lg { font-size: 23px; padding: 16px 34px; }
.sns-btn--sm { font-size: 15px; padding: 9px 18px; border-width: 2px; }
.sns-btn--block { width: 100%; }
.sns-linkbtn { background: none; border: 0; color: var(--sns-pink-d); font-weight: 700; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; padding: 6px 0; font-family: inherit; font-size: 15px; }

/* ---------- Script text & brush strokes ---------- */
.sns-script-title { font-family: var(--sns-hand); font-weight: 700; color: var(--sns-pink-d); font-size: 46px; line-height: 1.1; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sns-script-title.sm { font-size: 34px; }
.sns-script-title .sns-ic { color: var(--sns-pink); }
.sns-script-pink { font-family: var(--sns-hand); font-weight: 700; color: var(--sns-pink); font-size: 60px; line-height: 1; }
.sns-underline { display: block; width: 260px; height: 4px; border-radius: 4px; background: linear-gradient(90deg, transparent, var(--sns-pink) 20%, var(--sns-pink) 80%, transparent); margin: 10px 0 18px; }
.sns-underline.green { background: linear-gradient(90deg, var(--sns-green) 0, var(--sns-lime) 70%, transparent); }
.sns-brush { position: relative; display: inline-flex; align-items: center; gap: 10px; font-family: var(--sns-hand); font-weight: 700; color: #fff !important; text-decoration: none; font-size: 32px; line-height: 1.05; padding: 20px 40px; transform: rotate(-4deg); text-shadow: 0 2px 6px rgba(120,0,60,.35); isolation: isolate; }
.sns-brush::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, #f04a9f 0%, var(--sns-pink) 35%, var(--sns-pink-d) 100%); clip-path: polygon(2% 14%, 9% 4%, 22% 9%, 35% 1%, 51% 7%, 66% 0, 82% 6%, 94% 2%, 99% 18%, 96% 33%, 100% 50%, 97% 68%, 100% 86%, 92% 97%, 77% 93%, 61% 100%, 45% 94%, 29% 100%, 14% 95%, 3% 99%, 0 82%, 3% 64%, 0 47%, 3% 31%); filter: drop-shadow(0 6px 10px rgba(194,15,106,.3)); }
.sns-brush .sns-ic { color: #fff; }
.sns-brush--lg { font-size: 44px; padding: 26px 50px; }
.sns-brush--xl { font-size: 54px; padding: 32px 56px; }
.sns-brush--xxl { font-size: 84px; padding: 30px 70px; }

/* ---------- Leaves ---------- */
.sns-leaf { width: 64px; height: 40px; display: inline-block; }

/* ---------- Waves & tagline band ---------- */
.sns-wave { position: absolute; left: 0; bottom: -1px; width: 100%; height: 90px; display: block; z-index: 3; }
.sns-wave--inline { position: relative; height: 50px; margin-top: 30px; }
.sns-band { position: relative; background: linear-gradient(90deg, var(--sns-green-d), var(--sns-green) 30%, #5cb238 50%, var(--sns-green) 70%, var(--sns-green-d)); color: #fff; display: flex; align-items: center; justify-content: center; gap: 26px; padding: 18px 20px 22px; border-top: 6px solid var(--sns-pink); box-shadow: inset 0 -10px 0 var(--sns-pink); }
.sns-band__txt { font-family: var(--sns-hand); font-weight: 700; font-size: 40px; text-shadow: 0 2px 8px rgba(0,0,0,.2); }
.sns-band__ic { color: #fff; filter: drop-shadow(0 0 6px rgba(255,105,180,.9)); }
.sns-band__ic .sns-ic { stroke: #ff7fbf; }

/* ---------- Inner hero ---------- */
.sns-hero { position: relative; min-height: 400px; background-color: #f5b8d4; background-size: cover; background-position: center 30%; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; padding: 50px 24px 110px; overflow: hidden; }
.sns-hero__shade, .sns-homehero__shade { position: absolute; inset: 0; background: radial-gradient(ellipse at 55% 45%, rgba(70,20,40,.42) 0%, rgba(70,20,40,.18) 45%, transparent 75%); }
.sns-hero[data-ph="1"] .sns-hero__shade { background: radial-gradient(ellipse at 55% 45%, rgba(194,15,106,.35), transparent 70%); }
.sns-hero__inner { position: relative; z-index: 2; max-width: 820px; }
.sns-hero__title span { white-space: nowrap; }
.sns-hero__title { font-family: var(--sns-script); font-weight: 400; font-size: clamp(52px, 8.4vw, 108px); line-height: 1; color: #fff; display: inline-flex; align-items: center; gap: 0; text-shadow: 0 0 18px rgba(255,90,170,.85), 0 4px 18px rgba(0,0,0,.35); }
.sns-hero__title.sm { font-size: 76px; }
.sns-hero__heart { color: #fff; margin-left: -4px; margin-top: -40px; filter: drop-shadow(0 0 8px #ff4fa3) drop-shadow(0 0 3px #ff4fa3); stroke-width: 1.6; }
.sns-hero__swoosh { display: flex; align-items: center; justify-content: center; margin: -6px auto 6px; width: 360px; max-width: 80%; }
.sns-hero__swoosh span { flex: 1; height: 3px; background: linear-gradient(90deg, #fff, rgba(255,255,255,0)); border-radius: 3px; margin-left: -8px; }
.sns-hero__swoosh .sns-leaf { width: 52px; height: 34px; }
.sns-hero__sub { font-family: var(--sns-hand); font-weight: 700; font-size: 38px; line-height: 1.2; text-shadow: 0 2px 10px rgba(0,0,0,.45); margin: 0; }

/* ---------- Home hero ---------- */
.sns-homehero { position: relative; min-height: 690px; background-color: #f2a9cb; background-size: cover; background-position: center 25%; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; padding: 140px 24px 150px; overflow: hidden; }
.sns-homehero__content { position: relative; z-index: 2; }
.sns-homehero__title { font-family: var(--sns-script); font-weight: 400; font-size: 150px; line-height: .9; display: inline-flex; align-items: flex-end; text-shadow: 0 0 22px rgba(255,90,170,.8), 0 6px 20px rgba(0,0,0,.35); }
.sns-homehero__title .amp { color: #7ed321; font-family: var(--sns-script); font-size: 1.05em; margin: 0 -6px; text-shadow: 0 0 14px rgba(255,255,255,.6), 0 4px 14px rgba(0,0,0,.3); }
.sns-homehero__heart { color: #fff; margin: 0 0 30px -6px; filter: drop-shadow(0 0 10px #ff4fa3) drop-shadow(0 0 3px #ff4fa3); stroke-width: 1.5; }
.sns-homehero__sub { font-family: var(--sns-hand); font-weight: 700; font-size: 44px; text-shadow: 0 2px 12px rgba(0,0,0,.5); margin: 4px 0 36px; }
.sns-homehero__btns { display: flex; gap: 34px; justify-content: center; flex-wrap: wrap; }
.sns-play { position: absolute; right: 7%; top: 47%; z-index: 4; background: none; border: 0; color: #fff; cursor: pointer; text-align: center; font-family: var(--sns-body); }
.sns-play__circle { display: flex; width: 92px; height: 92px; margin: 0 auto 8px; align-items: center; justify-content: center; border-radius: 50%; background: linear-gradient(180deg, #f0399a, var(--sns-pink-d)); border: 4px solid #fff; box-shadow: 0 8px 20px rgba(0,0,0,.3); padding-left: 6px; transition: transform .2s; }
.sns-play:hover .sns-play__circle { transform: scale(1.07); }
.sns-play__label { font-weight: 800; font-size: 20px; line-height: 1.15; text-shadow: 0 2px 8px rgba(0,0,0,.5); }

/* ---------- Home features ---------- */
.sns-features { background: #fff; padding: 30px 0 40px; }
.sns-features__row { display: grid; grid-template-columns: repeat(4, 1fr); }
.sns-feature { text-align: center; padding: 8px 10px; position: relative; }
.sns-feature + .sns-feature::before { content: ''; position: absolute; left: 0; top: 18%; bottom: 18%; width: 2px; background: #f3a6c9; }
.sns-feature__ic { display: inline-block; margin-bottom: 8px; }
.sns-feature__ic.pink { color: var(--sns-pink); }
.sns-feature__ic.green { color: var(--sns-green); }
.sns-feature h3 { font-size: 22px; font-weight: 800; color: #1d1d1d; }

/* ---------- Home price cards ---------- */
.sns-prices { padding: 30px 0 50px; background: linear-gradient(180deg, #fff, var(--sns-pink-xl)); }
.sns-prices__row { display: grid; grid-template-columns: 1fr 170px 1fr; align-items: center; gap: 14px; }
.sns-price { display: block; background: #fff; border-radius: 26px; padding: 22px 30px 18px; text-decoration: none; color: var(--sns-ink) !important; box-shadow: var(--sns-shadow); transition: transform .2s; }
.sns-price:hover { transform: translateY(-4px); }
.sns-price--pink { border: 3px solid var(--sns-pink); }
.sns-price--green { border: 3px solid var(--sns-green); }
.sns-price__head { display: flex; gap: 16px; align-items: center; margin-bottom: 10px; }
.sns-price--pink .sns-price__head > .sns-ic { color: var(--sns-pink); }
.sns-price--green .sns-price__head > .sns-ic { color: var(--sns-green); }
.sns-price__head h3 { font-size: 25px; font-weight: 800; }
.sns-price__amt { font-size: 30px; font-weight: 900; color: var(--sns-pink); margin: 0 !important; }
.sns-price__cal { margin-left: auto; color: var(--sns-pink); }
.sns-prices__heart { position: relative; text-align: center; color: var(--sns-pink); }
.sns-prices__heart .sns-ic { stroke-width: 1.3; filter: drop-shadow(0 4px 8px rgba(226,23,126,.3)); }
.sns-prices__leaf { position: absolute; left: 50%; top: 60%; transform: translate(-50%, -50%) scale(1.5); }

/* ---------- Check lists ---------- */
.sns-checks { list-style: none; margin: 0; padding: 0; }
.sns-checks li { display: flex; align-items: flex-start; gap: 12px; font-size: 19px; margin: 6px 0; font-weight: 600; }
.sns-checks .sns-ic { color: var(--sns-green); stroke-width: 3.4; margin-top: 2px; }

/* ---------- Home results ---------- */
.sns-results { padding: 30px 0 60px; background: var(--sns-pink-xl); }
.sns-results__row { display: flex; align-items: center; gap: 36px; flex-wrap: wrap; }
.sns-results__photos { display: flex; align-items: center; gap: 4px; }
.sns-results__arrow { color: var(--sns-pink); margin: 0 -14px; z-index: 2; }
.sns-results__ph { width: 220px; height: 170px; display: flex; align-items: center; justify-content: center; color: var(--sns-pink); position: relative; }
.sns-results__ph .sns-leaf { position: absolute; bottom: 36px; }
.sns-results__txt { flex: 1; min-width: 260px; }
.sns-results__txt .sns-script-pink { font-size: 66px; transform: rotate(-3deg); white-space: nowrap; }
.sns-wave--home path:last-child { fill: #fff; }
.sns-btn--story { font-size: 20px; padding: 14px 30px; }
.sns-polaroid { margin: 0; background: #fff; padding: 10px 10px 34px; box-shadow: 0 8px 22px rgba(0,0,0,.18); transform: rotate(var(--tilt, -3deg)); position: relative; }
.sns-polaroid img { display: block; width: 130px; height: 160px; object-fit: cover; }
.sns-polaroid figcaption { position: absolute; bottom: 6px; left: 0; right: 0; text-align: center; font-family: var(--sns-hand); font-weight: 700; color: var(--sns-pink-d); font-size: 20px; }
.sns-results__photos .sns-polaroid:last-child { --tilt: 3deg; }

/* ---------- Splits (About) ---------- */
.sns-about { position: relative; padding: 50px 0 0; }
.sns-about--1 { background: linear-gradient(180deg, var(--sns-pink-xl), #fff); }
.sns-about--2 { background: #fff; }
.sns-about--3 { background: linear-gradient(180deg, #fff, var(--sns-pink-xl)); padding-bottom: 50px; }
.sns-split { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: center; }
.sns-split--rev { grid-template-columns: 1fr 1.05fr; }
.sns-split__txt p { font-size: 18px; }
.sns-split__img { position: relative; min-height: 340px; border-radius: 28px; background-size: cover; background-position: center; box-shadow: var(--sns-shadow); display: flex; align-items: center; justify-content: center; }
.sns-highlight { background: linear-gradient(90deg, #fbd2e5, #fde7f1 90%, transparent); padding: 8px 14px; border-radius: 8px; color: var(--sns-pink-d); font-weight: 800; }
.sns-highlight--script { font-family: var(--sns-hand); font-size: 28px !important; font-weight: 700; line-height: 1.2; display: flex; align-items: center; gap: 8px; transform: rotate(-1deg); }
.pink { color: var(--sns-pink); }
.sns-brushlist { position: absolute; right: -20px; top: 50%; transform: translateY(-50%) rotate(-6deg); display: flex; flex-direction: column; gap: 2px; background: rgba(255,255,255,.92); padding: 18px 26px; border-radius: 20px; box-shadow: var(--sns-shadow); }
.sns-brushlist span { font-family: var(--sns-hand); font-weight: 700; font-size: 30px; color: var(--sns-pink-d); display: flex; gap: 8px; align-items: center; }
.sns-brushlist .sns-ic { color: var(--sns-pink); stroke-width: 3.5; }
.sns-belong { background: #fff; padding: 46px 0; border-top: 2px solid #fbd2e5; }
.sns-belong__row { display: grid; grid-template-columns: auto auto minmax(320px, 1fr); gap: 40px; align-items: center; }
.sns-belong__brand { display: flex; align-items: center; }
.sns-belong__heart { position: relative; color: var(--sns-pink); display: inline-flex; margin-right: -26px; z-index: 2; }
.sns-belong__heart .sns-ic { stroke-width: 1.6; }
.sns-belong__heart .sns-leaf { position: absolute; left: 50%; top: 58%; transform: translate(-50%, -50%) scale(1.3); }
.sns-belong__list { border-left: 2px solid #f3a6c9; border-right: 2px solid #f3a6c9; padding: 0 30px; }
.sns-belong__list li { font-style: italic; }
.sns-belong__txt p { font-size: 18px; }

/* ---------- Photo cards (5 across) ---------- */
.sns-cards5 { padding: 36px 0 46px; background: linear-gradient(180deg, var(--sns-pink-xl), #fff 70%); }
.sns-cards5__row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.sns-pcard { position: relative; background: linear-gradient(180deg, #fde7f1, #fbd3e5); border-radius: 26px; overflow: hidden; text-align: center; box-shadow: var(--sns-shadow); height: 100%; padding-bottom: 18px; transition: transform .2s; }
.sns-pcard:hover { transform: translateY(-4px); }
.sns-pcard__img { height: 170px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.sns-pcard__ph { color: rgba(255,255,255,.95); filter: drop-shadow(0 2px 6px rgba(194,15,106,.4)); }
.sns-pcard__badge { display: flex; width: 58px; height: 58px; margin: -30px auto 4px; position: relative; border-radius: 50%; align-items: center; justify-content: center; color: #fff; background: linear-gradient(180deg, #f0399a, var(--sns-pink-d)); border: 4px solid #fff; box-shadow: 0 4px 10px rgba(194,15,106,.35); }
.sns-pcard__title { font-size: 21px; font-weight: 900; padding: 14px 12px 4px; color: #1d1d1d; }
.sns-pcard__badge + .sns-pcard__title { padding-top: 4px; }
.sns-pcard__text { font-size: 15px; margin: 0 14px !important; color: #333; }

/* ---------- Groups finder ---------- */
.sns-finder { padding: 36px 0 30px; background: linear-gradient(180deg, var(--sns-pink-xl), #fff); }
.sns-finder__row { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 30px; align-items: center; }
.sns-finder__brush { position: relative; text-align: center; }
.sns-finder__leaf { position: absolute; bottom: -14px; left: 45%; transform: scale(1.3) rotate(-10deg); }
.sns-finder__search { background: #fff; border-radius: 26px; padding: 22px; box-shadow: var(--sns-shadow); }
.sns-finder__search h2 { color: var(--sns-pink); font-size: 32px; font-weight: 900; display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.sns-searchbar { display: flex; border: 2px solid #e8d2dd; border-radius: 14px; overflow: hidden; background: #fff; }
.sns-searchbar input { flex: 1; border: 0 !important; padding: 14px 16px; font-size: 18px; font-family: inherit; outline: none; min-width: 0; background: #fff; box-shadow: none !important; }
.sns-searchbar button { background: var(--sns-pink); color: #fff; border: 0; padding: 0 20px; cursor: pointer; }
.sns-searchbar button:hover { background: var(--sns-pink-d); }
.sns-map { height: 240px; border-radius: 16px; margin-top: 8px; background: #e7f3dc; overflow: hidden; z-index: 1; }
.sns-map .leaflet-popup-content { font-family: var(--sns-body); }
.sns-mapmarker { background: none; border: 0; }
.sns-mapmarker svg { width: 34px; height: 44px; filter: drop-shadow(0 3px 3px rgba(0,0,0,.3)); }
.sns-finder__photo { display: flex; justify-content: center; }
.sns-polaroid--pinned { --tilt: 3deg; padding: 12px 12px 40px; width: 100%; max-width: 330px; }
.sns-polaroid--pinned img, .sns-polaroid--pinned .sns-pcard__ph { display: flex; width: 100%; height: 240px; object-fit: cover; align-items: center; justify-content: center; }
.sns-polaroid--pinned[data-ph="1"] .sns-pcard__ph { background: linear-gradient(135deg, #f7b3d3, #cfeab0); }
.sns-pin { position: absolute; top: -14px; right: 40px; width: 26px; height: 26px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ff7ab8, var(--sns-pink-d)); box-shadow: 0 3px 5px rgba(0,0,0,.3); z-index: 2; }
.sns-results-msg { text-align: center; font-weight: 700; color: var(--sns-muted); margin: 26px 0 14px !important; }
.sns-grouplist { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.sns-group { background: #fff; border-radius: 20px; padding: 18px 20px; box-shadow: var(--sns-shadow); border-left: 6px solid var(--sns-pink); }
.sns-group h3 { font-size: 21px; font-weight: 900; color: var(--sns-pink-d); margin-bottom: 6px; display: flex; justify-content: space-between; gap: 8px; }
.sns-group__dist { font-size: 14px; background: var(--sns-pink-l); color: var(--sns-pink-d); padding: 3px 10px; border-radius: 999px; white-space: nowrap; align-self: flex-start; }
.sns-group p { margin: 4px 0 !important; display: flex; gap: 8px; align-items: flex-start; font-size: 16px; }
.sns-group p .sns-ic { color: var(--sns-green); margin-top: 3px; }
.sns-group__actions { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.sns-group.is-hl { outline: 3px solid var(--sns-lime); }

.sns-joinstrip { background: #fff; padding: 20px 0 50px; }
.sns-joinstrip__row { display: flex; align-items: center; justify-content: center; gap: 40px; flex-wrap: wrap; }
.sns-joinstrip__a { display: flex; align-items: center; gap: 14px; padding-right: 40px; border-right: 2px solid #f3a6c9; }
.sns-joinstrip__a .sns-script-pink { font-size: 40px; transform: rotate(-4deg); }
.sns-joinstrip__cal { color: var(--sns-pink); }
.sns-joinstrip__price { position: relative; text-align: center; padding: 0 40px 0 0; border-right: 2px solid #f3a6c9; }
.sns-joinstrip__price strong { display: block; font-family: var(--sns-hand); font-size: 110px; color: var(--sns-pink); line-height: .9; }
.sns-joinstrip__price span { font-size: 34px; font-weight: 900; color: var(--sns-pink-d); }
.sns-joinstrip__heart { position: absolute; top: 0; right: 0; color: var(--sns-pink); }

/* ---------- Membership ---------- */
.sns-mjoin { padding: 36px 0; background: linear-gradient(180deg, var(--sns-pink-xl), #fff); }
.sns-mjoin__row { display: grid; grid-template-columns: auto minmax(320px, 1.3fr) auto; gap: 34px; align-items: center; }
.sns-mjoin__brush { position: relative; }
.sns-mjoin__leaf { position: absolute; bottom: 4px; left: 48%; transform: scale(1.2); }
.sns-mjoin__list { border-right: 2px solid #b6dc8f; padding-right: 26px; }
.sns-lead { font-size: 21px; font-weight: 800; }
.sns-mjoin__list .sns-checks li { font-style: italic; font-size: 18px; }
.sns-mjoin__price { text-align: center; }
.sns-heartprice { position: relative; width: 270px; height: 230px; margin: 0 auto 6px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.sns-heartprice > svg:first-child { position: absolute; inset: 0; width: 100%; height: 100%; filter: drop-shadow(0 4px 8px rgba(226,23,126,.25)); }
.sns-heartprice strong { position: relative; font-family: var(--sns-hand); font-size: 76px; color: var(--sns-pink); line-height: .9; margin-top: -24px; }
.sns-heartprice span { position: relative; font-size: 30px; font-weight: 900; color: var(--sns-pink-d); }
.sns-heartprice__leaf { position: absolute; right: 6px; top: 6px; width: 64px; height: 40px; transform: rotate(20deg); }

.sns-mtoday { padding: 34px 0 60px; background: linear-gradient(180deg, #fff, var(--sns-pink-xl)); }
.sns-mtoday__row { display: grid; grid-template-columns: 220px auto 1fr; gap: 40px; align-items: center; }
.sns-phone { width: 210px; border: 10px solid #222; border-radius: 34px; background: #fff; box-shadow: 0 16px 36px rgba(0,0,0,.25); transform: rotate(-6deg); overflow: hidden; }
.sns-phone__screen { padding: 14px 12px 18px; display: flex; flex-direction: column; gap: 8px; background: linear-gradient(180deg, #fff, var(--sns-pink-xl)); }
.sns-phone__screen img { width: 90px; margin: 0 auto 6px; }
.sns-phone__screen span { display: flex; align-items: center; gap: 8px; background: var(--sns-pink-l); border-radius: 12px; padding: 8px 10px; font-weight: 800; font-size: 14px; }
.sns-phone__screen .sns-ic { color: #fff; background: var(--sns-pink); border-radius: 50%; padding: 3px; width: 24px; height: 24px; }
.sns-mtoday__txt { font-size: 20px; font-style: italic; font-weight: 600; display: block; }
.sns-mtoday__txt .sns-ic { color: var(--sns-pink); vertical-align: middle; }

/* ---------- Stories ---------- */
.sns-polas { padding: 36px 0 30px; background: linear-gradient(180deg, var(--sns-pink-xl), #fff); }
.sns-polas__row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.sns-polaroid--card { padding: 12px 12px 64px; }
.sns-polaroid__img { height: 190px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.sns-polaroid--card figcaption { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 26px; line-height: 1; bottom: 12px; padding: 0 6px; }
.sns-polaroid--card figcaption .sns-ic { color: var(--sns-pink); stroke-width: 1.8; }
.sns-testis { padding: 40px 0; background: var(--sns-pink-xl); }
.sns-testis__row { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 30px; align-items: center; }
.sns-testis__brush { position: relative; }
.sns-testis__brush .sns-brush { font-size: 42px; padding: 26px 40px; }
.sns-testis__leaf { position: absolute; bottom: -4px; left: 40%; transform: scale(1.2); }
.sns-carousel { position: relative; padding: 0 30px 34px; min-width: 0; }
.sns-carousel__track { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 50px 4px 10px; scrollbar-width: none; }
.sns-carousel__track::-webkit-scrollbar { display: none; }
.sns-testi { position: relative; flex: 0 0 max(250px, calc((100% - 40px) / 3)); scroll-snap-align: start; background: #fff; border-radius: 26px; padding: 52px 22px 26px; box-shadow: var(--sns-shadow); text-align: center; }
.sns-testi__avatar { position: absolute; top: -46px; left: 50%; transform: translateX(-50%); width: 96px; height: 96px; border-radius: 50%; border: 5px solid #fff; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,.15); background: linear-gradient(135deg, #f7b3d3, #cfeab0); display: flex; align-items: center; justify-content: center; }
.sns-testi__avatar img { width: 100%; height: 100%; object-fit: cover; }
.sns-testi__avatar span { font-size: 40px; font-weight: 900; color: #fff; }
.sns-testi__q { position: absolute; top: 16px; left: 18px; font-size: 80px; color: var(--sns-pink); font-family: Georgia, serif; line-height: 1; }
.sns-testi blockquote { margin: 0 0 12px; font-size: 18px; font-weight: 700; line-height: 1.4; }
.sns-testi footer strong { display: block; color: var(--sns-pink-d); }
.sns-testi__lost { display: inline-block; margin-top: 4px; background: #e5f6dc; color: var(--sns-green-d); font-weight: 800; font-size: 14px; padding: 2px 12px; border-radius: 999px; }
.sns-testi__heart { position: absolute; right: 18px; bottom: 16px; color: var(--sns-pink); stroke-width: 1.6; }
.sns-carousel__nav { position: absolute; top: 50%; z-index: 2; width: 46px; height: 46px; border-radius: 50%; border: 3px solid #fff; background: linear-gradient(180deg, #f0399a, var(--sns-pink-d)); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 10px rgba(0,0,0,.2); transform: translateY(-50%); }
.sns-carousel__nav.prev { left: -6px; }
.sns-carousel__nav.next { right: -6px; }
.sns-carousel__dots { position: absolute; bottom: 4px; left: 0; right: 0; display: flex; justify-content: center; gap: 8px; }
.sns-carousel__dots button { width: 13px; height: 13px; border-radius: 50%; border: 0; background: #f5bcd7; cursor: pointer; padding: 0; }
.sns-carousel__dots button.is-on { background: var(--sns-pink); }
.sns-empty { text-align: center; background: #fff; border-radius: 24px; padding: 36px 24px; box-shadow: var(--sns-shadow); color: var(--sns-pink); }
.sns-empty h3 { color: var(--sns-ink); margin: 10px 0 6px; font-size: 22px; }
.sns-empty p { color: var(--sns-muted); }
.sns-iconstrip { background: #fff; padding: 30px 0; }
.sns-iconstrip__row { display: flex; align-items: center; justify-content: space-between; }
.sns-iconstrip__row > div { flex: 1; text-align: center; color: var(--sns-pink); position: relative; }
.sns-iconstrip__row > div + div::before { content: ''; position: absolute; left: 0; top: 10%; bottom: 10%; width: 2px; background: #9fd27a; }
.sns-iconstrip__row h3 { color: #1d1d1d; font-size: 21px; font-weight: 900; margin-top: 6px; }
.sns-iconstrip__leaf { transform: scale(1.3) rotate(-30deg); }
.sns-iconstrip__leaf.r { transform: scale(1.3) rotate(30deg) scaleX(-1); }
.sns-nextstory { padding: 40px 0 56px; background: linear-gradient(180deg, #fff, var(--sns-pink-xl)); }
.sns-nextstory__row { display: grid; grid-template-columns: auto minmax(280px, 1fr) auto; gap: 40px; align-items: center; }
.sns-nextstory__brand { display: flex; align-items: center; }
.sns-nextstory .sns-checks li { font-style: italic; }

/* ---------- Events ---------- */
.sns-evintro { padding: 36px 0; background: linear-gradient(180deg, var(--sns-pink-xl), #fff); }
.sns-evintro__row { display: grid; grid-template-columns: auto minmax(320px, 1fr) auto; gap: 34px; align-items: center; }
.sns-evintro__brush { position: relative; text-align: center; }
.sns-evintro__brush .sns-brush { text-align: center; }
.sns-evintro__leaf { position: absolute; left: -10px; bottom: 0; transform: scale(1.3) rotate(-20deg); }
.sns-evintro .sns-checks { border-right: 2px solid #b6dc8f; padding-right: 24px; }
.sns-evintro .sns-checks li { font-style: italic; }
.sns-evintro__cta { display: flex; align-items: center; text-decoration: none; }
.sns-evintro__cta .sns-brush { font-size: 32px; margin-left: -18px; }
.sns-evintro__cal { position: relative; color: var(--sns-pink); background: #fff; border-radius: 18px; padding: 8px; box-shadow: var(--sns-shadow); z-index: 2; transform: rotate(-6deg); }
.sns-evintro__calheart { position: absolute; left: 50%; top: 56%; transform: translate(-50%, -50%); }
.sns-evcal { padding: 10px 0 20px; background: #fff; }
.sns-evcal__panel { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 30px; background: linear-gradient(180deg, #fff, var(--sns-pink-xl)); border: 2px solid #f8cfe2; border-radius: 30px; padding: 26px 50px; box-shadow: var(--sns-shadow); max-width: 1000px; margin: 0 auto; }
.sns-evcal__txt h2 { color: var(--sns-pink); font-size: 42px; font-weight: 900; display: flex; gap: 14px; align-items: center; }
.sns-evcal__txt p { font-size: 21px; font-weight: 600; margin: 6px 0 16px !important; }
.sns-evcal__leaf { position: absolute; transform: scale(1.6); }
.sns-evcal__leaf.l { left: -40px; bottom: 20px; transform: scale(1.6) rotate(-40deg); }
.sns-evcal__leaf.r { right: -40px; top: 40px; transform: scale(1.6) rotate(40deg); }
.sns-deskcal { width: 330px; flex-shrink: 0; transform: rotate(3deg); }
.sns-deskcal__rings { height: 20px; background: repeating-linear-gradient(90deg, transparent 0 18px, #c5c5c5 18px 22px, transparent 22px 34px); }
.sns-deskcal__page { background: #fff; border: 8px solid var(--sns-pink); border-radius: 12px; padding: 10px; font-size: 12px; box-shadow: 0 10px 20px rgba(0,0,0,.15); }
.sns-minical__title { text-align: center; font-weight: 900; color: var(--sns-pink-d); margin-bottom: 4px; }
.sns-minical__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.sns-minical__grid span { padding: 3px 0; border-radius: 4px; color: #555; }
.sns-minical__grid .dow { font-weight: 800; color: var(--sns-pink); }
.sns-minical__grid .has { background: var(--sns-pink); color: #fff; font-weight: 800; }
.sns-minical__grid .today { outline: 2px solid var(--sns-green); }
.sns-fullcal { max-width: 1000px; margin: 22px auto 0; background: #fff; border-radius: 26px; padding: 22px; box-shadow: var(--sns-shadow); }
.sns-fullcal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.sns-fullcal__head h3 { font-size: 26px; color: var(--sns-pink-d); font-weight: 900; }
.sns-fullcal__head button { background: var(--sns-pink-l); border: 0; border-radius: 50%; width: 42px; height: 42px; color: var(--sns-pink-d); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.sns-fullcal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.sns-fullcal__dow { text-align: center; font-weight: 900; color: var(--sns-pink); padding: 4px 0; }
.sns-fullcal__day { min-height: 92px; border-radius: 12px; background: var(--sns-pink-xl); padding: 6px; font-size: 13px; }
.sns-fullcal__day.out { opacity: .35; }
.sns-fullcal__day.today { outline: 2px solid var(--sns-green); }
.sns-fullcal__day b { display: block; color: #666; margin-bottom: 4px; }
.sns-fullcal__ev { display: block; width: 100%; text-align: left; background: var(--sns-pink); color: #fff; border: 0; border-radius: 6px; padding: 3px 6px; margin-bottom: 3px; cursor: pointer; font: 700 12px/1.25 var(--sns-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sns-fullcal__ev.past { background: #bbb; }
.sns-evcats { padding-top: 30px; }
.sns-evcat { all: unset; cursor: pointer; display: block; border-radius: 26px; }
.sns-evcat:focus-visible { outline: 3px solid var(--sns-green); }
.sns-evcat.is-on .sns-pcard { outline: 4px solid var(--sns-pink); }
.sns-upcoming { padding: 20px 0 40px; background: #fff; }
.sns-upcoming__head { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 18px; }
.sns-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.sns-chips button { border: 2px solid #f3a6c9; background: #fff; color: var(--sns-pink-d); font: 800 15px var(--sns-body); padding: 7px 16px; border-radius: 999px; cursor: pointer; }
.sns-chips button.is-on, .sns-chips button:hover { background: var(--sns-pink); border-color: var(--sns-pink); color: #fff; }
.sns-evlist { display: grid; gap: 18px; }
.sns-ev { display: grid; grid-template-columns: 110px 200px 1fr auto; gap: 22px; align-items: center; background: var(--sns-pink-xl); border-radius: 22px; padding: 16px; box-shadow: 0 4px 16px rgba(194,15,106,.08); }
.sns-ev__date { background: linear-gradient(180deg, #f0399a, var(--sns-pink-d)); color: #fff; border-radius: 18px; text-align: center; padding: 12px 6px; }
.sns-ev__date b { display: block; font-size: 40px; line-height: 1; }
.sns-ev__date span { display: block; text-transform: uppercase; font-weight: 800; font-size: 14px; }
.sns-ev__img { height: 120px; border-radius: 16px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.sns-ev h3 { font-size: 23px; font-weight: 900; color: var(--sns-ink); margin-bottom: 4px; }
.sns-ev__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--sns-muted); font-weight: 700; font-size: 15px; margin-bottom: 6px; }
.sns-ev__meta span { display: inline-flex; gap: 6px; align-items: center; }
.sns-ev__meta .sns-ic { color: var(--sns-green); }
.sns-ev__desc { font-size: 15px; }
.sns-ev__desc p { margin: 0 0 4px !important; }
.sns-ev__side { text-align: center; }
.sns-ev__left { display: block; font-weight: 800; font-size: 14px; color: var(--sns-green-d); margin-top: 6px; }
.sns-ev__left.full { color: var(--sns-pink-d); }
.sns-tag { display: inline-block; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; color: var(--sns-pink-d); background: #fff; border-radius: 999px; padding: 2px 10px; margin-bottom: 6px; }
.sns-evjoin__txt { font-size: 21px; font-style: italic; font-weight: 600; }

/* ---------- Contact ---------- */
.sns-contact { padding: 40px 0; background: linear-gradient(180deg, var(--sns-pink-xl), #fff); }
.sns-contact__row { display: grid; grid-template-columns: 1fr 1.4fr; gap: 40px; align-items: start; }
.sns-contact__intro { display: flex; gap: 10px; align-items: flex-start; margin: 26px 0 16px; }
.sns-contact__intro p { font-size: 20px; font-weight: 700; }
.sns-cinfo { all: unset; box-sizing: border-box; cursor: pointer; display: flex; gap: 16px; align-items: center; width: 100%; background: linear-gradient(90deg, #fde3ef, #fff4f9); border-radius: 18px; padding: 12px 18px; margin-bottom: 12px; transition: transform .2s; }
.sns-cinfo:hover { transform: translateX(4px); }
.sns-cinfo .sns-ic { color: var(--sns-pink); }
.sns-cinfo strong { display: block; font-size: 21px; font-weight: 900; color: var(--sns-ink); }
.sns-cinfo span { font-size: 15px; line-height: 1.35; }
.sns-contact__form { background: rgba(255,255,255,.9); border: 2px solid #f8cfe2; border-radius: 28px; padding: 28px 34px; box-shadow: var(--sns-shadow); }
.sns-contact__form h2 { color: var(--sns-pink); font-size: 34px; font-weight: 900; display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.sns-form__submit { display: flex; align-items: center; justify-content: center; gap: 10px; }
.sns-form__submit .sns-leaf { transform: scale(1.3) rotate(-15deg); }
.sns-runown { padding: 20px 0 50px; background: #fff; }
.sns-runown__row { display: grid; grid-template-columns: 1fr auto 1.1fr; gap: 30px; align-items: center; }
.sns-polaroid--wide { padding: 12px 12px 30px; }
.sns-polaroid--wide .sns-polaroid__img { height: 230px; }
.sns-runown__txt { border-left: 2px solid #b6dc8f; padding-left: 26px; }
.sns-runown__txt p { font-size: 19px; font-weight: 600; }

/* ---------- Forms ---------- */
.sns-form label { display: block; font-weight: 800; font-size: 15px; margin-bottom: 14px; color: #333; }
.sns-form input:not([type=checkbox]):not([type=radio]):not([type=file]), .sns-form select, .sns-form textarea, .sns-goaladd input, .sns-compose textarea { display: block; width: 100%; margin-top: 4px; border: 2px solid #e8d2dd; border-radius: 14px; padding: 13px 16px; font: 600 17px var(--sns-body); color: var(--sns-ink); background: #fff; outline: none; transition: border-color .2s, box-shadow .2s; }
.sns-form input:focus, .sns-form select:focus, .sns-form textarea:focus, .sns-goaladd input:focus, .sns-compose textarea:focus { border-color: var(--sns-pink); box-shadow: 0 0 0 4px rgba(226,23,126,.12); }
.sns-contact__form label { margin-bottom: 14px; }
.sns-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sns-form__row.three { grid-template-columns: 1fr 1fr 1fr; }
.sns-select select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23e2177e' stroke-width='3'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center !important; }
.sns-form .sns-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; }
.sns-form .sns-check input { width: 20px; height: 20px; accent-color: var(--sns-pink); margin-top: 2px; flex-shrink: 0; }
.sns-form__msg { min-height: 0; font-weight: 800; margin-bottom: 10px; }
.sns-form__msg.ok { color: var(--sns-green-d); background: #e9f7e1; padding: 12px 16px; border-radius: 12px; }
.sns-form__msg.err { color: #b0124f; background: #fde3ef; padding: 12px 16px; border-radius: 12px; }

/* ---------- Auth ---------- */
.sns-auth { padding: 40px 0 60px; background: linear-gradient(180deg, var(--sns-pink-xl), #fff); }
.sns-auth__row { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.sns-auth__card { background: #fff; border: 2px solid #f8cfe2; border-radius: 28px; padding: 30px 34px; box-shadow: var(--sns-shadow); }
.sns-auth__card--wide { max-width: 760px; margin: 0 auto; }
.sns-auth__card h2 { color: var(--sns-pink); font-size: 30px; font-weight: 900; display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.sns-auth__side { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.sns-auth__small { text-align: center; margin-top: 14px !important; font-weight: 700; }
.sns-plans { border: 0; padding: 0; margin: 0 0 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sns-plans legend { font-weight: 900; margin-bottom: 10px; font-size: 18px; }
.sns-plan { margin: 0 !important; cursor: pointer; }
.sns-plan input { position: absolute; opacity: 0; }
.sns-plan > span { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; height: 100%; border: 3px solid #eee; border-radius: 20px; padding: 16px; transition: .2s; }
.sns-plan strong { font-size: 19px; }
.sns-plan em { font-style: normal; font-weight: 900; font-size: 22px; color: var(--sns-pink); }
.sns-plan small { font-weight: 600; color: var(--sns-muted); }
.sns-plan--green .sns-ic { color: var(--sns-green); }
.sns-plan--pink .sns-ic { color: var(--sns-pink); }
.sns-plan--green input:checked + span { border-color: var(--sns-green); background: #f1faea; }
.sns-plan--pink input:checked + span { border-color: var(--sns-pink); background: var(--sns-pink-xl); }
.sns-plan input:focus-visible + span { outline: 3px solid var(--sns-pink); }

/* ---------- Account ---------- */
.sns-acct-hero { position: relative; background-color: #f2a9cb; background-size: cover; background-position: center; padding: 40px 0 100px; color: #fff; text-align: center; }
.sns-acct-hero__in { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; }
.sns-acct-status { display: inline-block; font-weight: 900; padding: 6px 18px; border-radius: 999px; margin-top: 6px !important; }
.sns-acct-status.on { background: var(--sns-green); }
.sns-acct-status.off { background: rgba(0,0,0,.35); }
.sns-acct { padding: 30px 0 60px; }
.sns-acct__grid { display: grid; grid-template-columns: 250px 1fr; gap: 30px; align-items: start; }
.sns-acct__nav { background: #fff; border-radius: 24px; padding: 12px; box-shadow: var(--sns-shadow); position: sticky; top: 110px; display: flex; flex-direction: column; gap: 4px; }
.sns-acct__nav button, .sns-acct__nav a { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 14px; font-weight: 800; color: #333; font-size: 16px; }
.sns-acct__nav button .sns-ic { color: var(--sns-pink); }
.sns-acct__nav button:hover { background: var(--sns-pink-xl); }
.sns-acct__nav button.is-on { background: linear-gradient(180deg, #f0399a, var(--sns-pink-d)); color: #fff; }
.sns-acct__nav button.is-on .sns-ic { color: #fff; }
.sns-acct__nav .sns-lock { margin-left: auto; font-style: normal; font-size: 13px; }
.sns-acct__logout { color: var(--sns-muted) !important; border-top: 1px solid #f5d0e1; margin-top: 6px; border-radius: 0 0 14px 14px !important; }
.sns-panel { display: none; background: #fff; border-radius: 26px; padding: 28px 32px; box-shadow: var(--sns-shadow); min-height: 400px; }
.sns-panel.is-on { display: block; animation: snsFade .25s ease; }
@keyframes snsFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.sns-panel > .sns-script-title { margin-bottom: 14px; }
.sns-notice { background: #fff6d8; border-radius: 14px; padding: 12px 16px; font-weight: 700; margin-bottom: 16px; }
.sns-notice.ok { background: #e9f7e1; color: var(--sns-green-d); }
.sns-ov { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.sns-ov__card { border-radius: 22px; padding: 20px; }
.sns-ov__card.pink { background: var(--sns-pink-xl); border: 2px solid #f8cfe2; }
.sns-ov__card.pink > .sns-ic { color: var(--sns-pink); }
.sns-ov__card.green { background: #f3faee; border: 2px solid #cfe9bb; }
.sns-ov__card.green > .sns-ic { color: var(--sns-green); }
.sns-ov__card h3 { font-size: 21px; font-weight: 900; margin: 6px 0; }
.sns-locked { text-align: center; padding: 30px 10px; color: var(--sns-pink); }
.sns-locked h3 { color: var(--sns-ink); font-size: 24px; margin: 10px 0; }
.sns-locked p { color: #444; max-width: 520px; margin-left: auto; margin-right: auto; }
.sns-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.sns-stat { background: var(--sns-pink-xl); border-radius: 18px; padding: 14px; text-align: center; }
.sns-stat b { display: block; font-size: 24px; color: var(--sns-pink-d); font-weight: 900; }
.sns-stat span { font-size: 13px; font-weight: 800; color: var(--sns-muted); text-transform: uppercase; letter-spacing: .03em; }
.sns-stat.green b { color: var(--sns-green-d); }
.sns-chartbox { position: relative; background: #fff; border: 2px solid #f8cfe2; border-radius: 20px; padding: 14px; margin-bottom: 20px; }
.sns-chartbox canvas { width: 100%; display: block; }
.sns-chart-empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 800; color: var(--sns-muted); }
.sns-twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.sns-card { background: var(--sns-pink-xl); border-radius: 20px; padding: 20px; }
.sns-card h3 { font-size: 20px; font-weight: 900; margin-bottom: 12px; display: flex; gap: 8px; align-items: center; color: var(--sns-pink-d); }
.sns-unitrow { display: flex; gap: 8px; margin-bottom: 14px; }
.sns-unitrow select { flex: 0 0 110px; margin: 0 !important; }
.sns-unitrow input { margin: 0 !important; min-width: 0; }
.sns-subhead { font-size: 22px; font-weight: 900; margin: 24px 0 10px !important; }
.sns-tablewrap { overflow-x: auto; }
.sns-wtable { width: 100%; border-collapse: collapse; font-size: 16px; }
.sns-wtable th { text-align: left; color: var(--sns-pink-d); border-bottom: 2px solid #f8cfe2; padding: 8px; }
.sns-wtable td { padding: 9px 8px; border-bottom: 1px solid #f7e1eb; }
.sns-down { color: var(--sns-green-d); font-weight: 800; }
.sns-up { color: #b0124f; font-weight: 800; }
.sns-iconbtn { background: none; border: 0; cursor: pointer; color: #b9a2ad; padding: 4px; }
.sns-iconbtn:hover { color: #b0124f; }
.sns-goaladd { display: flex; gap: 10px; margin-bottom: 18px; }
.sns-goaladd input { margin: 0 !important; }
.sns-goals { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.sns-goals li { display: flex; align-items: center; gap: 12px; background: var(--sns-pink-xl); border-radius: 16px; padding: 12px 16px; font-weight: 700; font-size: 18px; }
.sns-goals li.done { background: #eef8e7; }
.sns-goals li.done span { text-decoration: line-through; color: var(--sns-muted); }
.sns-goals .sns-tick { width: 30px; height: 30px; border-radius: 50%; border: 3px solid var(--sns-pink); background: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; color: transparent; flex-shrink: 0; }
.sns-goals li.done .sns-tick { background: var(--sns-green); border-color: var(--sns-green); color: #fff; }
.sns-goals li span { flex: 1; }
.sns-recipes { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.sns-recipe__open { all: unset; box-sizing: border-box; cursor: pointer; display: block; width: 100%; background: var(--sns-pink-xl); border-radius: 20px; overflow: hidden; padding-bottom: 12px; transition: transform .2s; }
.sns-recipe__open:hover { transform: translateY(-3px); }
.sns-recipe__img { height: 150px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.sns-recipe h3 { font-size: 18px; font-weight: 900; padding: 10px 14px 2px; }
.sns-recipe p { padding: 0 14px; margin: 0 !important; font-size: 14px; color: var(--sns-muted); font-weight: 700; }
.sns-recipe-full img { width: 100%; max-height: 300px; object-fit: cover; border-radius: 18px; margin-bottom: 12px; }
.sns-recipe-full h2 { font-family: var(--sns-hand); color: var(--sns-pink-d); font-size: 40px; }
.sns-recipe-full h3 { color: var(--sns-pink); margin: 16px 0 6px; }
.sns-tips { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.sns-tip { background: var(--sns-pink-xl); border-radius: 20px; padding: 18px; border-top: 6px solid var(--sns-pink); display: flex; flex-direction: column; }
.sns-tip.is-challenge { border-top-color: var(--sns-green); background: #f3faee; }
.sns-tip__tag { font-size: 12px; font-weight: 900; text-transform: uppercase; color: var(--sns-pink-d); letter-spacing: .05em; }
.sns-tip.is-challenge .sns-tip__tag { color: var(--sns-green-d); }
.sns-tip h3 { font-size: 20px; font-weight: 900; margin: 4px 0 8px; }
.sns-tip__body { flex: 1; font-size: 16px; }
.sns-tip__done { align-self: flex-start; display: inline-flex; gap: 6px; align-items: center; border: 2px solid var(--sns-green); color: var(--sns-green-d); background: #fff; border-radius: 999px; padding: 6px 14px; font: 800 14px var(--sns-body); cursor: pointer; margin-top: 10px; }
.sns-tip.is-done .sns-tip__done { background: var(--sns-green); color: #fff; }
.sns-compose { background: var(--sns-pink-xl); border-radius: 20px; padding: 16px; margin-bottom: 18px; text-align: right; }
.sns-compose textarea { margin: 0 0 10px !important; resize: vertical; }
.sns-compose .sns-form__msg { text-align: left; }
.sns-feed { display: grid; gap: 14px; margin-bottom: 16px; }
.sns-post { background: #fff; border: 2px solid #f8cfe2; border-radius: 20px; padding: 16px 18px; }
.sns-post__head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.sns-av { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, var(--sns-pink), var(--sns-lime)); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 900; flex-shrink: 0; background-size: cover; }
.sns-av.sm { width: 30px; height: 30px; font-size: 13px; }
.sns-post__head strong { display: block; }
.sns-post__head small { color: var(--sns-muted); font-weight: 700; }
.sns-post__body { white-space: pre-wrap; word-wrap: break-word; font-size: 17px; }
.sns-post__acts { display: flex; gap: 14px; margin-top: 10px; align-items: center; }
.sns-post__acts button { background: none; border: 0; cursor: pointer; font: 800 14px var(--sns-body); color: var(--sns-muted); display: inline-flex; gap: 5px; align-items: center; padding: 4px 0; }
.sns-post__acts .sns-cheer.is-on { color: var(--sns-pink); }
.sns-post__acts .sns-cheer.is-on .sns-ic { fill: var(--sns-pink); }
.sns-post__acts .sns-del { margin-left: auto; }
.sns-replies { margin: 10px 0 0 22px; border-left: 3px solid #f8cfe2; padding-left: 14px; display: grid; gap: 10px; }
.sns-reply { display: flex; gap: 8px; }
.sns-reply__body { background: var(--sns-pink-xl); border-radius: 14px; padding: 8px 12px; flex: 1; font-size: 15px; white-space: pre-wrap; word-wrap: break-word; }
.sns-reply__body strong { font-size: 14px; }
.sns-reply__body small { color: var(--sns-muted); font-weight: 700; margin-left: 6px; }
.sns-replyform { display: flex; gap: 8px; margin-top: 10px; }
.sns-replyform input { flex: 1; border: 2px solid #e8d2dd; border-radius: 999px; padding: 8px 14px; font: 600 15px var(--sns-body); outline: none; min-width: 0; }
.sns-replyform input:focus { border-color: var(--sns-pink); }

/* ---------- Modal ---------- */
.sns-modal { position: fixed; inset: 0; z-index: 9999; background: rgba(60,10,35,.6); display: flex; align-items: center; justify-content: center; padding: 20px; backdrop-filter: blur(3px); }
.sns-modal[hidden] { display: none; }
.sns-modal__box { position: relative; background: #fff; border-radius: 26px; width: 100%; max-width: 640px; max-height: 90vh; overflow-y: auto; padding: 30px; box-shadow: 0 30px 60px rgba(0,0,0,.35); font-family: var(--sns-body); color: var(--sns-ink); }
.sns-modal__box.video { max-width: 960px; padding: 0; background: #000; overflow: hidden; }
.sns-modal__box.video iframe, .sns-modal__box.video video { display: block; width: 100%; aspect-ratio: 16/9; border: 0; }
.sns-modal__x { position: absolute; top: 10px; right: 10px; z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--sns-pink-l); color: var(--sns-pink-d); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.sns-modal h2 { font-family: var(--sns-hand); color: var(--sns-pink-d); font-size: 38px; margin: 0 40px 6px 0; }
.sns-modal .sns-ev__meta { margin-bottom: 12px; }
.sns-modal .sns-form label { font-size: 15px; font-weight: 800; display: block; margin-bottom: 12px; }
.sns-modal .sns-form input, .sns-modal .sns-form select { display: block; width: 100%; margin-top: 4px; border: 2px solid #e8d2dd; border-radius: 14px; padding: 12px 14px; font: 600 16px var(--sns-body); }
body.sns-noscroll { overflow: hidden; }

/* ---------- Footer ---------- */
.sns-footer { font-family: var(--sns-body); }
.sns-footer__in { background: #fff; text-align: center; padding: 26px 20px 30px; }
.sns-footer__logo { width: 90px; height: 90px; }
.sns-footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin: 10px 0; }
.sns-footer__links a { color: var(--sns-pink-d); font-weight: 800; text-decoration: none; }
.sns-footer__links a:hover { text-decoration: underline; }
.sns-footer__copy { color: var(--sns-muted); font-size: 14px; margin: 0; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1180px) {
	.sns-nav ul a { padding: 8px 10px; font-size: 14px; }
	.sns-brush--xl { font-size: 44px; padding: 26px 44px; }
	.sns-cards5__row, .sns-polas__row { grid-template-columns: repeat(3, 1fr); }
	.sns-finder__row { grid-template-columns: 1fr 1.4fr; }
	.sns-finder__photo { display: none; }
	.sns-testi { flex-basis: calc((100% - 20px) / 2); }
}
@media (max-width: 1020px) {
	.sns-burger { display: block; }
	.sns-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; flex-direction: column; align-items: stretch; padding: 14px 20px 20px; box-shadow: 0 14px 20px rgba(0,0,0,.1); }
	.sns-nav.is-open { display: flex; }
	.sns-nav ul { flex-direction: column; }
	.sns-nav ul a { font-size: 17px; padding: 11px 16px; }
	.sns-login-btn { justify-content: center; }
	.sns-is-home .sns-logo img { width: 120px; height: 120px; margin-bottom: -60px; }
	.sns-hero__title { font-size: 80px; }
	.sns-homehero__title { font-size: 110px; }
	.sns-play { position: relative; right: auto; top: auto; display: block; margin: 30px auto 0; }
	.sns-homehero { flex-direction: column; }
	.sns-prices__row { grid-template-columns: 1fr; }
	.sns-prices__heart { display: none; }
	.sns-split, .sns-split--rev { grid-template-columns: 1fr; }
	.sns-split--rev .sns-split__img { order: 2; }
	.sns-brushlist { right: 10px; }
	.sns-belong__row, .sns-mjoin__row, .sns-mtoday__row, .sns-testis__row, .sns-nextstory__row, .sns-evintro__row, .sns-contact__row, .sns-runown__row, .sns-auth__row { grid-template-columns: 1fr; text-align: center; justify-items: center; }
	.sns-belong__list, .sns-mjoin__list, .sns-evintro .sns-checks, .sns-runown__txt { border: 0; padding: 0; text-align: left; }
	.sns-carousel { width: 100%; }
	.sns-contact__row { text-align: left; justify-items: stretch; }
	.sns-contact__left { text-align: center; }
	.sns-cinfo { text-align: left; }
	.sns-evcal__panel { flex-direction: column; text-align: center; padding: 24px; }
	.sns-evcal__txt h2 { justify-content: center; }
	.sns-ev { grid-template-columns: 90px 1fr; }
	.sns-ev__img { display: none; }
	.sns-ev__side { grid-column: 1 / -1; }
	.sns-acct__grid { grid-template-columns: 1fr; }
	.sns-acct__nav { position: static; flex-direction: row; overflow-x: auto; }
	.sns-acct__nav button span, .sns-acct__nav a span { white-space: nowrap; }
	.sns-acct__logout { border: 0 !important; margin: 0; }
}
@media (max-width: 700px) {
	body.sns-canvas { font-size: 16px; }
	.sns-header__in { min-height: 64px; }
	.sns-logo img { width: 70px; height: 70px; margin-bottom: -16px; }
	.sns-is-home .sns-logo img { width: 90px; height: 90px; margin-bottom: -36px; }
	.sns-hero { min-height: 280px; padding: 40px 16px 90px; }
	.sns-hero__title, .sns-hero__title.sm { font-size: 52px; }
	.sns-hero__title span { white-space: normal; }
	.sns-hero__heart { width: 50px; height: 50px; margin-top: -20px; }
	.sns-hero__sub { font-size: 26px; }
	.sns-homehero { min-height: 560px; padding: 90px 16px 120px; }
	.sns-homehero__title { font-size: 56px; }
	.sns-homehero__heart { width: 60px; height: 60px; margin-bottom: 14px; }
	.sns-homehero__sub { font-size: 28px; }
	.sns-homehero__btns { gap: 14px; }
	.sns-btn--lg { font-size: 19px; padding: 13px 24px; }
	.sns-features__row { grid-template-columns: 1fr 1fr; row-gap: 20px; }
	.sns-feature:nth-child(3)::before { display: none; }
	.sns-feature h3 { font-size: 18px; }
	.sns-price { padding: 18px; }
	.sns-price__head h3 { font-size: 21px; }
	.sns-price__amt { font-size: 24px; }
	.sns-checks li { font-size: 17px; }
	.sns-results__row { justify-content: center; text-align: center; }
	.sns-results__txt .sns-script-pink { font-size: 46px; white-space: normal; }
	.sns-underline { margin-left: auto; margin-right: auto; }
	.sns-script-title { font-size: 36px; }
	.sns-script-pink { font-size: 44px; }
	.sns-brush { font-size: 28px; padding: 16px 30px; }
	.sns-brush--lg { font-size: 32px; padding: 20px 36px; }
	.sns-brush--xl { font-size: 38px; padding: 22px 38px; }
	.sns-brush--xxl { font-size: 56px; padding: 20px 46px; }
	.sns-brushlist span { font-size: 22px; }
	.sns-cards5__row, .sns-polas__row { grid-template-columns: 1fr 1fr; gap: 14px; }
	.sns-pcard__img { height: 130px; }
	.sns-pcard__title { font-size: 17px; }
	.sns-polaroid--card figcaption { font-size: 20px; }
	.sns-polaroid__img { height: 140px; }
	.sns-finder__row { grid-template-columns: 1fr; }
	.sns-finder__search h2 { font-size: 26px; }
	.sns-joinstrip__a, .sns-joinstrip__price { border: 0; padding: 0; }
	.sns-joinstrip__price strong { font-size: 80px; }
	.sns-mtoday__row { gap: 26px; }
	.sns-testi { flex-basis: 100%; }
	.sns-iconstrip__row { flex-wrap: wrap; row-gap: 20px; }
	.sns-iconstrip__row > div { flex-basis: 33%; }
	.sns-iconstrip__row > div::before, .sns-iconstrip__leaf { display: none; }
	.sns-iconstrip__row h3 { font-size: 16px; }
	.sns-deskcal { width: 100%; max-width: 300px; }
	.sns-evcal__txt h2 { font-size: 30px; }
	.sns-fullcal { padding: 12px; }
	.sns-fullcal__grid { gap: 3px; }
	.sns-fullcal__day { min-height: 56px; padding: 3px; font-size: 11px; }
	.sns-fullcal__ev { font-size: 0; height: 8px; padding: 0; }
	.sns-contact__form { padding: 22px 18px; }
	.sns-contact__form h2 { font-size: 26px; }
	.sns-form__row, .sns-form__row.three, .sns-plans, .sns-twocol, .sns-ov { grid-template-columns: 1fr; }
	.sns-band { gap: 10px; }
	.sns-band__txt { font-size: 26px; text-align: center; }
	.sns-band__ic .sns-ic { width: 26px; height: 26px; }
	.sns-panel { padding: 20px 16px; }
	.sns-stats { grid-template-columns: 1fr 1fr; }
	.sns-auth__card { padding: 22px 18px; }
	.sns-unitrow select { flex-basis: 90px; }
}

/* Approved homepage rebuild – isolated from legacy V5 styles */
:root{--sns-pink:#ed007d;--sns-pink-d:#b90062;--sns-pink-l:#ffd6eb;--sns-pink-xl:#fff2f8;--sns-green:#48a414;--sns-green-d:#287b00;--sns-lime:#a9e132}
.sns-approved-hero{min-height:495px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 14% 34%,#fff 0%,#ffe5f2 43%,#c4e878 100%)}
.sns-approved-hero__photo{position:absolute;z-index:-1;right:0;top:0;bottom:0;width:62%;background-image:url('../img/hero-friends-reference.jpg');background-size:cover;background-position:center center;mask-image:linear-gradient(90deg,transparent 0%,#000 22%)}
.sns-approved-hero__inner{min-height:495px;display:flex;align-items:center}
.sns-approved-hero__copy{position:relative;z-index:2;width:min(55%,650px);padding:55px 0 85px;text-shadow:0 2px 12px #fff}
.sns-approved-hero__welcome{font:normal clamp(42px,5.3vw,78px)/1 var(--sns-script);color:var(--sns-green-d);display:block;margin-left:90px}
.sns-approved-hero h1{font:normal clamp(60px,7vw,106px)/.92 var(--sns-script);color:var(--sns-pink-d);margin:0 0 18px!important;white-space:nowrap;text-shadow:0 2px 2px #fff,0 4px 8px #f7a9cd}
.sns-approved-hero h1 span{color:var(--sns-pink)}
.sns-approved-hero__copy>p{font-size:clamp(20px,2vw,29px);line-height:1.2;color:#202020;text-align:center;max-width:520px}
.sns-approved-hero__actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.sns-approved-hero__actions .sns-btn{font-size:19px;padding:13px 25px}
.sns-approved-hero__ribbon{position:absolute;bottom:0;left:-3%;width:106%;height:48px;background:linear-gradient(175deg,transparent 10%,#ff9acb 12%,#f40087 34%,#fff 39%,#a3d94d 48%,#fff 53%,#ffacd3 65%,#e90078 82%,transparent 86%);transform:rotate(-1deg)}
.sns-approved-benefits{background:#fff8fc;padding:23px 0 29px}
.sns-approved-benefits__row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sns-approved-benefits__row>div{display:flex;align-items:center;justify-content:center;gap:17px;border-right:1px solid #efbed3}
.sns-approved-benefits__row>div:last-child{border:0}
.sns-approved-benefits__row span{font-size:55px;line-height:1;color:var(--sns-pink)}
.sns-approved-benefits__row p{margin:0}.sns-approved-benefits__row strong{display:block;font-size:21px;color:#151515}.sns-approved-benefits__row small{display:block;font-size:15px;color:#252525}
.sns-approved-memberships{background:radial-gradient(circle at 20% 20%,#ffafd6,#fff0f8 60%,#ffd2e9);padding:34px 0 55px}
.sns-approved-memberships h2{text-align:center;color:var(--sns-green-d);font:normal clamp(42px,5vw,72px)/1.1 var(--sns-script);margin:0 0 28px}.sns-approved-memberships h2 span{color:var(--sns-pink)}
.sns-approved-memberships__grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;align-items:stretch}
.sns-approved-card{border:6px solid #fff;border-radius:34px;box-shadow:0 8px 18px #e97da548,inset 0 0 0 2px #ffb2d2;text-align:center;padding:25px 20px 20px;display:flex;flex-direction:column;align-items:center;text-decoration:none!important;color:#202020!important;transition:transform .2s}
.sns-approved-card:hover{transform:translateY(-4px)}.sns-approved-card--group{background:linear-gradient(150deg,#fff,#d3f2a5)}.sns-approved-card--online{background:linear-gradient(150deg,#fff,#f9b3d5)}
.sns-approved-card h3{font-size:24px;color:var(--sns-green-d)}.sns-approved-card--online h3{color:var(--sns-pink-d)}
.sns-approved-card__price{font-size:42px;font-weight:900;color:var(--sns-pink-d)}.sns-approved-card__price small{font-size:17px}
.sns-approved-card p{font-size:16px;line-height:1.35;flex:1}.sns-approved-card__cta{background:linear-gradient(#ff339c,#bd0065);color:white;border:2px solid white;box-shadow:0 4px 12px #af407b80;border-radius:30px;padding:8px 27px;font-weight:900}
.sns-approved-memberships__checks{display:flex;flex-direction:column;justify-content:center;font-size:18px}.sns-approved-memberships__checks p{margin:7px 0}.sns-approved-memberships__checks p::first-letter{color:var(--sns-green-d)}
@media(max-width:900px){.sns-approved-hero__copy{width:65%}.sns-approved-hero__photo{width:65%}.sns-approved-memberships__grid{grid-template-columns:1fr 1fr}.sns-approved-memberships__checks{grid-column:1/-1;align-items:center}}
@media(max-width:650px){.sns-approved-hero{min-height:650px}.sns-approved-hero__inner{min-height:650px;align-items:flex-end}.sns-approved-hero__photo{width:100%;height:55%;bottom:auto;mask-image:linear-gradient(180deg,#000 65%,transparent 100%)}.sns-approved-hero__copy{width:100%;padding:0 0 80px;text-align:center}.sns-approved-hero__welcome{margin-left:0}.sns-approved-hero h1{white-space:normal;font-size:64px}.sns-approved-hero__actions{justify-content:center}.sns-approved-benefits__row,.sns-approved-memberships__grid{grid-template-columns:1fr}.sns-approved-benefits__row>div{border-right:0;border-bottom:1px solid #efbed3;padding-bottom:12px}.sns-approved-memberships__checks{grid-column:auto;align-items:flex-start}}

/* V1.0.2 – official logo and coordinated glossy brand treatment */
.sns-logo img, .sns-footer__logo { object-fit: contain; border-radius: 50%; }
.sns-header { background: linear-gradient(180deg,#fff 0%,#fff5fa 100%); }
.sns-nav ul a.is-active, .sns-btn--pink { background: linear-gradient(180deg,#ff65b5 0%,#ed007d 52%,#b9005c 100%); }
.sns-btn--green { background: linear-gradient(180deg,#a9e132 0%,#398d12 52%,#145d16 100%); }
.sns-login-btn { border-color: #398d12; color:#145d16; }
.sns-approved-hero__welcome { color:#398d12; }
.sns-approved-hero__copy h1 { color:#ed007d; }

/* Cinematic five-slide homepage hero — v1.0.3 */
.sns-cinema{position:relative;overflow:hidden;min-height:560px;background:#fff1f7;isolation:isolate}.sns-cinema__track{position:relative;height:560px}.sns-cinema__slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.2s ease,visibility 1.2s;overflow:hidden}.sns-cinema__slide.is-active{opacity:1;visibility:visible;z-index:1}.sns-cinema__photo{position:absolute;inset:0;background-position:76% 48%;background-size:cover;transform:scale(1.08);transition:transform 8s linear}.sns-cinema__slide.is-active .sns-cinema__photo{transform:scale(1)}.sns-cinema__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,247,251,.98) 0%,rgba(255,247,251,.93) 32%,rgba(255,247,251,.42) 57%,rgba(255,247,251,.02) 100%)}.sns-cinema__slide:nth-child(2) .sns-cinema__veil{background:linear-gradient(90deg,rgba(244,255,238,.98),rgba(244,255,238,.9) 35%,transparent 80%)}.sns-cinema__slide:nth-child(3) .sns-cinema__veil{background:linear-gradient(90deg,rgba(255,240,249,.98),rgba(255,240,249,.9) 35%,transparent 80%)}.sns-cinema__slide:nth-child(4) .sns-cinema__veil{background:linear-gradient(90deg,rgba(241,255,235,.98),rgba(241,255,235,.9) 35%,transparent 80%)}.sns-cinema__content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;height:100%;padding-top:36px;padding-bottom:70px;max-width:1180px}.sns-cinema__eyebrow{font-family:'Great Vibes','Dancing Script',cursive;color:#398d12;font-size:clamp(36px,5vw,66px);line-height:1.15}.sns-cinema h1{font-family:'Dancing Script',cursive;font-size:clamp(54px,7vw,96px);color:#ed007d;line-height:1.06;margin:4px 0 20px;text-shadow:0 2px 0 #fff}.sns-cinema p{font-size:clamp(18px,2vw,25px);font-weight:800;max-width:490px;color:#385038;line-height:1.5;margin:0 0 28px}.sns-cinema__actions{display:flex;flex-wrap:wrap;gap:14px}.sns-cinema__content>*{transition:opacity .7s ease,transform .7s ease;opacity:0;transform:translateY(22px)}.sns-cinema__slide.is-active .sns-cinema__content>*{opacity:1;transform:translateY(0)}.sns-cinema__slide.is-active .sns-cinema__content>:nth-child(2){transition-delay:.15s}.sns-cinema__slide.is-active .sns-cinema__content>:nth-child(3){transition-delay:.3s}.sns-cinema__slide.is-active .sns-cinema__content>:nth-child(4){transition-delay:.45s}.sns-cinema__arrow{position:absolute;z-index:4;top:48%;transform:translateY(-50%);border:0;border-radius:50%;width:45px;height:45px;background:rgba(255,255,255,.88);color:#ed007d;box-shadow:0 3px 16px #6d245033;cursor:pointer;font-size:22px}.sns-cinema__arrow--prev{left:12px}.sns-cinema__arrow--next{right:12px}.sns-cinema__dots{position:absolute;z-index:4;bottom:23px;left:50%;transform:translateX(-50%);display:flex;gap:10px}.sns-cinema__dot{width:11px;height:11px;border:0;border-radius:20px;background:#ffffffbd;box-shadow:0 1px 5px #0004;cursor:pointer;padding:0}.sns-cinema__dot.is-active{background:#ed007d;width:32px}.sns-cinema__pause{position:absolute;z-index:4;bottom:15px;right:20px;border:0;border-radius:20px;background:#fff;color:#b9005c;cursor:pointer;padding:7px 12px}.sns-cinema button:focus-visible{outline:3px solid #398d12;outline-offset:3px}@media(max-width:700px){.sns-cinema,.sns-cinema__track{height:610px;min-height:610px}.sns-cinema__photo{background-position:60% center}.sns-cinema__veil,.sns-cinema__slide:nth-child(n) .sns-cinema__veil{background:linear-gradient(180deg,rgba(255,247,251,.97) 0%,rgba(255,247,251,.9) 50%,rgba(255,247,251,.24) 100%)}.sns-cinema__content{justify-content:flex-start;padding:64px 42px 70px}.sns-cinema__eyebrow{font-size:44px}.sns-cinema h1{font-size:60px}.sns-cinema p{font-size:18px}.sns-cinema__arrow{width:32px;height:32px;font-size:16px}.sns-cinema__arrow--prev{left:4px}.sns-cinema__arrow--next{right:4px}}@media(prefers-reduced-motion:reduce){.sns-cinema__slide,.sns-cinema__photo,.sns-cinema__content>*{transition:none!important;transform:none!important}}

/* v1.0.4 — prevent oversized home logo covering content on sticky scroll */
.sns-header .sns-logo img,
.sns-is-home .sns-header .sns-logo img {
  display:block; width:82px; height:82px; max-width:82px; max-height:82px;
  margin:0; object-fit:contain; border-radius:50%;
}
.sns-header .sns-header__in { min-height:0; }
@media (max-width:700px) {
  .sns-header .sns-logo img,
  .sns-is-home .sns-header .sns-logo img {
    width:58px; height:58px; max-width:58px; max-height:58px; margin:0;
  }
}

/* v1.0.5: approved blush-pink to fresh-green glossy navigation header */
.sns-header {
  background: linear-gradient(110deg, #f9d5e5 0%, #fceaf2 33%, #f5f9ed 64%, #d8edc7 100%);
  box-shadow: 0 3px 18px rgba(48, 107, 35, .12), inset 0 1px 0 rgba(255,255,255,.85);
}
.sns-nav ul a { color: #245d1c; }
.sns-nav ul a:hover { background: rgba(255,255,255,.55); color: #b9005c; }
@media (max-width: 900px) {
 .sns-header .sns-nav { background: linear-gradient(125deg,#fff0f6 0%,#e7f3da 100%); }
}

/* v1.0.6 — ensure full-size carousel displays below navigation on every page width. */
body.sns-is-home .sns-cinema {display:block!important;position:relative!important;min-height:560px!important;height:560px!important;max-height:none!important;overflow:hidden!important;clear:both;}
body.sns-is-home .sns-cinema__track {display:block!important;position:relative!important;height:560px!important;min-height:560px!important;max-height:none!important;overflow:hidden!important;}
body.sns-is-home .sns-cinema__slide {position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:560px!important;}
body.sns-is-home .sns-cinema__photo {inset:0!important;width:100%!important;height:100%!important;}
body.sns-is-home .sns-cinema__content {box-sizing:border-box!important;min-height:560px!important;height:100%!important;}
body.sns-is-home .sns-approved-benefits {position:relative;clear:both;}
@media(max-width:700px){body.sns-is-home .sns-cinema,body.sns-is-home .sns-cinema__track,body.sns-is-home .sns-cinema__slide,body.sns-is-home .sns-cinema__content{height:610px!important;min-height:610px!important;}}

/* 1.0.7: Separate welcome hero above the animated carousel, both before benefits. */
body.sns-is-home .sns-approved-hero{display:block!important;position:relative!important;min-height:495px!important;height:auto!important;overflow:hidden!important;clear:both;background-color:#fff9fc;}
body.sns-is-home .sns-approved-hero__inner{min-height:495px!important;}
body.sns-is-home .sns-approved-hero + .sns-cinema{margin-top:0!important;clear:both!important;}
@media(max-width:650px){body.sns-is-home .sns-approved-hero{min-height:650px!important;}body.sns-is-home .sns-approved-hero__inner{min-height:650px!important;}}

/* v1.0.8: Carousel occupies the former white benefits band, directly after welcome hero. */
body.sns-is-home .sns-approved-hero + .sns-cinema {background:#fff!important;border-top:0!important;border-bottom:0!important;}

/* v1.0.9 — compact secondary carousel in the former benefits band. */
body.sns-is-home .sns-approved-hero + .sns-cinema {box-sizing:border-box!important;width:calc(100% - 48px)!important;max-width:1100px!important;margin:24px auto 34px!important;border-radius:22px!important;box-shadow:0 8px 28px rgba(76,35,60,.12)!important;height:320px!important;min-height:320px!important;max-height:320px!important;overflow:hidden!important;}
body.sns-is-home .sns-cinema__track,body.sns-is-home .sns-cinema__slide {height:320px!important;min-height:320px!important;max-height:320px!important;}
body.sns-is-home .sns-cinema__content {height:320px!important;min-height:320px!important;padding:22px 70px 40px!important;box-sizing:border-box!important;}
body.sns-is-home .sns-cinema__eyebrow{font-size:clamp(26px,3vw,38px)!important;}
body.sns-is-home .sns-cinema h1{font-size:clamp(38px,4.5vw,58px)!important;margin:0 0 8px!important;}
body.sns-is-home .sns-cinema p{font-size:clamp(14px,1.5vw,18px)!important;max-width:440px!important;margin:0 0 14px!important;}
body.sns-is-home .sns-cinema .sns-btn{font-size:13px!important;padding:10px 18px!important;}
body.sns-is-home .sns-cinema__photo{background-position:75% center!important;}
body.sns-is-home .sns-cinema__dots{bottom:12px!important;}
body.sns-is-home .sns-cinema__pause{bottom:8px!important;font-size:11px!important;}
@media(max-width:700px){
 body.sns-is-home .sns-approved-hero + .sns-cinema{width:calc(100% - 24px)!important;height:350px!important;min-height:350px!important;max-height:350px!important;margin:16px auto 26px!important;border-radius:16px!important;}
 body.sns-is-home .sns-cinema__track,body.sns-is-home .sns-cinema__slide{height:350px!important;min-height:350px!important;max-height:350px!important;}
 body.sns-is-home .sns-cinema__content{height:350px!important;min-height:350px!important;padding:26px 36px 55px!important;justify-content:center!important;}
 body.sns-is-home .sns-cinema__eyebrow{font-size:29px!important;}
 body.sns-is-home .sns-cinema h1{font-size:42px!important;}
 body.sns-is-home .sns-cinema p{font-size:15px!important;line-height:1.35!important;}
 body.sns-is-home .sns-cinema__photo{background-position:65% center!important;}
 body.sns-is-home .sns-cinema__actions{gap:7px!important;}
 body.sns-is-home .sns-cinema .sns-btn{font-size:12px!important;padding:9px 12px!important;}
}

/* v1.1.0 cinematic photo backgrounds; keep compact carousel placement */
body.sns-is-home .sns-cinema--new .sns-cinema__photo{background-position:center center!important;background-size:cover!important;transform:scale(1.03);transition:transform 7s ease-out,opacity 1s ease!important;}
body.sns-is-home .sns-cinema--new .sns-cinema__slide.is-active .sns-cinema__photo{animation:snsCinematicPan 7s ease-in-out both;}
@keyframes snsCinematicPan{from{transform:scale(1.02) translateX(0)}to{transform:scale(1.12) translateX(-1.5%)}}
body.sns-is-home .sns-cinema--new .sns-cinema__veil{background:linear-gradient(90deg,rgba(22,7,21,.42),transparent 75%)!important;}
body.sns-is-home .sns-cinema--new .sns-cinema__eyebrow{font-family:Georgia,serif;font-style:italic;font-size:clamp(26px,3vw,40px)!important;color:#fff!important;text-shadow:0 2px 15px #ed007d;}
body.sns-is-home .sns-cinema--new h2{font-family:Georgia,serif;font-style:italic;font-size:clamp(34px,4.3vw,56px)!important;line-height:1.04!important;color:#fff!important;text-shadow:0 2px 18px #ed007d;margin:0 0 9px!important;}
body.sns-is-home .sns-cinema--new p{color:#fff!important;text-shadow:0 2px 8px #170b14!important;max-width:430px!important;}
@media(prefers-reduced-motion:reduce){body.sns-is-home .sns-cinema--new .sns-cinema__slide.is-active .sns-cinema__photo{animation:none!important;transform:none!important}}

/* Stage 1: approved complete welcome banner, no duplicated navigation logo. */
.sns-stage1-hero { display:block; width:100%; margin:0; padding:0; background:#fff8fb; overflow:hidden; }
.sns-stage1-hero img { display:block; width:100%; height:auto; max-width:none; object-fit:contain; }
.sns-header__in { justify-content:flex-end; }
@media(max-width:650px) { .sns-stage1-hero { overflow:hidden; } .sns-stage1-hero img { width:100%; height:auto; } }
