@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* --------------------------------------------------------------------------
   IBUKI top page main visual
   -------------------------------------------------------------------------- */
:root { --ibuki-blue: #082d62; --ibuki-cyan: #04a6d4; --ibuki-green: #49bf90; }
/* Contact Form 7 */
.ibuki-contact-form { max-width: 820px; margin: 0 auto; color: #26363d; }
.ibuki-contact-form__field { margin: 0 0 26px; }
.ibuki-contact-form__label { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; color: var(--ibuki-blue); font-size: 16px; font-weight: 700; }
.ibuki-contact-form__required { padding: 3px 7px; border-radius: 3px; background: #e65c5c; color: #fff; font-size: 11px; line-height: 1; }
.ibuki-contact-form input[type="text"], .ibuki-contact-form input[type="email"], .ibuki-contact-form input[type="tel"], .ibuki-contact-form input[type="date"], .ibuki-contact-form textarea { display: block; box-sizing: border-box; width: 100%; padding: 13px 15px; border: 1px solid #cbd8dc; border-radius: 5px; background: #fff; color: #26363d; font: inherit; line-height: 1.5; }
.ibuki-contact-form input[type="date"] { min-height: 50px; }
.ibuki-contact-form textarea { min-height: 180px; resize: vertical; }
.ibuki-contact-form input:focus, .ibuki-contact-form textarea:focus { border-color: #079dcd; outline: 3px solid rgba(7,157,205,.16); }
.ibuki-contact-form .wpcf7-list-item { margin: 0 18px 0 0; }
.ibuki-contact-form .wpcf7-list-item-label { margin-left: 5px; }
.ibuki-contact-form__consent { margin: 34px 0 24px; text-align: center; }
.ibuki-contact-form__consent .wpcf7-list-item { margin: 0; }
.ibuki-contact-form__consent a { color: #078fbd; text-decoration: underline; text-underline-offset: 3px; }
.ibuki-contact-form__submit { text-align: center; }
.ibuki-contact-form input[type="submit"] { min-width: min(100%, 360px); padding: 17px 32px; border: 0; border-radius: 999px; background: linear-gradient(120deg, #08a7d5, #0795c7); color: #fff; font: inherit; font-size: 18px; font-weight: 700; letter-spacing: .08em; cursor: pointer; box-shadow: 0 8px 16px rgba(0,140,190,.18); }
.ibuki-contact-form input[type="submit"]:hover { opacity: .88; }
.ibuki-contact-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 13px; }
@media (max-width: 600px) { .ibuki-contact-form__field { margin-bottom: 21px; }.ibuki-contact-form__label { font-size: 15px; }.ibuki-contact-form__consent { text-align: left; font-size: 14px; }.ibuki-contact-form input[type="submit"] { width: 100%; } }
/* Prevent Gutenberg pattern blocks from exceeding the content area. */
.post_content .wp-block-columns, .post_content .wp-block-group, .post_content .wp-block-media-text { box-sizing: border-box; max-width: 100%; }
.post_content .wp-block-columns img, .post_content .wp-block-group img, .post_content .wp-block-media-text img { display: block; max-width: 100%; height: auto; }
/* SWELL expands .alignwide by 100px per side on desktop. Keep page patterns inside the content width. */
@media (min-width: 1208px) {
	.post_content .alignwide { left: auto; width: 100%; }
}
/* Make only the header's contact menu item a clear CTA. */
header a[href*="/contact"], #header a[href*="/contact"], .l-header a[href*="/contact"] {
	display: inline-flex;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center;
	justify-content: center;
	height: auto !important;
	align-self: center;
	margin-top: 30px !important;
	padding: 10px 20px;
	border-radius: 999px;
	box-sizing: border-box;
	background: linear-gradient(120deg, #08a7d5, #0795c7);
	color: #fff !important;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: 0 4px 10px rgba(0, 140, 190, .16);
}
header a[href*="/contact"]:hover, #header a[href*="/contact"]:hover, .l-header a[href*="/contact"]:hover {
	color: #fff !important;
	opacity: .88;
}
/* Site-wide footer CTA */
.ibuki-footer-cta { box-sizing: border-box; padding: clamp(42px, 5vw, 82px) 30px; overflow: hidden; background: radial-gradient(ellipse at 50% 42%, #e6f7ed 0%, #fff 66%); }
.ibuki-footer-cta__card { position: relative; isolation: isolate; width: min(1000px, 100%); min-height: 520px; margin: auto; overflow: hidden; border-radius: 28px; background-color: #eef8ef; background-position: right center; background-size: cover; box-shadow: 0 18px 36px rgba(12,72,49,.12); }
@media (min-width: 801px) { .ibuki-footer-cta__card { aspect-ratio: auto; min-height: 520px; } }
.ibuki-footer-cta__wash { position: absolute; z-index: -1; inset: 0 auto 0 0; width: 64%; background: linear-gradient(105deg, rgba(255,255,255,.99) 0%, rgba(255,255,255,.98) 72%, rgba(255,255,255,.14) 100%); clip-path: ellipse(88% 92% at 0% 50%); }
.ibuki-footer-cta__card::before, .ibuki-footer-cta__card::after { content: ''; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }.ibuki-footer-cta__card::before { width: 600px; height: 300px; bottom: -220px; left: -120px; border: 32px solid rgba(218,245,224,.6); }.ibuki-footer-cta__card::after { width: 500px; height: 660px; top: -130px; left: 42%; background: linear-gradient(150deg, rgba(226,248,227,.8), rgba(255,255,255,0)); transform: rotate(19deg); }
.ibuki-footer-cta__content { position: relative; z-index: 1; box-sizing: border-box; width: min(790px, 56%); padding: 48px 0 38px 62px; color: #14252a; }.ibuki-footer-cta__eyebrow { display: flex; align-items: center; gap: 17px; margin: 0 0 14px; color: #3caa6e; font-size: 17px; font-weight: 600; letter-spacing: .32em; }.ibuki-footer-cta__eyebrow span { width: 97px; height: 1px; background: currentColor; }.ibuki-footer-cta h2 { margin: 0; color: #105b3e; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 34px; line-height: 1.4; font-weight: 600; letter-spacing: .025em; }.ibuki-footer-cta__lead { margin: 17px 0 21px; font-size: 17px; line-height: 1.7; letter-spacing: .03em; }.ibuki-footer-cta__button { display: flex; align-items: center; justify-content: center; gap: 18px; width: min(520px, 100%); min-height: 74px; padding: 14px 35px; border-radius: 99px; background: linear-gradient(120deg, #08a7d5, #0795c7); color: #fff !important; font-size: 22px; font-weight: 700; letter-spacing: .12em; text-decoration: none; box-shadow: 0 10px 20px rgba(0,150,194,.18); transition: transform .2s, opacity .2s; }.ibuki-footer-cta__button:hover { transform: translateY(-3px); opacity: .92; }.ibuki-footer-cta__button svg { width: 32px; }.ibuki-footer-cta__button b { margin-left: auto; font-size: 40px; font-weight: 300; line-height: .5; }
.ibuki-mv { isolation: isolate; position: relative; left: 50%; width: 100vw; margin-left: -50vw; overflow: hidden; min-height: 690px; color: var(--ibuki-blue); background: #f8fffd; }
.ibuki-mv__background, .ibuki-mv__soften { position: absolute; inset: 0; pointer-events: none; }
.ibuki-mv__background { z-index: -3; background-position: center; background-size: cover; }
.ibuki-mv__soften { z-index: -2; background: linear-gradient(90deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.80) 38%, rgba(255,255,255,.10) 67%, rgba(255,255,255,.05)); }
.ibuki-mv::before, .ibuki-mv::after { content: ''; z-index: -1; position: absolute; border-radius: 50%; pointer-events: none; }
.ibuki-mv::before { width: 820px; height: 820px; top: -210px; left: -380px; background: rgba(210,249,244,.46); }
.ibuki-mv::after { width: 420px; height: 280px; right: -150px; bottom: -185px; background: #c8f2ee; }
.ibuki-mv__inner { width: min(1720px, calc(100% - 80px)); min-height: 690px; margin: 0 auto; position: relative; }
.ibuki-mv__copy { position: relative; z-index: 2; width: 920px; padding-top: 72px; }
.ibuki-mv__eyebrow { margin: 0 0 8px; font-size: 29px; line-height: 1.35; font-weight: 700; color: #049dd0; letter-spacing: .08em; }
.ibuki-mv h1 { margin: 0; color: var(--ibuki-blue); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(42px, 3.8vw, 64px); line-height: 1.42; font-weight: 600; letter-spacing: .025em; }
.ibuki-mv__rule { display: block; width: 74px; height: 3px; margin: 26px 0 22px; background: var(--ibuki-green); }
.ibuki-mv__lead { margin: 0; color: #28333f; font-size: 19px; line-height: 1.72; letter-spacing: .04em; }
.ibuki-mv__person { position: absolute; z-index: 1; right: 320px; bottom: 0; height: min(670px, 46vw); }
.ibuki-mv__person img { display: block; width: auto; height: 100%; }
.ibuki-mv__message { position: absolute; z-index: 3; top: 105px; right: 150px; width: min(300px, 19vw); margin: 0; }
.ibuki-mv__message img { display: block; width: 100%; height: auto; }
.ibuki-mv__seal { position: absolute; z-index: 3; right: 165px; bottom: 45px; display: flex; flex-direction: column; align-items: center; justify-content: center; box-sizing: border-box; width: 205px; height: 205px; border-radius: 50%; background: rgba(255,255,255,.93); text-align: center; box-shadow: 0 5px 15px rgba(9,62,81,.04); }
.ibuki-mv__seal svg { width: 41px; margin-bottom: 4px; }.ibuki-mv__seal p { margin: 0; font-family: "Yu Mincho", serif; font-size: 16px; }.ibuki-mv__seal strong { font-family: "Yu Mincho", serif; font-size: 25px; font-weight: 500; letter-spacing: .05em; }.ibuki-mv__seal small { margin-top: 7px; font-size: 13px; }
.ibuki-mv__cta { position: absolute; z-index: 4; bottom: 50px; left: 0; display: flex; align-items: center; justify-content: center; gap: 18px; box-sizing: border-box; width: 520px; min-height: 74px; padding: 14px 35px; border-radius: 100px; background: linear-gradient(120deg, #08a7d5, #0795c7); color: #fff !important; font-size: 22px; font-weight: 700; letter-spacing: .12em; text-decoration: none; box-shadow: 0 10px 20px rgba(0,150,194,.18); }.ibuki-mv__cta:hover { transform: translateY(-2px); opacity: 1; }.ibuki-mv__cta svg { width: 32px; }.ibuki-mv__cta b { margin-left: auto; font-size: 40px; line-height: .5; font-weight: 300; }
.ibuki-points { position: relative; z-index: 5; left: 50%; width: 100vw; margin-left: -50vw; background: #fff; color: var(--ibuki-blue); }.ibuki-points__inner { display: flex; align-items: center; width: min(1400px, calc(100% - 60px)); min-height: 145px; margin: auto; }.ibuki-point { display: flex; align-items: center; gap: 18px; flex: 1; min-height: 62px; padding: 0 30px; border-right: 1px solid #d7e2e7; }.ibuki-point:first-child { padding-left: 0; }.ibuki-point:nth-child(4) { border: 0; }.ibuki-point p { margin: 0; }.ibuki-point strong, .ibuki-point span { display: block; white-space: nowrap; }.ibuki-point strong { font-family: "Yu Mincho", serif; font-size: 17px; }.ibuki-point span { margin-top: 4px; color: #74869c; font-size: 13px; }.ibuki-icon { display: grid; flex: 0 0 58px; width: 58px; height: 58px; place-items: center; border: 2px solid #00a4d8; border-radius: 50%; box-sizing: border-box; color: #00a4d8; }.ibuki-icon svg { width: 43px; height: 43px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.4; }.ibuki-scroll { align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 65px; margin-left: 10px; color: #6c87aa; font-size: 11px; }.ibuki-scroll b { color: #00a4d8; font-size: 40px; font-weight: 300; line-height: 1.25; }
@media (max-width: 1024px) { .ibuki-mv { min-height: 1120px; }.ibuki-mv__inner { width: 100%; min-height: 1120px; }.ibuki-mv__background { background-position: 55% center; }.ibuki-mv__soften { background: linear-gradient(90deg, rgba(255,255,255,.86), rgba(255,255,255,.47) 58%, rgba(255,255,255,.06)); }.ibuki-mv::before { width: 660px; height: 660px; top: -180px; left: -350px; }.ibuki-mv__copy { width: auto; padding: 105px 58px 0; }.ibuki-mv__eyebrow { font-size: 31px; }.ibuki-mv h1 { font-size: clamp(43px, 8vw, 64px); line-height: 1.45; }.ibuki-mv__lead { font-size: 19px; }.ibuki-mv__person { width: auto; height: 850px; right: 12vw; bottom: 30px; }.ibuki-mv__message { top: 65px; right: 20px; width: 250px; }.ibuki-mv__seal { width: 195px; height: 195px; right: 40px; bottom: 240px; }.ibuki-mv__cta { right: 10%; bottom: 48px; left: 10%; width: 80%; }.ibuki-points__inner { width: 100%; min-height: 230px; }.ibuki-point { flex-direction: column; justify-content: flex-start; gap: 12px; min-height: 160px; padding: 0 15px; text-align: center; }.ibuki-point strong, .ibuki-point span { white-space: normal; }.ibuki-point strong { font-size: 15px; }.ibuki-point span { font-size: 12px; }.ibuki-scroll { display: none; } }
@media (max-width: 600px) { .ibuki-mv { min-height: 1100px; }.ibuki-mv__copy { padding: 102px 36px 0; }.ibuki-mv__eyebrow { font-size: 25px; }.ibuki-mv h1 { font-size: clamp(37px, 11vw, 52px); }.ibuki-mv__rule { margin: 24px 0 24px; }.ibuki-mv__lead { font-size: 17px; line-height: 1.75; }.ibuki-mv__person { width: auto; height: 710px; right: -23vw; bottom: 78px; }.ibuki-mv__message { top: 48px; right: 14px; width: 245px; }.ibuki-mv__seal { width: 160px; height: 160px; right: 24px; bottom: 255px; }.ibuki-mv__seal svg { width: 31px; }.ibuki-mv__seal p { font-size: 13px; }.ibuki-mv__seal strong { font-size: 20px; }.ibuki-mv__seal small { font-size: 11px; }.ibuki-mv__cta { right: 9%; bottom: 42px; left: 9%; width: 82%; min-height: 68px; gap: 13px; padding: 12px 25px; font-size: 20px; letter-spacing: .06em; }.ibuki-mv__cta svg { width: 29px; }.ibuki-mv__cta b { font-size: 35px; }.ibuki-points__inner { align-items: stretch; min-height: 225px; }.ibuki-point { flex-basis: 25%; gap: 10px; min-height: 190px; padding: 24px 6px 0; }.ibuki-icon { flex-basis: 54px; width: 54px; height: 54px; }.ibuki-point strong { font-size: 14px; line-height: 1.45; }.ibuki-point span { font-size: 11px; line-height: 1.55; } }
/* Keep the copy and portrait separate at tablet landscape widths. */
@media (min-width: 601px) and (max-width: 1024px) {
	.ibuki-mv h1 { font-size: 50px; }
	.ibuki-mv__person { right: -5vw; }
	.ibuki-mv__message { right: 5px; width: 210px; }
}

/* Mobile: reserve a dedicated lower area for the portrait. */
@media (max-width: 600px) {
	.ibuki-mv, .ibuki-mv__inner { min-height: 1250px; }
	.ibuki-mv__person { top: 590px; right: -18vw; bottom: auto; height: 530px; }
	.ibuki-mv__message { top: 705px; right: auto; left: 12px; width: 230px; }
}
@media (max-width: 781px) {
	body { overflow-x: clip; }
	.post_content .wp-block-columns:not(.is-not-stacked-on-mobile), .post_content .wp-block-media-text { grid-template-columns: 1fr; flex-direction: column; gap: 0; }
	.post_content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column, .post_content .wp-block-media-text > * { width: 100%; min-width: 0; }
	/* Core patterns add inline grid columns and .alignwide margins. Reset both on mobile. */
	.post_content .wp-block-media-text.alignwide.is-stacked-on-mobile { display: block; width: 100% !important; max-width: 100% !important; margin-right: 0 !important; margin-left: 0 !important; }
	.post_content .wp-block-media-text.alignwide.is-stacked-on-mobile > .wp-block-media-text__media,
	.post_content .wp-block-media-text.alignwide.is-stacked-on-mobile > .wp-block-media-text__content { width: 100% !important; max-width: 100%; min-width: 0; }
}
@media (max-width: 800px) { .ibuki-footer-cta { padding: 42px 18px; }.ibuki-footer-cta__card { min-height: 610px; border-radius: 20px; background-position: 62% center; }.ibuki-footer-cta__wash { width: 100%; background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.94) 49%, rgba(255,255,255,.22) 77%, rgba(255,255,255,.08)); clip-path: none; }.ibuki-footer-cta__card::after { display: none; }.ibuki-footer-cta__content { width: 100%; padding: 48px 28px 35px; }.ibuki-footer-cta__eyebrow { margin-bottom: 18px; font-size: 14px; }.ibuki-footer-cta h2 { font-size: clamp(28px, 8vw, 42px); line-height: 1.4; }.ibuki-footer-cta__lead { margin: 22px 0 26px; font-size: 15px; line-height: 1.8; }.ibuki-footer-cta__lead br { display: none; }.ibuki-footer-cta__button { min-height: 68px; gap: 13px; padding: 12px 25px; font-size: 20px; letter-spacing: .06em; }.ibuki-footer-cta__button svg { width: 29px; }.ibuki-footer-cta__button b { font-size: 35px; } }

/* Header navigation: make items with a child menu immediately identifiable. */
header .menu-item-has-children > a,
#header .menu-item-has-children > a,
.l-header .menu-item-has-children > a {
	padding-right: 0 !important;
	padding-left: 1.15em !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23333' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: left center;
	background-size: .7em auto;
}
header .menu-item-has-children > a::after,
#header .menu-item-has-children > a::after,
.l-header .menu-item-has-children > a::after {
	content: none !important;
}
