:root {
	--wsp-ink: #504347;
	--wsp-muted: #74696b;
	--wsp-red: #bd554f;
	--wsp-blue: #497ab7;
	--wsp-green: #458d78;
	--wsp-paper: #fffaf6;
	--wsp-white: #fff;
	--wsp-shadow: 0 18px 50px rgba(80, 67, 71, .09);
}

html { scroll-behavior: smooth; }
body.wsp-page { margin: 0; background: var(--wsp-paper); color: var(--wsp-ink); }
body.wsp-page.wsp-menu-open { overflow: hidden; }
.wsp, .wsp * { box-sizing: border-box; }
.wsp { --accent: var(--wsp-red); --accent-rgb: 189, 85, 79; overflow: clip; font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: 16px; line-height: 1.8; }
.wsp-theme-blue .wsp { --accent: var(--wsp-blue); --accent-rgb: 73, 122, 183; }
.wsp-theme-green .wsp { --accent: var(--wsp-green); --accent-rgb: 69, 141, 120; }
.wsp a { color: inherit; text-decoration: none; }
.wsp img { display: block; max-width: 100%; height: auto; }
.wsp button { color: inherit; font: inherit; }
.wsp-shell { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.wsp-skip { position: fixed; z-index: 10000; top: 10px; left: 10px; padding: 10px 18px; border-radius: 12px; background: #fff; color: var(--wsp-ink); transform: translateY(-180%); }
.wsp-skip:focus { transform: none; }

.wsp-header { position: absolute; z-index: 100; top: 22px; left: 50%; display: flex; width: min(1320px, calc(100% - 44px)); min-height: 74px; align-items: center; justify-content: space-between; padding: 13px 16px 13px 25px; border: 1px solid rgba(255,255,255,.68); border-radius: 22px; background: rgba(255,255,255,.86); box-shadow: 0 12px 38px rgba(80,67,71,.08); transform: translateX(-50%); backdrop-filter: blur(15px); transition: background .2s, box-shadow .2s; }
.wsp-header.is-scrolled { position: fixed; background: rgba(255,255,255,.94); box-shadow: 0 15px 40px rgba(80,67,71,.13); }
.wsp-logo { flex: 0 0 auto; }
.wsp-logo img { width: 164px; }
.wsp-nav { display: flex; align-items: center; gap: 30px; font-size: 13px; font-weight: 800; letter-spacing: .08em; }
.wsp-nav > a:not(.wsp-contact-pill) { transition: color .2s; }
.wsp-nav > a:not(.wsp-contact-pill):hover { color: var(--accent); }
.wsp-contact-pill { padding: 11px 21px; border-radius: 999px; background: var(--accent); color: #fff !important; }
.wsp-menu-button { display: grid; width: 48px; height: 48px; margin-left: -8px; place-content: center; gap: 5px; border: 0; border-radius: 50%; background: #f6efea; cursor: pointer; }
.wsp-menu-button span { display: block; width: 20px; height: 2px; border-radius: 99px; background: var(--wsp-ink); transition: transform .2s, opacity .2s; }
.wsp-menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.wsp-menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.wsp-menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.wsp-menu { position: fixed; z-index: 90; inset: 0; visibility: hidden; overflow-y: auto; padding: 124px 22px 32px; background: rgba(72,61,64,.97); opacity: 0; transition: visibility .25s, opacity .25s; }
.wsp-menu.is-open { visibility: visible; opacity: 1; }
.wsp-menu__inner { width: min(920px, 100%); margin: auto; color: #fff; }
.wsp-menu__inner > p { margin: 0 0 22px; color: #efaaa6; font-size: 12px; font-weight: 900; letter-spacing: .2em; }
.wsp-menu__inner nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.wsp-menu__inner nav a { display: flex; min-height: 78px; align-items: center; gap: 19px; padding: 16px 20px; border-radius: 16px; background: rgba(255,255,255,.07); transition: background .2s, transform .2s; }
.wsp-menu__inner nav a:hover, .wsp-menu__inner nav a[aria-current="page"] { background: rgba(255,255,255,.15); transform: translateY(-2px); }
.wsp-menu__inner nav span { color: #efaaa6; font-size: 12px; font-weight: 900; }
.wsp-menu__inner nav strong { font-size: 16px; }
.wsp-menu__contact { display: inline-flex; margin-top: 22px; padding: 15px 24px; border-radius: 999px; background: #fff; color: var(--wsp-ink) !important; font-weight: 900; }

.wsp-breadcrumb { display: flex; gap: 9px; padding-top: 128px; color: var(--wsp-muted); font-size: 12px; }
.wsp-breadcrumb a:hover { color: var(--accent); }
.wsp-hero { position: relative; padding: 26px 0 78px; }
.wsp-hero::before { position: absolute; z-index: -1; inset: -80px 0 0; background-image: linear-gradient(rgba(189,85,79,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(189,85,79,.04) 1px, transparent 1px); background-size: 84px 84px; content: ""; }
.wsp-hero__grid { display: grid; min-height: 570px; align-items: center; grid-template-columns: 1.04fr .96fr; gap: 70px; }
.wsp-kicker { margin: 0 0 18px; color: var(--accent); font-size: 12px; font-weight: 900; letter-spacing: .17em; }
.wsp-kicker span { display: inline-grid; width: 34px; height: 34px; margin-right: 13px; place-content: center; border-radius: 50%; background: rgba(var(--accent-rgb),.11); letter-spacing: 0; }
.wsp-hero h1, .wsp-section h2, .wsp-contact h2 { margin: 0; font-weight: 900; letter-spacing: -.055em; line-height: 1.22; }
.wsp-hero h1 { max-width: 760px; font-size: clamp(43px, 5vw, 72px); }
.wsp-lead { max-width: 660px; margin: 30px 0 0; color: var(--wsp-muted); font-size: 17px; font-weight: 600; line-height: 2; }
.wsp-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 35px; }
.wsp-button { display: inline-flex; min-height: 58px; align-items: center; justify-content: center; padding: 12px 27px; border-radius: 16px; font-weight: 900; transition: transform .2s, box-shadow .2s; }
.wsp-button:hover { transform: translateY(-3px); }
.wsp-button--primary { background: var(--accent); box-shadow: 0 14px 30px rgba(var(--accent-rgb),.22); color: #fff !important; }
.wsp-button--soft { background: rgba(var(--accent-rgb),.09); color: var(--accent) !important; }
.wsp-hero__visual { position: relative; display: grid; min-height: 430px; place-items: center; overflow: hidden; border-radius: 46% 26% 42% 30% / 30% 43% 28% 44%; background: radial-gradient(circle at 75% 18%, rgba(255,255,255,.96), transparent 24%), linear-gradient(145deg, rgba(var(--accent-rgb),.09), rgba(var(--accent-rgb),.25)); box-shadow: var(--wsp-shadow); }
.wsp-hero__visual strong { position: relative; z-index: 2; max-width: 92%; color: var(--accent); font-size: clamp(42px, 6vw, 84px); font-weight: 950; letter-spacing: -.08em; line-height: .9; text-align: center; opacity: .91; }
.wsp-hero__visual i { position: absolute; right: -2%; bottom: -24%; color: rgba(255,255,255,.52); font-size: 280px; font-style: normal; font-weight: 950; line-height: 1; }
.wsp-orbit { position: absolute; border: 1px solid rgba(var(--accent-rgb),.28); border-radius: 50%; }
.wsp-orbit--one { width: 310px; height: 310px; top: -102px; right: -72px; }
.wsp-orbit--two { width: 180px; height: 180px; bottom: -60px; left: -28px; background: rgba(255,255,255,.2); }
.wsp-promise { position: relative; max-width: 940px; margin: 0; padding: 28px 34px 28px 76px; border-radius: 20px; background: #fff; box-shadow: var(--wsp-shadow); color: var(--wsp-ink); font-size: 18px; font-weight: 800; }
.wsp-promise::before { position: absolute; top: 50%; left: 29px; display: grid; width: 31px; height: 31px; place-content: center; border-radius: 50%; background: var(--accent); color: #fff; content: "✓"; transform: translateY(-50%); }

.wsp-section { padding: 108px 0; }
.wsp-section--soft { background: #f7f1ed; }
.wsp-section-heading { margin-bottom: 48px; }
.wsp-section-heading h2, .wsp-results h2, .wsp-scope h2 { font-size: clamp(34px, 4vw, 56px); }
.wsp-section-heading--split { display: grid; align-items: end; grid-template-columns: 1fr .72fr; gap: 90px; }
.wsp-section-heading--split > p { margin: 0 0 5px; color: var(--wsp-muted); font-weight: 600; }
.wsp-concern-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.wsp-concern { min-height: 284px; padding: 33px 30px; border-radius: 24px; background: #fff; box-shadow: var(--wsp-shadow); }
.wsp-concern small { color: var(--accent); font-weight: 900; }
.wsp-concern h3 { margin: 38px 0 15px; font-size: 21px; line-height: 1.5; }
.wsp-concern p, .wsp-support-card p { margin: 0; color: var(--wsp-muted); font-size: 15px; }
.wsp-support-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.wsp-support-card { position: relative; min-height: 255px; overflow: hidden; padding: 35px 35px 32px; border-radius: 24px; background: #fff; box-shadow: var(--wsp-shadow); }
.wsp-support-card > span { color: rgba(var(--accent-rgb),.38); font-size: 13px; font-weight: 900; }
.wsp-support-card h3 { margin: 44px 0 14px; font-size: 25px; line-height: 1.4; }
.wsp-support-card::after { position: absolute; right: -50px; bottom: -70px; width: 180px; height: 180px; border-radius: 50%; background: rgba(var(--accent-rgb),.075); content: ""; }
.wsp-results { background: var(--wsp-ink); color: #fff; }
.wsp-results__grid { display: grid; align-items: center; grid-template-columns: .78fr 1.22fr; gap: 100px; }
.wsp-results .wsp-kicker { color: #f2b0ab; }
.wsp-results ol { display: grid; margin: 0; padding: 0; gap: 12px; list-style: none; }
.wsp-results li { display: flex; min-height: 76px; align-items: center; gap: 18px; padding: 17px 22px; border-radius: 18px; background: rgba(255,255,255,.08); font-size: 18px; font-weight: 800; }
.wsp-results li span { display: grid; width: 35px; height: 35px; flex: 0 0 35px; place-content: center; border-radius: 50%; background: var(--accent); }
.wsp-process { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(4, 1fr); gap: 14px; list-style: none; }
.wsp-process li { min-height: 188px; padding: 28px 24px; border-radius: 22px; background: #fff; box-shadow: var(--wsp-shadow); }
.wsp-process span { display: inline-grid; width: 43px; height: 43px; place-content: center; border-radius: 14px; background: rgba(var(--accent-rgb),.11); color: var(--accent); font-size: 13px; font-weight: 900; }
.wsp-process h3 { margin: 47px 0 0; font-size: 18px; line-height: 1.55; }
.wsp-section--scope { background: linear-gradient(145deg, rgba(var(--accent-rgb),.14), rgba(var(--accent-rgb),.04)); }
.wsp-scope { display: grid; grid-template-columns: .8fr 1.2fr; gap: 78px; }
.wsp-price-copy { margin: 30px 0 24px; color: var(--wsp-muted); font-size: 17px; font-weight: 650; }
.wsp-text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--accent) !important; font-weight: 900; }
.wsp-text-link span { transition: transform .2s; }
.wsp-text-link:hover span { transform: translateX(5px); }
.wsp-scope__cards { display: grid; gap: 16px; }
.wsp-scope__cards article { padding: 31px 33px; border-radius: 22px; background: rgba(255,255,255,.86); box-shadow: var(--wsp-shadow); }
.wsp-scope__cards h3 { margin: 0 0 18px; font-size: 20px; }
.wsp-scope__cards ul { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(2, 1fr); gap: 10px 20px; list-style: none; }
.wsp-scope__cards li { position: relative; padding-left: 20px; color: var(--wsp-muted); font-size: 14px; font-weight: 650; }
.wsp-scope__cards li::before { position: absolute; top: .72em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); content: ""; }
.wsp-faq__list { display: grid; max-width: 980px; gap: 12px; }
.wsp-faq details { overflow: hidden; border-radius: 20px; background: #fff; box-shadow: 0 10px 35px rgba(80,67,71,.065); }
.wsp-faq summary { display: flex; min-height: 82px; align-items: center; gap: 18px; padding: 20px 28px; cursor: pointer; font-size: 17px; font-weight: 850; list-style: none; }
.wsp-faq summary::-webkit-details-marker { display: none; }
.wsp-faq summary span { color: var(--accent); font-size: 13px; letter-spacing: .08em; }
.wsp-faq summary::after { margin-left: auto; color: var(--accent); content: "+"; font-size: 26px; font-weight: 500; }
.wsp-faq details[open] summary::after { content: "−"; }
.wsp-faq details > div { padding: 0 28px 26px 59px; color: var(--wsp-muted); }
.wsp-faq details p { margin: 0; }
.wsp-related { background: #f7f1ed; }
.wsp-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.wsp-related__grid a { position: relative; display: flex; min-height: 172px; flex-direction: column; justify-content: space-between; padding: 25px; border-radius: 22px; background: #fff; box-shadow: var(--wsp-shadow); transition: transform .2s; }
.wsp-related__grid a:hover { transform: translateY(-4px); }
.wsp-related__grid small { color: var(--accent); font-weight: 900; }
.wsp-related__grid strong { padding-right: 27px; font-size: 18px; line-height: 1.55; }
.wsp-related__grid span { position: absolute; right: 24px; bottom: 23px; color: var(--accent); font-size: 20px; }
.wsp-contact { padding: 100px 0; background: #f7f1ed; }
.wsp-contact__panel { position: relative; overflow: hidden; padding: 72px; border-radius: 34px; background: var(--accent); box-shadow: 0 25px 60px rgba(var(--accent-rgb),.24); color: #fff; }
.wsp-contact__panel::after { position: absolute; right: -90px; bottom: -170px; width: 430px; height: 430px; border-radius: 50%; background: rgba(255,255,255,.11); content: ""; }
.wsp-contact .wsp-kicker { color: #fff; opacity: .85; }
.wsp-contact h2 { position: relative; z-index: 1; max-width: 820px; font-size: clamp(36px, 5vw, 64px); }
.wsp-contact p:not(.wsp-kicker) { position: relative; z-index: 1; margin: 25px 0 32px; font-weight: 700; }
.wsp-button--white { position: relative; z-index: 1; background: #fff; color: var(--accent) !important; }
.wsp-footer { padding: 74px 0 28px; background: #4d4245; color: #fff; }
.wsp-footer__grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; }
.wsp-footer__brand img { width: 172px; filter: brightness(0) invert(1); }
.wsp-footer__brand p { margin: 24px 0 0; color: rgba(255,255,255,.72); font-size: 13px; line-height: 2; }
.wsp-footer__nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.wsp-footer__nav div { display: flex; flex-direction: column; gap: 9px; }
.wsp-footer__nav b { margin-bottom: 8px; color: #f4b1ac; font-size: 12px; letter-spacing: .12em; }
.wsp-footer__nav a { color: rgba(255,255,255,.72); font-size: 13px; }
.wsp-footer__nav a:hover { color: #fff; }
.wsp-copy { margin: 52px 0 0; color: rgba(255,255,255,.5); font-size: 11px; }
.wsp-mobile-cta { display: none; }
.wsp a:focus-visible, .wsp button:focus-visible, .wsp summary:focus-visible { outline: 3px solid rgba(var(--accent-rgb),.5); outline-offset: 4px; }

@media (max-width: 900px) {
	.wsp-shell { width: min(100% - 42px, 720px); }
	.wsp-nav > a:not(.wsp-contact-pill) { display: none; }
	.wsp-breadcrumb { padding-top: 116px; }
	.wsp-hero { padding-bottom: 64px; }
	.wsp-hero__grid { min-height: auto; grid-template-columns: 1fr; gap: 45px; padding-top: 40px; }
	.wsp-hero__visual { min-height: 340px; }
	.wsp-promise { margin-top: 40px; }
	.wsp-section { padding: 84px 0; }
	.wsp-section-heading--split, .wsp-results__grid, .wsp-scope { grid-template-columns: 1fr; gap: 38px; }
	.wsp-concern-grid { grid-template-columns: 1fr; }
	.wsp-concern { min-height: auto; }
	.wsp-concern h3 { margin-top: 25px; }
	.wsp-process { grid-template-columns: repeat(2, 1fr); }
	.wsp-related__grid { grid-template-columns: 1fr; }
	.wsp-footer__grid { grid-template-columns: 1fr; gap: 45px; }
}

@media (max-width: 620px) {
	.wsp { font-size: 16px; }
	.wsp-shell { width: calc(100% - 32px); }
	.wsp-header { top: 10px; width: calc(100% - 20px); min-height: 62px; padding: 9px 9px 9px 16px; border-radius: 18px; }
	.wsp-logo img { width: 132px; }
	.wsp-contact-pill { display: none; }
	.wsp-menu-button { width: 44px; height: 44px; margin-left: 0; }
	.wsp-menu { padding: 90px 10px 24px; }
	.wsp-menu__inner nav { grid-template-columns: 1fr; }
	.wsp-menu__inner nav a { min-height: 61px; padding: 12px 16px; }
	.wsp-menu__inner nav strong { font-size: 14px; }
	.wsp-menu__contact { display: flex; justify-content: center; }
	.wsp-breadcrumb { width: calc(100% - 32px); flex-wrap: wrap; padding-top: 91px; line-height: 1.55; }
	.wsp-hero { padding: 12px 0 54px; }
	.wsp-hero::before { background-size: 54px 54px; }
	.wsp-hero__grid { gap: 32px; padding-top: 24px; }
	.wsp-kicker { margin-bottom: 14px; font-size: 10px; }
	.wsp-kicker span { width: 30px; height: 30px; margin-right: 9px; }
	.wsp-hero h1 { font-size: clamp(37px, 11vw, 52px); line-height: 1.18; }
	.wsp-lead { margin-top: 23px; font-size: 16px; line-height: 1.9; }
	.wsp-hero__actions { display: grid; margin-top: 27px; grid-template-columns: 1fr 1fr; }
	.wsp-button { min-height: 54px; padding: 10px 14px; border-radius: 14px; font-size: 14px; }
	.wsp-hero__visual { min-height: 250px; border-radius: 40% 24% 38% 27% / 27% 38% 24% 39%; }
	.wsp-hero__visual strong { font-size: clamp(39px, 15vw, 65px); }
	.wsp-hero__visual i { font-size: 180px; }
	.wsp-orbit--one { width: 190px; height: 190px; }
	.wsp-orbit--two { width: 120px; height: 120px; }
	.wsp-promise { margin-top: 29px; padding: 23px 21px 23px 59px; border-radius: 17px; font-size: 15px; line-height: 1.75; }
	.wsp-promise::before { left: 19px; }
	.wsp-section { padding: 69px 0; }
	.wsp-section-heading { margin-bottom: 31px; }
	.wsp-section-heading h2, .wsp-results h2, .wsp-scope h2 { font-size: 35px; line-height: 1.27; }
	.wsp-section-heading--split { gap: 23px; }
	.wsp-concern-grid, .wsp-support-grid { grid-template-columns: 1fr; gap: 12px; }
	.wsp-concern, .wsp-support-card { min-height: auto; padding: 25px 22px; border-radius: 18px; }
	.wsp-concern h3, .wsp-support-card h3 { margin: 22px 0 11px; font-size: 19px; }
	.wsp-results__grid { gap: 31px; }
	.wsp-results li { min-height: 67px; padding: 14px 17px; border-radius: 16px; font-size: 15px; line-height: 1.65; }
	.wsp-results li span { width: 31px; height: 31px; flex-basis: 31px; }
	.wsp-process { grid-template-columns: 1fr 1fr; gap: 10px; }
	.wsp-process li { min-height: 151px; padding: 20px 17px; border-radius: 17px; }
	.wsp-process h3 { margin-top: 29px; font-size: 15px; }
	.wsp-scope { gap: 32px; }
	.wsp-price-copy { font-size: 15px; }
	.wsp-scope__cards article { padding: 24px 21px; border-radius: 18px; }
	.wsp-scope__cards ul { grid-template-columns: 1fr; }
	.wsp-faq summary { min-height: 72px; gap: 12px; padding: 17px 19px; font-size: 15px; line-height: 1.65; }
	.wsp-faq details > div { padding: 0 19px 21px; font-size: 14px; }
	.wsp-related__grid a { min-height: 137px; padding: 21px; border-radius: 18px; }
	.wsp-related__grid strong { font-size: 16px; }
	.wsp-contact { padding: 64px 0; }
	.wsp-contact__panel { padding: 45px 24px; border-radius: 24px; }
	.wsp-contact h2 { font-size: 35px; line-height: 1.28; }
	.wsp-contact p:not(.wsp-kicker) br { display: none; }
	.wsp-footer { padding: 57px 0 92px; }
	.wsp-footer__nav { grid-template-columns: repeat(2, 1fr); gap: 32px 23px; }
	.wsp-footer__nav div:last-child { grid-column: 1 / -1; }
	.wsp-mobile-cta { position: fixed; z-index: 85; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); left: 12px; display: flex; min-height: 55px; align-items: center; justify-content: center; border-radius: 16px; background: var(--accent); box-shadow: 0 13px 35px rgba(var(--accent-rgb),.34); color: #fff !important; font-size: 15px; font-weight: 900; transform: translateY(0); transition: transform .24s ease, opacity .24s ease; }
	.wsp-mobile-cta.is-hidden { pointer-events: none; opacity: 0; transform: translateY(calc(100% + 28px + env(safe-area-inset-bottom))); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.wsp *, .wsp *::before, .wsp *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Unified fixed-page navigation. */
.wsp-nav { gap: 22px; font-size: 12px; letter-spacing: .07em; }
.wsp-footer__nav { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 760px) {
	.wsp-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; }
	.wsp-footer__nav div:last-child { grid-column: auto; }
}

/* Parent/child header dropdowns and hamburger accordions. */
.wsp-nav .ws-nav-group { position: relative; }
.wsp-nav .ws-nav-group summary { display: flex; align-items: center; gap: 6px; padding: 10px 4px; list-style: none; cursor: pointer; }
.wsp-nav .ws-nav-group summary::-webkit-details-marker { display: none; }
.wsp-nav .ws-nav-group summary span { font-size: 13px; transition: transform .2s; }
.wsp-nav .ws-nav-group[open] summary { color: var(--accent); }
.wsp-nav .ws-nav-group[open] summary span { transform: rotate(180deg); }
.wsp-nav .ws-nav-dropdown { position: absolute; top: calc(100% + 16px); right: 0; display: grid; width: 310px; gap: 5px; padding: 12px; border: 1px solid rgba(var(--accent-rgb),.13); border-radius: 18px; background: rgba(255,250,247,.98); box-shadow: 0 20px 46px rgba(80,67,71,.15); }
.wsp-nav .ws-nav-dropdown a { padding: 11px 13px; border-radius: 11px; color: var(--wsp-ink); font-size: 12px; line-height: 1.45; letter-spacing: 0; }
.wsp-nav .ws-nav-dropdown a:hover { background: rgba(var(--accent-rgb),.09); color: var(--accent); }
.wsp-menu__inner nav.ws-menu-tree { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.wsp-menu__inner .ws-menu-group summary { display: grid; min-height: 78px; grid-template-columns: 34px 1fr auto 18px; gap: 12px; align-items: center; padding: 16px 20px; border-radius: 16px; background: rgba(255,255,255,.07); list-style: none; cursor: pointer; }
.wsp-menu__inner .ws-menu-group summary::-webkit-details-marker { display: none; }
.wsp-menu__inner .ws-menu-group summary span { color: #efaaa6; font-size: 12px; font-weight: 900; }
.wsp-menu__inner .ws-menu-group summary strong { font-size: 16px; }
.wsp-menu__inner .ws-menu-group summary em { font-size: 9px; font-style: normal; font-weight: 800; letter-spacing: .12em; }
.wsp-menu__inner .ws-menu-group summary i { font-size: 16px; font-style: normal; transition: transform .2s; }
.wsp-menu__inner .ws-menu-group[open] summary { background: rgba(255,255,255,.16); }
.wsp-menu__inner .ws-menu-group[open] summary i { transform: rotate(180deg); }
.wsp-menu__inner .ws-menu-children { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; padding: 8px 4px 4px; }
.wsp-menu__inner nav .ws-menu-children a { min-height: 44px; justify-content: space-between; gap: 10px; padding: 9px 12px; border-radius: 10px; font-size: 12px; line-height: 1.45; }
.wsp-menu__inner nav .ws-menu-children a:hover { transform: none; }
@media (max-width: 760px) {
	.wsp-nav > .ws-nav-group { display: none; }
	.wsp-menu__inner nav.ws-menu-tree { grid-template-columns: 1fr; }
	.wsp-menu__inner .ws-menu-group summary { min-height: 62px; grid-template-columns: 30px 1fr auto 16px; padding: 13px 14px; }
	.wsp-menu__inner .ws-menu-group summary strong { font-size: 15px; }
	.wsp-menu__inner .ws-menu-children { grid-template-columns: 1fr; padding-top: 6px; }
	.wsp-menu__inner nav .ws-menu-children a { min-height: 42px; padding: 9px 12px; font-size: 13px; }
}

/* Homepage production: match the established front-page visual language. */
body.wsp-page.wsp-page-production { background: #fff; color: #333; }
.wsp-page-production .wsp {
	--accent: #c92727;
	--accent-rgb: 201, 39, 39;
	--wsp-ink: #1f2a44;
	--wsp-muted: #4c4c4c;
	--wsp-paper: #fff;
	--wsp-shadow: 0 8px 24px rgba(0, 0, 0, .06);
	font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, system-ui, sans-serif;
}
.wsp-page-production .wsp-header {
	top: 0;
	width: 100%;
	min-height: 76px;
	padding: 13px max(24px, calc((100% - 1280px) / 2));
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, .5);
	border-radius: 0;
	background: linear-gradient(to bottom, rgba(255, 255, 255, .9), rgba(255, 255, 255, .78));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .85), 0 8px 30px rgba(0, 0, 0, .06);
}
.wsp-page-production .wsp-menu-button { background: #f5f4f1; }
.wsp-page-production .wsp-nav .ws-nav-dropdown { border-color: #e6e6e6; background: rgba(255, 255, 255, .98); box-shadow: 0 20px 46px rgba(0, 0, 0, .12); }
.wsp-page-production .wsp-menu { background: rgba(31, 42, 68, .98); }
.wsp-page-production .wsp-menu__inner > p,
.wsp-page-production .wsp-menu__inner nav span,
.wsp-page-production .wsp-menu__inner .ws-menu-group summary span { color: #fff; }
.wsp-page-production .wsp-breadcrumb { padding-top: 108px; }
.wsp-page-production .wsp-hero { padding-top: 36px; background: #fff; }
.wsp-page-production .wsp-hero::before { display: none; }
.wsp-page-production .wsp-hero__grid { min-height: 590px; grid-template-columns: .9fr 1.1fr; gap: 74px; }
.wsp-page-production .wsp-hero h1 { color: #1f2a44; font-size: clamp(42px, 4.8vw, 68px); letter-spacing: -.045em; }
.wsp-page-production .wsp-lead { color: #4c4c4c; font-weight: 600; }
.wsp-page-production .wsp-button { border-radius: 999px; }
.wsp-page-production .wsp-button--soft { border: 1px solid #e6e6e6; background: #fff; color: #4c4c4c !important; }
.wsp-page-production .wsp-production-works { position: relative; min-height: 520px; }
.wsp-page-production .wsp-production-works figure { position: absolute; margin: 0; overflow: hidden; border: 1px solid #e6e6e6; border-radius: 10px; background: #fff; box-shadow: 0 16px 38px rgba(0, 0, 0, .12); }
.wsp-page-production .wsp-production-works figure:nth-child(1) { z-index: 2; top: 18px; right: 0; width: 72%; }
.wsp-page-production .wsp-production-works figure:nth-child(2) { z-index: 3; bottom: 18px; left: 0; width: 58%; }
.wsp-page-production .wsp-production-works figure:nth-child(3) { z-index: 1; right: 2%; bottom: 0; width: 44%; }
.wsp-page-production .wsp-production-works img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; }
.wsp-page-production .wsp-production-works figcaption { padding: 9px 12px; border-top: 1px solid #eee; color: #4c4c4c; font-size: 12px; font-weight: 700; }
.wsp-page-production .wsp-promise { max-width: none; border: 1px solid #e6e6e6; border-left: 4px solid #c92727; border-radius: 8px; box-shadow: none; color: #333; }
.wsp-page-production .wsp-promise::before { background: #c92727; }
.wsp-page-production .wsp-section { padding: 92px 0; }
.wsp-page-production .wsp-section--soft,
.wsp-page-production .wsp-related,
.wsp-page-production .wsp-contact { background: #f5f4f1; }
.wsp-page-production .wsp-section h2,
.wsp-page-production .wsp-contact h2 { color: #1f2a44; }
.wsp-page-production .wsp-concern { min-height: 270px; border: 1px solid #eee; border-radius: 10px; box-shadow: 0 6px 18px rgba(0, 0, 0, .05); }
.wsp-page-production .wsp-concern h3 { color: #333; }
.wsp-production-base__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 3px solid #c92727; background: #fff; }
.wsp-production-base__grid article { min-height: 230px; padding: 30px; border-right: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6; }
.wsp-production-base__grid article:nth-child(3n + 1) { border-left: 1px solid #e6e6e6; }
.wsp-production-base__grid span { color: #c92727; font-size: 12px; font-weight: 900; letter-spacing: .1em; }
.wsp-production-base__grid h3 { margin: 36px 0 12px; color: #1f2a44; font-size: 20px; line-height: 1.5; }
.wsp-production-base__grid p { margin: 0; color: #555; font-size: 14px; line-height: 1.9; }
.wsp-production-plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); align-items: stretch; gap: 22px; }
.wsp-production-plan { position: relative; display: flex; min-width: 0; flex-direction: column; padding: 30px 26px 26px; border: 1px solid #e6e6e6; border-radius: 14px; background: #fff; box-shadow: 0 10px 28px rgba(0, 0, 0, .06); }
.wsp-production-plan--recommended { border: 2px solid #c92727; }
.wsp-production-plan__badge { position: absolute; top: -15px; right: 22px; margin: 0; padding: 5px 15px; border-radius: 999px; background: #c92727; color: #fff; font-size: 12px; font-weight: 800; }
.wsp-production-plan header { padding-bottom: 23px; border-bottom: 1px solid #eee; }
.wsp-production-plan header small { color: #c92727; font-weight: 900; letter-spacing: .14em; }
.wsp-production-plan header h3 { margin: 8px 0 17px; color: #1f2a44; font-size: 24px; }
.wsp-production-plan header p { display: flex; align-items: baseline; gap: 5px; margin: 0; color: #1f2a44; }
.wsp-production-plan header strong { color: #c92727; font-size: 44px; line-height: 1; letter-spacing: -.04em; }
.wsp-production-plan header span { font-size: 15px; font-weight: 800; }
.wsp-production-plan__fit { min-height: 92px; margin: 22px 0; color: #4c4c4c; font-size: 15px; font-weight: 700; }
.wsp-production-plan h4 { margin: 0 0 15px; color: #1f2a44; font-size: 15px; }
.wsp-production-plan ul { display: grid; margin: 0; padding: 0; gap: 10px; list-style: none; }
.wsp-production-plan li { position: relative; padding-left: 24px; color: #333; font-size: 14px; line-height: 1.7; }
.wsp-production-plan li::before { position: absolute; left: 0; color: #c92727; content: "✓"; font-weight: 900; }
.wsp-production-plan__note { margin: 22px 0; color: #666; font-size: 12px; line-height: 1.75; }
.wsp-production-plan > a { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding: 14px 0 2px; border-top: 1px solid #eee; color: #c92727; font-size: 14px; font-weight: 800; }
.wsp-production-price-note { margin: 24px 0 0; color: #646464; font-size: 13px; }
.wsp-production-compare { background: #f5f4f1; }
.wsp-production-table-wrap { overflow-x: auto; border: 1px solid #e6e6e6; border-radius: 12px; background: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .05); }
.wsp-production-table-wrap table { width: 100%; min-width: 720px; border-collapse: collapse; }
.wsp-production-table-wrap th,
.wsp-production-table-wrap td { padding: 18px 20px; border-right: 1px solid #eee; border-bottom: 1px solid #eee; text-align: center; }
.wsp-production-table-wrap thead th { background: #fbeaea; color: #1f2a44; font-size: 14px; }
.wsp-production-table-wrap thead th:first-child { background: #fff; }
.wsp-production-table-wrap tbody th { width: 43%; background: #fafafa; color: #333; font-size: 14px; text-align: left; }
.wsp-production-table-wrap td { color: #4c4c4c; font-size: 14px; font-weight: 700; }
.wsp-production-table-wrap td b { color: #c92727; }
.wsp-production-table-wrap tr:last-child th,
.wsp-production-table-wrap tr:last-child td { border-bottom: 0; }
.wsp-production-table-wrap th:last-child,
.wsp-production-table-wrap td:last-child { border-right: 0; }
.wsp-production-options__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.wsp-production-options__grid article { display: grid; grid-template-columns: 42px 1fr; gap: 18px; padding: 28px; border: 1px solid #e6e6e6; border-radius: 10px; background: #fff; }
.wsp-production-options__grid span { color: #c92727; font-size: 12px; font-weight: 900; }
.wsp-production-options__grid h3 { margin: 0 0 8px; color: #1f2a44; font-size: 18px; }
.wsp-production-options__grid p { margin: 0; color: #555; font-size: 14px; }
.wsp-production-options__note { margin: 22px 0 0; color: #646464; font-size: 13px; }
.wsp-page-production .wsp-results { background: #1f2a44; }
.wsp-page-production .wsp-results h2 { color: #fff; }
.wsp-page-production .wsp-results .wsp-kicker { color: #fff; }
.wsp-page-production .wsp-results li { border: 1px solid rgba(255, 255, 255, .16); border-radius: 8px; }
.wsp-page-production .wsp-process li { border: 1px solid #eee; border-radius: 10px; box-shadow: none; }
.wsp-page-production .wsp-faq details { border: 1px solid #eee; border-radius: 10px; box-shadow: none; }
.wsp-page-production .wsp-related__grid a { border: 1px solid #e6e6e6; border-radius: 10px; box-shadow: none; }
.wsp-page-production .wsp-contact__panel { border-radius: 14px; background: #c92727; box-shadow: 0 12px 30px rgba(201, 39, 39, .22); }
.wsp-page-production .wsp-contact__panel::after { display: none; }
.wsp-page-production .wsp-contact h2 { color: #fff; }
.wsp-page-production .wsp-footer { background: #4b4b4b; }
.wsp-page-production .wsp-footer__nav b { color: #fff; }

@media (max-width: 900px) {
	.wsp-page-production .wsp-header { padding-inline: 21px; }
	.wsp-page-production .wsp-hero__grid { grid-template-columns: 1fr; gap: 20px; }
	.wsp-page-production .wsp-production-works { width: min(680px, 100%); min-height: 480px; margin-inline: auto; }
	.wsp-production-base__grid { grid-template-columns: repeat(2, 1fr); }
	.wsp-production-base__grid article:nth-child(3n + 1) { border-left: 0; }
	.wsp-production-base__grid article:nth-child(2n + 1) { border-left: 1px solid #e6e6e6; }
	.wsp-production-plan-grid { grid-template-columns: 1fr; max-width: 660px; margin-inline: auto; }
	.wsp-production-plan__fit { min-height: 0; }
}

@media (max-width: 620px) {
	.wsp-page-production .wsp-header { top: 0; width: 100%; min-height: 62px; padding: 9px 16px; border-radius: 0; }
	.wsp-page-production .wsp-breadcrumb { padding-top: 83px; }
	.wsp-page-production .wsp-hero { padding-top: 4px; }
	.wsp-page-production .wsp-hero__grid { padding-top: 18px; }
	.wsp-page-production .wsp-hero h1 { font-size: 38px; }
	.wsp-page-production .wsp-hero__actions { grid-template-columns: 1fr; }
	.wsp-page-production .wsp-production-works { min-height: 330px; }
	.wsp-page-production .wsp-production-works figure:nth-child(1) { width: 80%; }
	.wsp-page-production .wsp-production-works figure:nth-child(2) { width: 66%; }
	.wsp-page-production .wsp-production-works figure:nth-child(3) { width: 46%; }
	.wsp-page-production .wsp-production-works figcaption { padding: 6px 8px; font-size: 10px; }
	.wsp-page-production .wsp-promise { margin-top: 18px; }
	.wsp-page-production .wsp-section { padding: 68px 0; }
	.wsp-production-base__grid { grid-template-columns: 1fr; }
	.wsp-production-base__grid article,
	.wsp-production-base__grid article:nth-child(3n + 1) { min-height: 0; border-left: 1px solid #e6e6e6; }
	.wsp-production-base__grid h3 { margin-top: 20px; }
	.wsp-production-plan { padding: 27px 21px 22px; }
	.wsp-production-plan header strong { font-size: 40px; }
	.wsp-production-options__grid { grid-template-columns: 1fr; }
	.wsp-production-options__grid article { grid-template-columns: 34px 1fr; padding: 23px 20px; }
}
