/* =========================================================
   AIRBANK Air Sign – main stylesheet
   ========================================================= */
:root {
	--ab-primary: #e83a4c;
	--ab-bg: #fcf9ee;
	--ab-fg: #2b1a10;
	--ab-muted: #f2ecdc;
	--ab-muted-fg: #6c5545;
	--ab-border: #ece4cc;
	--ab-pink: #ec4899;
	--ab-pink6: #db2777;
	--ab-pink7: #be185d;
	--ab-orange: #f97316;
	--ab-red: #ef4444;
	--ab-yellow: #eab308;
	--ab-amber: #f59e0b;
	--ab-emerald: #10b981;
	--ab-sky: #0ea5e9;
	--ab-teal: #14b8a6;
	--ab-purple: #a855f7;
	--ab-violet: #8b5cf6;
	--ab-blue: #3b82f6;
	--ab-line: #06c755;
	--ab-slate: #1e293b;
	--ab-radius: 1.25rem;
	--ab-font: 'BIZ UDPGothic', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
	--ab-grad-btn: linear-gradient(90deg, var(--ab-pink), var(--ab-orange));
	--ab-grad-hero: linear-gradient(90deg, var(--ab-pink), var(--ab-red), var(--ab-yellow));
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 130px; }
body.ab-body {
	margin: 0;
	font-family: var(--ab-font);
	color: var(--ab-fg);
	background-color: var(--ab-bg);
	background-image: radial-gradient(var(--ab-border) 1.5px, transparent 1.5px);
	background-size: 24px 24px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img, video { max-width: 100%; height: auto; }
a { color: var(--ab-pink6); }
h1, h2, h3, h4 { font-family: var(--ab-font); font-weight: 700; line-height: 1.35; color: var(--ab-fg); margin: 0; }
p { margin: 0; }
.ab-i { width: 1em; height: 1em; flex-shrink: 0; }

.ab-container { width: 100%; max-width: 1280px; margin-left: auto; margin-right: auto; padding-left: 1rem; padding-right: 1rem; }
@media (min-width: 640px) { .ab-container { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (min-width: 1024px) { .ab-container { padding-left: 2rem; padding-right: 2rem; } }
.ab-container--md { max-width: 960px; }

/* ---------- Buttons ---------- */
.ab-btn, .wp-block-button.is-style-ab-grad .wp-block-button__link, .wp-block-button.is-style-ab-outline .wp-block-button__link, .wp-block-button.is-style-ab-line .wp-block-button__link, .ab-submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	font-family: var(--ab-font); font-weight: 700; text-decoration: none; line-height: 1.3;
	border-radius: 999px; padding: 1rem 2rem; font-size: 1rem; cursor: pointer;
	transition: transform .2s, box-shadow .2s, filter .2s;
}
.ab-btn--grad, .wp-block-button.is-style-ab-grad .wp-block-button__link, .ab-submit {
	background: var(--ab-grad-btn); color: #fff; border: 0; border-bottom: 4px solid rgba(0, 0, 0, .2);
	box-shadow: 0 10px 15px -3px rgba(236, 72, 153, .3);
}
.ab-btn--grad:hover, .wp-block-button.is-style-ab-grad .wp-block-button__link:hover, .ab-submit:hover { transform: scale(1.04); box-shadow: 0 20px 25px -5px rgba(236, 72, 153, .35); color: #fff; filter: brightness(1.04); }
.ab-btn--grad:active, .wp-block-button.is-style-ab-grad .wp-block-button__link:active, .ab-submit:active { transform: scale(.96); }
.wp-block-button.is-style-ab-outline .wp-block-button__link { background: #fff; color: var(--ab-pink6); border: 2px solid var(--ab-pink); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1); }
.wp-block-button.is-style-ab-outline .wp-block-button__link:hover { background: #fdf2f8; }
.wp-block-button.is-style-ab-line .wp-block-button__link { background: var(--ab-line); color: #fff; border-radius: 1rem; box-shadow: 0 10px 15px -3px rgba(6, 199, 85, .3); }
.wp-block-button.is-style-ab-line .wp-block-button__link::before {
	content: ""; width: 1.5rem; height: 1.5rem; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 5.92 2 10.72c0 2.94 1.6 5.56 4.1 7.28-.18.66-.66 2.38-.76 2.76-.12.46.17.46.36.33.15-.1 1.96-1.32 2.76-1.87.47.07.95.11 1.54.11 5.52 0 10-3.92 10-8.72C22 5.92 17.52 2 12 2z'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 5.92 2 10.72c0 2.94 1.6 5.56 4.1 7.28-.18.66-.66 2.38-.76 2.76-.12.46.17.46.36.33.15-.1 1.96-1.32 2.76-1.87.47.07.95.11 1.54.11 5.52 0 10-3.92 10-8.72C22 5.92 17.52 2 12 2z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.wp-block-button.is-style-ab-line .wp-block-button__link:hover { background: #05b34c; transform: scale(1.03); }

/* ---------- Header ---------- */
.ab-header { position: sticky; top: 0; z-index: 40; background: rgba(255, 255, 255, .95); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 2px solid rgba(232, 58, 76, .2); box-shadow: 0 1px 2px rgba(0, 0, 0, .05); }
body.admin-bar .ab-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ab-header { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .ab-header { top: 0; } }
.ab-topbar { background: linear-gradient(90deg, #f8fafc, #f1f5f9); border-bottom: 1px solid rgba(226, 232, 240, .6); padding: .4rem 0; font-size: .75rem; font-weight: 700; color: #475569; }
.ab-topbar-in { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.ab-topbar-msg { display: flex; align-items: center; gap: .5rem; }
.ab-dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--ab-emerald); animation: ab-pulse 2s infinite; }
.ab-topbar-tel { display: inline-flex; align-items: center; gap: .35rem; color: var(--ab-pink6); text-decoration: none; transition: transform .2s; white-space: nowrap; }
.ab-topbar-tel:hover { transform: scale(1.05); }
.ab-topbar-tel strong { font-size: .875rem; font-weight: 700; }
.ab-topbar-tel .ab-i { color: var(--ab-pink); }
.ab-topbar-hours { font-size: 10px; color: #64748b; font-weight: 400; }
@media (max-width: 639px) { .ab-topbar-hours { display: none; } .ab-topbar-msg { font-size: 11px; } }

.ab-mainbar { padding: .6rem 0; }
@media (min-width: 768px) { .ab-mainbar { padding: .75rem 0; } }
.ab-mainbar-in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ab-logo { flex-shrink: 0; display: block; transition: transform .3s; }
.ab-logo:hover { transform: scale(1.03); }
.ab-logo img { display: block; height: 2rem; width: auto; object-fit: contain; }
@media (min-width: 640px) { .ab-logo img { height: 2.4rem; } }
@media (min-width: 768px) { .ab-logo img { height: 2.75rem; } }

.ab-nav { display: none; margin: 0 auto; }
@media (min-width: 768px) { .ab-nav { display: block; } }
.ab-nav-list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 1rem; }
@media (min-width: 1024px) { .ab-nav-list { gap: 1.5rem; } }
.ab-nav-list a { display: flex; align-items: center; gap: .25rem; padding: .5rem 0; font-size: .875rem; font-weight: 700; color: #334155; text-decoration: none; white-space: nowrap; border-bottom: 2px solid transparent; transition: color .2s, border-color .2s; }
.ab-nav-list a:hover { color: var(--ab-primary); }
.ab-nav-list .ab-i { width: 1rem; height: 1rem; }
.ab-c-orange .ab-i { color: var(--ab-orange); } .ab-c-orange a:hover { border-color: var(--ab-orange); }
.ab-c-purple .ab-i { color: var(--ab-purple); } .ab-c-purple a:hover { border-color: var(--ab-purple); }
.ab-c-red .ab-i { color: var(--ab-red); } .ab-c-red a:hover { border-color: var(--ab-red); }
.ab-c-pink .ab-i { color: var(--ab-pink); } .ab-c-pink a:hover { border-color: var(--ab-pink); }
.ab-c-yellow .ab-i { color: var(--ab-yellow); } .ab-c-yellow a:hover { border-color: var(--ab-yellow); }
.ab-c-teal .ab-i { color: var(--ab-teal); } .ab-c-teal a:hover { border-color: var(--ab-teal); }

.ab-head-actions { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }
.ab-head-cta { padding: .85rem 1rem; font-size: .75rem; }
@media (min-width: 640px) { .ab-head-cta { padding: 1rem 1.5rem; font-size: .875rem; } }
@media (min-width: 768px) { .ab-head-cta { padding: 1rem 2rem; font-size: 1rem; } }
.ab-burger { display: inline-flex; padding: .5rem; border: 0; background: transparent; color: #334155; border-radius: .5rem; cursor: pointer; }
.ab-burger .ab-i { width: 1.5rem; height: 1.5rem; }
.ab-burger:hover { background: #f1f5f9; color: var(--ab-primary); }
@media (min-width: 768px) { .ab-burger { display: none; } }
.ab-drawer { border-top: 1px solid #e2e8f0; background: #fff; padding: 1rem; box-shadow: inset 0 2px 4px rgba(0, 0, 0, .05); animation: ab-fade .2s; }
.ab-drawer[hidden] { display: none; }
@media (min-width: 768px) { .ab-drawer { display: none !important; } }
.ab-drawer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.ab-drawer-list a { display: flex; align-items: center; gap: .75rem; padding: .75rem; border-radius: .75rem; font-weight: 700; color: #334155; text-decoration: none; }
.ab-drawer-list a:hover { background: #fff7ed; }
.ab-drawer-list .ab-i { width: 1.25rem; height: 1.25rem; }

/* ---------- Section common ---------- */
/* クラシックテーマではグループに内側ラッパーが付くため、レイアウト上は無視する */
.wp-block-group > .wp-block-group__inner-container { display: contents; }
.ab-main { display: block; }
.ab-front > * { margin-top: 0; margin-bottom: 0; }
.ab-section { position: relative; padding: 4rem 0; margin: 0; }
@media (min-width: 768px) { .ab-section { padding: 6rem 0; } }
.ab-sechead { max-width: 48rem; margin: 0 auto 3rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.ab-sechead h2 { font-size: 1.5rem; letter-spacing: -.01em; }
@media (min-width: 640px) { .ab-sechead h2 { font-size: 1.875rem; } }
@media (min-width: 768px) { .ab-sechead h2 { font-size: 2.25rem; } }
.ab-sechead p:not(.ab-badge) { color: var(--ab-muted-fg); font-size: .875rem; font-weight: 500; }
@media (min-width: 640px) { .ab-sechead p:not(.ab-badge) { font-size: 1rem; } }
.ab-badge { display: inline-block; color: #fff; font-size: .75rem; font-weight: 700; padding: .25rem 1rem; border-radius: 999px; box-shadow: 0 1px 2px rgba(0, 0, 0, .1); letter-spacing: .02em; background: var(--ab-grad-btn); }
.ab-badge--bluteal { background: linear-gradient(90deg, var(--ab-blue), var(--ab-teal)); }
.ab-badge--purple { background: linear-gradient(90deg, var(--ab-pink), var(--ab-purple), #6366f1); }
.ab-badge--orange { background: linear-gradient(90deg, var(--ab-orange), var(--ab-pink)); }
.ab-badge--pinkyellow { background: linear-gradient(90deg, var(--ab-pink), var(--ab-yellow)); }
.ab-badge--purplepink { background: linear-gradient(90deg, var(--ab-purple), var(--ab-pink)); }
.ab-badge--pinkorange { background: linear-gradient(90deg, var(--ab-pink), var(--ab-orange)); }

.ab-grid { display: grid; gap: 2rem; text-align: left; }
.ab-grid > * { margin: 0 !important; }
@media (min-width: 768px) { .ab-grid-2 { grid-template-columns: repeat(2, 1fr); } .ab-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ab-grid-3 { grid-template-columns: repeat(3, 1fr); } .ab-grid-4 { grid-template-columns: repeat(4, 1fr); } }
.ab-steps { }
@media (min-width: 768px) { .ab-steps.ab-grid-4 { grid-template-columns: repeat(4, 1fr); } }
.ab-narrow { max-width: 48rem; margin-left: auto; margin-right: auto; }

/* ---------- Hero ---------- */
.wp-block-cover.ab-hero { position: relative; overflow: hidden; padding: 3rem 0 7rem; min-height: 0 !important; align-items: center; justify-content: stretch; margin: 0; }
@media (min-width: 768px) { .wp-block-cover.ab-hero { padding: 5rem 0; } }
@media (min-width: 1024px) { .wp-block-cover.ab-hero { padding: 6rem 0; } }
.ab-hero .wp-block-cover__inner-container { width: 100% !important; max-width: none; color: var(--ab-fg); z-index: 2; }
.ab-hero::before, .ab-hero::after { content: ""; position: absolute; border-radius: 50%; z-index: 1; pointer-events: none; }
.ab-hero::before { top: 2.5rem; left: 2.5rem; width: 12rem; height: 12rem; background: rgba(244, 114, 182, .2); filter: blur(40px); animation: ab-pulse 3s infinite; }
.ab-hero::after { bottom: 2.5rem; right: 2.5rem; width: 18rem; height: 18rem; background: rgba(56, 189, 248, .2); filter: blur(64px); }
.ab-hero-cols { gap: 3rem !important; align-items: center !important; margin: 0 auto !important; }
.ab-hero-text { display: flex; flex-direction: column; gap: 1.5rem; text-align: left; }
.ab-hero-text > * { margin: 0 !important; }
.ab-pill { display: inline-flex; align-items: center; gap: .5rem; width: fit-content; max-width: 100%; background: #fff; border: 2px solid #f472b6; border-radius: 999px; padding: .375rem 1rem; font-size: .75rem; font-weight: 700; color: var(--ab-pink6); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1); }
@media (min-width: 768px) { .ab-pill { font-size: .875rem; } }
.ab-pill::before { content: "🎉"; font-size: .9em; animation: ab-bounce 1s infinite; }
.ab-hero-title { font-size: 1.5rem; letter-spacing: -.02em; line-height: 1.4; }
@media (min-width: 640px) { .ab-hero-title { font-size: 2.25rem; } }
@media (min-width: 768px) { .ab-hero-title { font-size: 3rem; } }
@media (min-width: 1024px) { .ab-hero-title { font-size: 3.75rem; } }
.ab-hero-title em, .ab-grad-text { font-style: normal; background: var(--ab-grad-hero); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ab-hero-lead { font-size: 1rem; color: rgba(43, 26, 16, .8); max-width: 42rem; font-weight: 500; line-height: 1.8; }
@media (min-width: 640px) { .ab-hero-lead { font-size: 1.125rem; } }
.ab-checks { list-style: none; margin: 0; padding: .5rem 0 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.ab-checks li { display: flex; align-items: center; gap: .6rem; font-size: .875rem; font-weight: 700; margin: 0; }
.ab-checks li::before { content: ""; width: 1.75rem; height: 1.75rem; border-radius: 50%; flex-shrink: 0; box-shadow: 0 1px 2px rgba(0, 0, 0, .1);
	background: var(--ab-pink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/1rem no-repeat; }
.ab-checks li:nth-child(4n+2)::before { background-color: var(--ab-amber); }
.ab-checks li:nth-child(4n+3)::before { background-color: var(--ab-emerald); }
.ab-checks li:nth-child(4n+4)::before { background-color: var(--ab-sky); }
.ab-infoboxes { display: grid; gap: .75rem; }
@media (min-width: 640px) { .ab-infoboxes { grid-template-columns: repeat(2, 1fr); } }
.ab-infobox { position: relative; border-radius: 1rem; background: rgba(255, 255, 255, .85); border: 1px solid #fed7aa; padding: .75rem 1rem .75rem 3.25rem; box-shadow: 0 1px 2px rgba(0, 0, 0, .05); backdrop-filter: blur(4px); margin: 0 !important; }
.ab-infobox--budget { border-color: #fbcfe8; }
.ab-infobox::before { content: ""; position: absolute; left: 1rem; top: .8rem; width: 2rem; height: 2rem; border-radius: 50%; background: #ffedd5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea580c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='16' height='20' x='4' y='2' rx='2'/%3E%3Cpath d='M9 22v-4h6v4M8 6h.01M16 6h.01M12 6h.01M12 10h.01M12 14h.01M16 10h.01M16 14h.01M8 10h.01M8 14h.01'/%3E%3C/svg%3E") center/1rem no-repeat; }
.ab-infobox--budget::before { background: #fce7f3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23db2777' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/1rem no-repeat; }
.ab-infobox p { font-size: 11px; color: #475569; font-weight: 500; line-height: 1.6; margin: 0; }
.ab-infobox p.ab-infobox-title { font-size: .75rem; font-weight: 700; color: #1e293b; margin-bottom: .15rem; }
.ab-hero-btns { gap: 1rem !important; padding-top: 1rem; }
.ab-hero-btns .wp-block-button__link { padding: 1.25rem 2rem !important; }
@media (max-width: 639px) { .ab-hero-btns { flex-direction: column; align-items: stretch !important; } .ab-hero-btns .wp-block-button, .ab-hero-btns .wp-block-button__link { width: 100%; } }
.ab-hero-visual { display: flex; justify-content: center; align-items: center; position: relative; }
.ab-hero-visual::before { content: ""; position: absolute; width: 18rem; height: 18rem; border-radius: 50%; background: linear-gradient(45deg, rgba(244, 114, 182, .3), rgba(250, 204, 21, .3)); filter: blur(64px); z-index: -1; animation: ab-pulse 3s infinite; }
@media (min-width: 768px) { .ab-hero-visual::before { width: 24rem; height: 24rem; } }
.ab-hero-img { position: relative; margin: 0 !important; max-width: 400px; border-radius: 1.5rem; overflow: hidden; border: 8px solid #fff; background: #fff; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25); animation: ab-float 3.5s ease-in-out infinite; cursor: zoom-in; }
@media (min-width: 1024px) { .ab-hero-img { max-width: 100%; } }
.ab-hero-img img { display: block; width: 100%; height: auto; }
.ab-hero-img figcaption { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; margin: 0 !important; display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .75rem; border-radius: .75rem; background: linear-gradient(90deg, var(--ab-pink6), var(--ab-orange)); color: #fff; font-size: .75rem; font-weight: 700; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .2); text-align: left; }
.ab-hero-img figcaption::after { content: "クリックで拡大"; font-size: 10px; background: #fff; color: var(--ab-pink6); padding: .1rem .5rem; border-radius: 999px; white-space: nowrap; animation: ab-pulse 2s infinite; }
@media (max-width: 781px) { .ab-hero-cols { flex-wrap: wrap !important; } .ab-hero-cols > .wp-block-column { flex-basis: 100% !important; } }

/* ---------- Products ---------- */
.ab-products { background: linear-gradient(180deg, var(--ab-bg), #fffbeb, #fdf2f8); }
.ab-card { background: #fff; border: 2px solid var(--ab-muted); border-radius: 1.5rem; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .08); transition: box-shadow .3s; }
.ab-card:hover { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .2); }
.ab-card { --ab-bar: linear-gradient(90deg, #fbbf24, var(--ab-orange)); --ab-chip: var(--ab-orange); }
.ab-card--teal { --ab-bar: linear-gradient(90deg, #34d399, var(--ab-teal)); --ab-chip: var(--ab-teal); }
.ab-card--sky { --ab-bar: linear-gradient(90deg, #38bdf8, var(--ab-blue)); --ab-chip: var(--ab-blue); }
.ab-card--violet { --ab-bar: linear-gradient(90deg, #c084fc, var(--ab-violet)); --ab-chip: var(--ab-violet); }
.ab-card--blue { --ab-bar: linear-gradient(90deg, var(--ab-blue), #0891b2); --ab-chip: #2563eb; }
.ab-card--rose { --ab-bar: linear-gradient(90deg, #f472b6, #f43f5e); --ab-chip: #f43f5e; }

/* slider (gallery block) */
.ab-sliderwrap { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ab-muted); }
.ab-sliderwrap::after { content: ""; position: absolute; left: 0; right: 0; bottom: -8px; height: 8px; }
.wp-block-gallery.ab-slider, .wp-block-gallery.has-nested-images.ab-slider { display: flex !important; flex-wrap: nowrap !important; gap: 0 !important; margin: 0 !important; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -ms-overflow-style: none; scrollbar-width: none; aspect-ratio: 4 / 3; }
.ab-slider::-webkit-scrollbar { display: none; }
.wp-block-gallery.has-nested-images.ab-slider figure.wp-block-image:not(#individual-image) { flex: 0 0 100% !important; width: 100% !important; max-width: 100%; height: 100%; margin: 0 !important; scroll-snap-align: start; position: relative; }
.wp-block-gallery.has-nested-images.ab-slider figure.wp-block-image img { width: 100% !important; height: 100% !important; object-fit: cover; cursor: zoom-in; display: block; }
.wp-block-gallery.has-nested-images.ab-slider figure.wp-block-image figcaption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: .5rem .75rem; background: rgba(0, 0, 0, .6) !important; backdrop-filter: blur(4px); color: #fff; font-size: .75rem; font-weight: 500; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-height: none; }
.ab-card .ab-sliderwrap, .ab-card > .wp-block-gallery { border-bottom: 8px solid transparent; border-image: var(--ab-bar) 1; }
.ab-sl-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 2rem; height: 2rem; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2); background: rgba(0, 0, 0, .5); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 3; opacity: 0; transition: opacity .2s, background .2s; padding: 0; }
.ab-sl-btn .ab-i { width: 1rem; height: 1rem; stroke-width: 3; }
.ab-sl-prev { left: .6rem; } .ab-sl-next { right: .6rem; }
.ab-sliderwrap:hover .ab-sl-btn, .ab-sl-btn:focus { opacity: 1; }
.ab-sl-btn:hover { background: var(--ab-pink); }
@media (hover: none) { .ab-sl-btn { opacity: .85; } }
.ab-sl-hint { position: absolute; top: .75rem; right: .75rem; z-index: 2; display: flex; align-items: center; gap: .375rem; background: rgba(0, 0, 0, .75); color: #fff; font-size: 10px; font-weight: 700; padding: .375rem .625rem; border-radius: 999px; pointer-events: none; }
.ab-sl-hint .ab-pulse { animation: ab-pulse 2s infinite; }
.ab-sl-dots { position: absolute; right: .75rem; bottom: 2.5rem; display: flex; gap: .25rem; z-index: 2; }
.ab-sl-dots button { width: .625rem; height: .625rem; border-radius: 50%; padding: 0; background: rgba(255, 255, 255, .5); border: 1px solid rgba(0, 0, 0, .2); cursor: pointer; }
.ab-sl-dots button.is-active { background: #fff; }

.ab-card-body { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; gap: .75rem; }
.ab-card-body > * { margin: 0 !important; }
.ab-card-body h3 { font-size: 1.25rem; letter-spacing: -.01em; }
.ab-height { display: inline-block; width: fit-content; background: var(--ab-chip); color: #fff; font-size: .75rem; font-weight: 700; padding: .15rem .65rem; border-radius: 999px; }
.ab-tagline { font-size: .875rem; color: var(--ab-muted-fg); font-weight: 500; line-height: 1.7; }
.ab-feat-title { border-top: 2px dashed var(--ab-muted); padding-top: 1rem; font-size: .75rem; font-weight: 700; }
.ab-feats { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.ab-feats li { position: relative; padding-left: 1.5rem; font-size: .75rem; color: var(--ab-muted-fg); font-weight: 500; }
.ab-feats li::before { content: ""; position: absolute; left: 0; top: .15rem; width: 1rem; height: 1rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ec4899' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }
.ab-usage { margin-top: auto !important; background: rgba(254, 249, 195, .5); border: 1px solid #fef08a; border-radius: .75rem; padding: .875rem; font-size: .75rem; color: var(--ab-muted-fg); font-weight: 500; }
.ab-usage strong { display: block; color: #7c2d12; margin-bottom: .25rem; }
.ab-card-btn { margin-top: .5rem !important; }
.ab-card-btn .wp-block-button { width: 100%; }
.ab-card-btn .wp-block-button__link { width: 100%; padding: 1rem 1.25rem !important; }

/* ---------- Reproduction gallery ---------- */
.ab-repro { background: linear-gradient(180deg, rgba(255, 251, 235, .5), rgba(250, 245, 255, .5), #fff); }
.ab-ccard { background: #fff; border: 2px solid #f3e8ff; border-radius: 1.5rem; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .08); transition: box-shadow .3s; }
.ab-ccard:hover { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .2); }
.ab-ccard-img { position: relative; margin: 0 !important; aspect-ratio: 2 / 1; overflow: hidden; background: var(--ab-muted); }
.ab-ccard-img img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: zoom-in; transition: transform .5s; }
.ab-ccard:hover .ab-ccard-img img { transform: scale(1.02); }
.ab-ccard-img figcaption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0 !important; display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .5rem 1rem; background: rgba(0, 0, 0, .6); backdrop-filter: blur(2px); color: #fff; font-size: 10px; font-weight: 700; text-align: left; }
@media (min-width: 640px) { .ab-ccard-img figcaption { font-size: .75rem; } }
.ab-ccard-img figcaption::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--ab-pink); flex-shrink: 0; animation: ab-ping 1.4s infinite; }
.ab-ccard-img figcaption::after { content: "クリックで拡大"; margin-left: auto; background: rgba(255, 255, 255, .2); padding: .1rem .5rem; border-radius: 999px; font-size: 10px; white-space: nowrap; }
.ab-ccard-body { padding: 1.5rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.ab-ccard-body > * { margin: 0 !important; }
.ab-chip { display: inline-block; width: fit-content; background: #f3e8ff; color: #7e22ce; border: 1px solid #e9d5ff; border-radius: 999px; font-size: .75rem; font-weight: 700; padding: .1rem .65rem; }
.ab-ccard-body h3 { font-size: 1.125rem; }
@media (min-width: 640px) { .ab-ccard-body h3 { font-size: 1.25rem; } }
.ab-ccard-body p:not(.ab-chip):not(.ab-tip) { font-size: .8125rem; color: var(--ab-muted-fg); font-weight: 500; line-height: 1.75; }
.ab-tip { margin-top: auto !important; display: flex; align-items: center; gap: .5rem; font-size: .75rem; font-weight: 700; color: var(--ab-pink6); background: #fdf2f8; padding: .75rem; border-radius: .75rem; border: 1px solid #fce7f3; }
.ab-tip::before { content: "✨"; }

/* ---------- Videos ---------- */
.ab-videos { background: linear-gradient(180deg, #fff, #fdf2f8); overflow: hidden; }
.ab-videos .ab-grid { margin-bottom: 2rem; }
.ab-vcard { margin: 0 !important; border-radius: 1.5rem; overflow: hidden; border: 4px solid #fff; background: #000; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, .15); }
.ab-vcard .wp-block-embed__wrapper { position: relative; }
.ab-vcard figcaption, .ab-vertical figcaption { margin: 0 !important; padding: 1rem; background: rgba(0, 0, 0, .8); color: rgba(255, 255, 255, .7); font-size: .75rem; text-align: left; font-weight: 500; }
.ab-vcard figcaption strong, .ab-vertical figcaption strong { color: #fff; font-size: .875rem; }
.wp-block-video.ab-vertical { position: relative; margin: 0 !important; border-radius: 1.5rem; overflow: hidden; border: 4px solid #fff; background: #000; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, .15); }
.wp-block-video.ab-vertical video { display: block; width: 100%; aspect-ratio: 9 / 16; object-fit: cover; background: #000; }
.wp-block-video.ab-vertical figcaption { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(0deg, rgba(0, 0, 0, .8), transparent); pointer-events: none; padding-bottom: 3.5rem; }
.ab-center-btns { justify-content: center; }
.ab-center-btns .wp-block-button__link { padding: 1.25rem 2.5rem !important; }

/* ---------- Features ---------- */
.ab-features { background: #fff; }
.ab-fcard { background: var(--ab-bg); border: 2px solid var(--ab-muted); border-radius: 1rem; padding: 1.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .08); display: flex; flex-direction: column; gap: 1rem; transition: border-color .3s, box-shadow .3s; }
.ab-fcard:hover { border-color: rgba(232, 58, 76, .5); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, .1); }
.ab-fcard > * { margin: 0 !important; }
.ab-fcard::before { content: ""; width: 3rem; height: 3rem; border-radius: 1rem; border: 1px solid #fde68a; background-color: #fef3c7; background-position: center; background-repeat: no-repeat; background-size: 1.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .08); }
.ab-ico-zap::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d97706' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z'/%3E%3C/svg%3E"); }
.ab-ico-bulb::before { background-color: #dbeafe; border-color: #bfdbfe; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5'/%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 22h4'/%3E%3C/svg%3E"); }
.ab-ico-shield::before { background-color: #d1fae5; border-color: #a7f3d0; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.ab-ico-sparkles::before { background-color: #fce7f3; border-color: #fbcfe8; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23db2777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3-1.9 5.8a2 2 0 0 1-1.3 1.3L3 12l5.8 1.9a2 2 0 0 1 1.3 1.3L12 21l1.9-5.8a2 2 0 0 1 1.3-1.3L21 12l-5.8-1.9a2 2 0 0 1-1.3-1.3Z'/%3E%3C/svg%3E"); }
.ab-fcard h3 { font-size: 1.125rem; }
.ab-fcard p { font-size: .875rem; color: var(--ab-muted-fg); font-weight: 500; line-height: 1.75; }
.ab-sp-only { margin: 0 !important; }
.ab-sp-only img { display: block; width: 100%; }
@media (min-width: 768px) { .ab-sp-only { display: none !important; } }

/* ---------- Flow ---------- */
.ab-flow { background: #fff; }
.ab-step { position: relative; background: var(--ab-bg); border: 2px solid #fde68a; border-radius: 1rem; padding: 2rem 1.5rem 1.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .08); transition: box-shadow .3s; }
.ab-step:hover { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .12); }
.ab-step { --ab-step: var(--ab-amber); --ab-step-tx: #b45309; }
.ab-step--pink { border-color: #fbcfe8; --ab-step: var(--ab-pink); --ab-step-tx: var(--ab-pink7); }
.ab-step--purple { border-color: #e9d5ff; --ab-step: var(--ab-purple); --ab-step-tx: #7e22ce; }
.ab-step--teal { border-color: #99f6e4; --ab-step: var(--ab-teal); --ab-step-tx: #0f766e; }
.ab-step > * { margin: 0 0 .75rem !important; }
.ab-step-no { position: absolute; top: -1rem; left: 1.5rem; margin: 0 !important; background: var(--ab-step); color: #fff; font-weight: 700; font-size: .75rem; padding: .25rem .75rem; border-radius: 999px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .15); }
.ab-step h3 { font-size: 1.125rem; color: var(--ab-step-tx); }
.ab-step p:not(.ab-step-no) { font-size: .75rem; color: var(--ab-muted-fg); font-weight: 500; line-height: 1.75; }
.ab-steps { margin-bottom: 3rem; }
.ab-note { position: relative; max-width: 42rem; margin: 0 auto; background: linear-gradient(90deg, rgba(236, 72, 153, .1), rgba(234, 179, 8, .1)); border: 2px solid #fbcfe8; border-radius: 1rem; padding: 1.5rem 1.5rem 1.5rem 4.25rem; box-shadow: 0 1px 2px rgba(0, 0, 0, .05); }
.ab-note::before { content: ""; position: absolute; left: 1.5rem; top: 50%; transform: translateY(-50%); width: 2rem; height: 2rem; animation: ab-pulse 2s infinite; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ec4899' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E") center/contain no-repeat; }
.ab-note h4 { font-size: .875rem; color: var(--ab-pink7); margin: 0 0 .25rem !important; }
.ab-note p { font-size: .75rem; color: var(--ab-muted-fg); font-weight: 500; line-height: 1.75; margin: 0 !important; }

/* ---------- FAQ ---------- */
.ab-faqs { background: linear-gradient(180deg, #fdf2f8, var(--ab-bg)); }
.ab-faq-list { max-width: 48rem; margin: 0 auto; display: grid; gap: 1.5rem; text-align: left; }
.ab-faq-list > * { margin: 0 !important; }
.ab-faq { background: #fff; border: 2px solid var(--ab-muted); border-radius: 1rem; padding: 1.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .08); }
.ab-faq h3 { position: relative; padding-left: 2.25rem; font-size: 1rem; margin: 0 !important; }
@media (min-width: 640px) { .ab-faq h3 { font-size: 1.125rem; } }
.ab-faq h3::before, .ab-faq p::before { position: absolute; left: 0; top: .1rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 700; }
.ab-faq h3::before { content: "Q"; background: var(--ab-pink); color: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .1); }
.ab-faq p { position: relative; padding: 1rem 0 0 2.25rem; margin: 1rem 0 0 !important; border-top: 2px dashed var(--ab-muted); font-size: .875rem; color: var(--ab-muted-fg); font-weight: 500; line-height: 1.8; }
.ab-faq p::before { content: "A"; top: 1.1rem; background: #fef3c7; color: #d97706; border: 1px solid #fde68a; }

/* ---------- Contact ---------- */
.ab-contact { background: #fff; border-top: 4px solid #fbcfe8; overflow: hidden; }
.ab-contact-cols { gap: 2rem !important; align-items: flex-start !important; margin: 0 !important; }
@media (max-width: 1023px) { .ab-contact-cols { flex-wrap: wrap !important; } .ab-contact-cols > .wp-block-column { flex-basis: 100% !important; } }
.ab-contact-side { display: flex; flex-direction: column; gap: 1.5rem; }
.ab-contact-side > * { margin: 0 !important; }
.ab-telbox { background: linear-gradient(135deg, #fdf2f8, #fffbeb); border: 2px solid #fbcfe8; border-radius: 1rem; padding: 1.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .08); display: flex; flex-direction: column; gap: .5rem; }
.ab-telbox > * { margin: 0 !important; }
.ab-telbox h3 { font-size: 1.125rem; color: var(--ab-pink7); margin-bottom: .75rem !important; }
.ab-tel a { display: inline-flex; align-items: center; gap: .5rem; font-size: 1.5rem; font-weight: 700; color: var(--ab-pink6); text-decoration: none; }
.ab-tel a::before { content: ""; width: 1.5rem; height: 1.5rem; animation: ab-bounce 1s infinite; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ec4899' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center/contain no-repeat; }
.ab-tel a:hover { text-decoration: underline; }
.ab-small { font-size: .75rem; color: var(--ab-muted-fg); font-weight: 500; line-height: 1.8; }
.ab-dashed { border-top: 2px dashed #fbcfe8; padding-top: 1rem; margin-top: 1rem !important; }
.ab-dashed strong { color: var(--ab-fg); }
.ab-support { border: 2px solid #99f6e4; background: rgba(240, 253, 250, .5); border-radius: 1rem; padding: 1.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .08); }
.ab-support > * { margin: 0 0 .75rem !important; }
.ab-support > *:last-child { margin-bottom: 0 !important; }
.ab-support-title { display: flex; align-items: center; gap: .5rem; color: #0d9488; font-weight: 700; font-size: .875rem; }
.ab-support-title::before { content: ""; width: 1.25rem; height: 1.25rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d9488' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center/contain no-repeat; }
.ab-line-btns .wp-block-button { width: 100%; }
.ab-line-btns .wp-block-button__link { width: 100%; padding: 1rem 1.5rem !important; }
.ab-formbox { background: var(--ab-bg); border: 2px solid var(--ab-muted); border-radius: 1.5rem; padding: 1.5rem; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .08); }
@media (min-width: 640px) { .ab-formbox { padding: 2rem; } }
.ab-formbox > * { margin: 0 !important; }
.ab-hint { position: relative; margin-bottom: 1.5rem !important; border: 1px solid #fde68a; background: #fffbeb; border-radius: 1rem; padding: .75rem 1rem .75rem 2.75rem; font-size: .75rem; color: #78350f; font-weight: 500; line-height: 1.75; }
.ab-hint::before { content: ""; position: absolute; left: 1rem; top: .85rem; width: 1.25rem; height: 1.25rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f59e0b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5'/%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 22h4'/%3E%3C/svg%3E") center/contain no-repeat; }

/* form */
.ab-form { display: grid; gap: 1.5rem; }
.ab-form-row { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .ab-form-row { grid-template-columns: 1fr 1fr; } }
.ab-field { display: grid; gap: .5rem; margin: 0; }
.ab-field label { font-size: .875rem; font-weight: 700; }
.ab-req { font-size: .75rem; color: var(--ab-pink); font-weight: 700; }
.ab-opt { font-size: .75rem; color: var(--ab-muted-fg); font-weight: 400; }
.ab-form input[type=text], .ab-form input[type=email], .ab-form input[type=tel], .ab-form select, .ab-form textarea {
	width: 100%; padding: .65rem 1rem; border: 2px solid var(--ab-muted); border-radius: .75rem; background: #fff; font: 500 .875rem/1.6 var(--ab-font); color: var(--ab-fg);
}
.ab-form select { font-weight: 700; }
.ab-form textarea { resize: vertical; min-height: 7rem; }
.ab-form input:focus, .ab-form select:focus, .ab-form textarea:focus { outline: none; box-shadow: 0 0 0 3px rgba(236, 72, 153, .35); border-color: #f9a8d4; }
.ab-agree { display: flex; align-items: flex-start; gap: .6rem; font-size: .75rem; color: var(--ab-muted-fg); font-weight: 500; margin: 0; }
.ab-agree input { margin-top: .3rem; width: 1rem; height: 1rem; accent-color: var(--ab-pink); }
.ab-agree a { color: var(--ab-pink6); font-weight: 700; }
.ab-submit { width: 100%; padding: 1.25rem; background: var(--ab-grad-hero); }
.ab-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ab-alert { border-radius: 1rem; padding: 1rem 1.25rem; margin-bottom: 1.5rem; font-size: .875rem; line-height: 1.7; }
.ab-alert strong { display: block; }
.ab-alert--ok { background: #ecfdf5; border: 2px solid #6ee7b7; color: #065f46; }
.ab-alert--ng { background: #fef2f2; border: 2px solid #fca5a5; color: #991b1b; }

/* ---------- Footer ---------- */
.ab-footer { background: var(--ab-fg); color: #fff; padding: 3rem 0; border-top: 4px solid var(--ab-pink); }
@media (min-width: 768px) { .ab-footer { padding-bottom: 13rem; } }
.ab-footer-grid { display: grid; gap: 2rem; }
@media (min-width: 768px) { .ab-footer-grid { grid-template-columns: repeat(4, 1fr); } }
.ab-footer-logo { height: 2.5rem; width: auto; filter: brightness(0) invert(1); margin-bottom: 1rem; }
.ab-footer-about p { font-size: .75rem; color: #e2e8f0; line-height: 1.8; font-weight: 500; }
.ab-fh { font-size: .875rem; margin-bottom: .75rem; }
.ab-fh--pink { color: #f472b6; } .ab-fh--amber { color: #fbbf24; } .ab-fh--teal { color: #2dd4bf; }
.ab-flinks { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.ab-flinks a { color: #cbd5e1; font-size: .75rem; text-decoration: none; font-weight: 500; }
.ab-flinks a:hover { color: #fff; }
.ab-ftel { display: flex; align-items: center; gap: .4rem; font-size: .75rem; margin-bottom: .5rem; }
.ab-ftel .ab-i { color: #f472b6; }
.ab-ftel a { color: #fff; font-weight: 700; text-decoration: none; }
.ab-fline { display: inline-flex; align-items: center; gap: .5rem; background: var(--ab-line); color: #fff; font-size: .75rem; font-weight: 700; text-decoration: none; border-radius: .75rem; padding: .6rem 1rem; transition: transform .2s; }
.ab-fline:hover { transform: scale(1.05); color: #fff; }
.ab-faddr { font-size: 11px; color: #cbd5e1; line-height: 1.8; margin-top: .75rem; }
.ab-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); margin-top: 2rem; padding-top: 2rem; display: flex; flex-direction: column; gap: 1rem; justify-content: space-between; align-items: center; font-size: .75rem; color: #e2e8f0; text-align: center; }
@media (min-width: 640px) { .ab-footer-bottom { flex-direction: row; } }
.ab-fnote { font-size: 10px; color: #94a3b8; }

/* LINE float (PC) */
.ab-line-float { display: none; position: fixed; right: 2rem; bottom: 2rem; z-index: 50; flex-direction: column; align-items: center; gap: .5rem; text-decoration: none; }
@media (min-width: 768px) { .ab-line-float { display: flex; } }
.ab-line-bubble { position: relative; display: flex; align-items: center; gap: .75rem; background: #fff; border: 1px solid #dcfce7; border-radius: 1rem; padding: .875rem 1.25rem; box-shadow: 0 8px 32px rgba(0, 0, 0, .18); transition: transform .2s, box-shadow .2s; }
.ab-line-bubble::after { content: ""; position: absolute; bottom: -10px; right: 2rem; border: 10px solid transparent; border-bottom: 0; border-top-color: #fff; }
.ab-line-float:hover .ab-line-bubble { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(6, 199, 85, .25); }
.ab-line-ico { width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--ab-line); color: #fff; display: flex; align-items: center; justify-content: center; }
.ab-line-ico .ab-i { width: 1.5rem; height: 1.5rem; }
.ab-line-txt { display: flex; flex-direction: column; line-height: 1.3; }
.ab-line-txt small { font-size: 11px; color: #94a3b8; }
.ab-line-txt b { font-size: .875rem; color: #1e293b; }
.ab-line-round { width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--ab-line); color: #fff; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; box-shadow: 0 4px 16px rgba(6, 199, 85, .45); transition: transform .2s; align-self: flex-end; }
.ab-line-round .ab-i { width: 2rem; height: 2rem; }
.ab-line-float:hover .ab-line-round { transform: scale(1.1); }

/* SP bottom bar */
.ab-spbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; height: calc(4rem + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: #fff; border-top: 2px solid #22c55e; box-shadow: 0 -4px 20px rgba(0, 0, 0, .15); }
@media (min-width: 768px) { .ab-spbar { display: none; } }
@media (max-width: 767px) { body.ab-body { padding-bottom: calc(4rem + env(safe-area-inset-bottom)); } }
.ab-spbar a { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; color: #fff; font-size: .75rem; font-weight: 700; text-decoration: none; }
.ab-spbar .ab-i { width: 1.25rem; height: 1.25rem; }
.ab-spbar-contact { background: var(--ab-orange); }
.ab-spbar-line { background: var(--ab-line); }

/* Modal */
.ab-modal { position: fixed; inset: 0; z-index: 100; background: rgba(0, 0, 0, .95); display: flex; align-items: center; justify-content: center; padding: 1rem; animation: ab-fade .2s; }
.ab-modal[hidden] { display: none; }
.ab-modal-close { position: absolute; top: 1rem; right: 1rem; background: none; border: 0; color: #fff; cursor: pointer; padding: .5rem; z-index: 2; }
.ab-modal-close .ab-i { width: 2rem; height: 2rem; }
.ab-modal-close:hover { color: var(--ab-pink); }
.ab-modal-stage { position: relative; width: 100%; max-width: 56rem; display: flex; align-items: center; justify-content: center; }
.ab-modal-fig { margin: 0; max-height: 80vh; border-radius: 1rem; overflow: hidden; border: 4px solid #fff; background: #fff; display: flex; flex-direction: column; align-items: center; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .5); }
.ab-modal-fig img { max-width: 100%; max-height: 65vh; object-fit: contain; display: block; }
@media (min-width: 768px) { .ab-modal-fig img { max-height: 70vh; } }
.ab-modal-fig figcaption { width: 100%; background: #0f172a; color: #fff; padding: .75rem; text-align: center; }
.ab-modal-cap { font-size: .875rem; font-weight: 700; margin-bottom: .3rem; }
.ab-modal-count { font-size: .75rem; color: #94a3b8; font-weight: 600; }
.ab-modal-prev, .ab-modal-next { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0, 0, 0, .4); color: #fff; border: 0; border-radius: 50%; padding: .75rem; cursor: pointer; z-index: 2; display: flex; }
.ab-modal-prev .ab-i, .ab-modal-next .ab-i { width: 1.5rem; height: 1.5rem; }
.ab-modal-prev:hover, .ab-modal-next:hover { background: rgba(0, 0, 0, .7); color: var(--ab-pink); }
.ab-modal-prev { left: .5rem; } .ab-modal-next { right: .5rem; }
@media (min-width: 768px) { .ab-modal-prev { left: -4rem; } .ab-modal-next { right: -4rem; } .ab-modal-prev .ab-i, .ab-modal-next .ab-i { width: 2rem; height: 2rem; } }
body.ab-modal-open { overflow: hidden; }

/* ---------- Lower pages ---------- */
.ab-page { padding-bottom: 4rem; }
.ab-crumb { display: flex; gap: .5rem; align-items: center; padding-top: 1.25rem; padding-bottom: .5rem; font-size: .8125rem; color: #64748b; max-width: 56rem; }
.ab-crumb a { color: var(--ab-pink6); font-weight: 700; text-decoration: none; }
.ab-article { max-width: 56rem; padding-top: 1.5rem; }
.ab-page-title { font-size: 1.75rem; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .ab-page-title { font-size: 2.25rem; } }
.ab-entry { background: #fff; border: 2px solid var(--ab-muted); border-radius: 1.5rem; padding: 1.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .06); }
@media (min-width: 768px) { .ab-entry { padding: 2.5rem; } }
.ab-entry > * + * { margin-top: 1.25rem; }
.ab-entry h2 { font-size: 1.125rem; padding-left: .75rem; border-left: 4px solid var(--ab-pink); margin-top: 2rem; }
.ab-entry p, .ab-entry li { font-size: .9375rem; color: #44403c; }
.ab-entry ul { padding-left: 1.25rem; }
.ab-entry ul li::marker { color: var(--ab-pink); }
.ab-legal-table table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.ab-legal-table td { border: 0; border-bottom: 1px solid var(--ab-muted); padding: .9rem .75rem; vertical-align: top; line-height: 1.8; }
.ab-legal-table td:first-child { width: 32%; font-weight: 700; background: #fdf2f8; color: var(--ab-pink7); }
@media (max-width: 600px) { .ab-legal-table tr, .ab-legal-table td { display: block; width: 100% !important; } .ab-legal-table td:first-child { border-bottom: 0; padding-bottom: .4rem; } }
.ab-boxed { background: var(--ab-bg); border: 1px solid var(--ab-border); border-radius: 1rem; padding: 1rem 1.25rem; }
.ab-postlist { list-style: none; padding: 0; background: #fff; border-radius: 1rem; border: 2px solid var(--ab-muted); }
.ab-postlist li a { display: flex; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--ab-muted); color: var(--ab-fg); text-decoration: none; }
.ab-postlist time { color: var(--ab-muted-fg); font-size: .875rem; }
.ab-404 { text-align: center; padding: 4rem 1rem; }

/* ---------- Animations ---------- */
@keyframes ab-float { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-12px) rotate(2deg); } }
@keyframes ab-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }
@keyframes ab-bounce { 0%, 100% { transform: translateY(-20%); animation-timing-function: cubic-bezier(.8, 0, 1, 1); } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, .2, 1); } }
@keyframes ab-ping { 75%, 100% { transform: scale(2); opacity: 0; } }
@keyframes ab-fade { from { opacity: 0; } to { opacity: 1; } }
.ab-bounce { animation: ab-bounce 1s infinite; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } html { scroll-behavior: auto; } }
