/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/* 黄色マーカー */
.marker {
	background: linear-gradient(transparent 76.8%, #ff3c 76.8%)
}
/* Responsive design for text with br */
@media(min-width: 769px) {
	.none-br-on-desktop br {
    	display: none;
	}
}
@media(max-width: 768px) {
	.none-br-on-mobile br {
    	display: none;
	}
}
/* Hover cursor */
a:hover {
    cursor: pointer;
}

/* メニューリンク */

.main-navigation .main-nav ul li a {
	font-weight: 700;
	color: var(--contrast)!important;
	font-size: 14px;
	padding: 0 8px;
}
#menu-primary-menu li.menu-item-type-custom a::before {
    content: attr(data-desc);
    display: inline-block;
}
.main-navigation .main-nav ul li.menu-item-type-custom a {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    line-height: 1;
    gap: .75em;
    padding-top: .75em;
    padding-bottom: .75em;
    border-bottom: solid 2px #fff;
	min-height: 54px;
	justify-content: center;
}
.main-navigation .main-nav ul li.menu-item-type-custom a:hover,
.main-navigation .main-nav ul li.menu-item-type-custom a:focus,
.main-navigation .main-nav ul li.menu-item-type-custom a:active {
    border-bottom: solid 2px var(--contrast);
}

.speech-simple:before {
	content: '\FF3C';
}
.speech-simple:after {
	content: '\FF0F';
}

/* 言語スイッチャー */
li.menu-item-type-custom.lang-item-ja {
    margin: 0 0 0 16px ;
}
li.menu-item-type-custom.lang-item {
    min-width: 2.5em;
}
li.menu-item-type-custom.lang-item a::before {
    font-size: .83em;
    color: #555;
}
li.menu-item-type-custom.lang-item.lang-item-ja a::before {
	content: '\65E5\672C\8A9E'!important;
}
li.menu-item-type-custom.lang-item.lang-item-en a::before {
	content: 'English'!important;
}
li.menu-item-type-custom.current-lang a {
	pointer-events: none;
}
li.lang-item a {
	opacity: .7;
}
li.lang-item.current-lang a {
	opacity: 1;
}
li.menu-item-type-custom.lang-item a:hover,
li.menu-item-type-custom.lang-item a:focus,
li.menu-item-type-custom.lang-item a:active {
    border-bottom-color: #555!important;
}

@media(max-width:768px) {
    .main-navigation.toggled .main-nav ul {
        display: flex!important;
        justify-content: center;
    }
    .main-navigation.toggled .main-nav .wp-block-button {
        width: 100%!important;
        display: flex;
        justify-content: center;
    }
    .main-navigation.toggled .main-nav .wp-block-button a {
        width: fit-content;
    }
    .main-navigation.toggled li.menu-item-type-custom.lang-item-ja {
        margin: 0 8px 0 0;
    }
    .main-navigation.toggled li.menu-item-type-custom.lang-item {
        max-width: 80px;
        padding-bottom: 16px;
    }
    .main-navigation.toggled .main-nav li.lang-item a {
        border-bottom: none!important
    }
    .main-navigation.toggled li.menu-item-type-custom.lang-item a::after {
        content: unset!important;
    }
    li.lang-item {
        position: absolute;
        top: -68px;
        display: block!important;
        right: 30px;
    }
    li.lang-item a {
        padding: 0!important;
        width: 60px!important;
    }
    li.lang-item.lang-item-ja {
        right: 78px;
    }
}

/* 下部固定CTA */
.float-cta {
    padding: 16px 0 !important;
    backdrop-filter: blur(16px);
    background: #fff;
    width: -webkit-fill-available !important;
    left: 0 !important;
}
.float-cta a {
    max-width: fit-content;
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #fff;
    text-decoration: none;
    background: var(--accent);
    border-radius: 5em;
    padding: 1em 2.5em;
	font-size: .85em;
}
.float-cta a .cta-text {
    font-size: 1.3em;
    font-weight: 700;
}
.float-cta a:hover,
.float-cta a:active,
.float-cta a:focus {
	opacity: .8;
}
.float-cta.uagb-position__sticky--stuck {
    background: #fff6;
}

/* リンクボタン装飾 */
#menu-item-2170 a,
#menu-item-4022 a {
	line-height: 48px;
	border-radius: 24px;
	padding: 0 16px;
	background: var(--accent);
	color: var(--base-3)!important;
	text-decoration: none!important;
	margin-left: 12px;
}
.wp-block-button a, button {
	position: relative!important;
}
.wp-block-button a:hover::before,
.wp-block-button a:focus::before,
.wp-block-button a:active::before,
button:hover::before,
button:focus::before,
button:active::before {
	background: linear-gradient(135deg, #fffa 0 48.6%, #fffd 61.8% 69.9%, #fff 69.9% 70.5%, #fffd 70.5% 78.6%, #fff8 91.8% 100%);
	content: "";
	display: inline-block!important;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: -webkit-fill-available;
	border-radius: 30px;
	opacity: .3;
}

/* コンテナ余白調整 */
.separate-containers .site-main {
	margin: 0;
}
.separate-containers .inside-article {
	padding: 0
}

/* サイトトップの取り組み開始までの流れ */
#how-it-works h3 {
    padding-bottom: .75em;
    font-size: 1.3em;
    font-weight: 600;
    margin: 0;
    border-bottom: dashed 2px #555;
}
#how-it-works p {
	margin: 0;
}
.works-steps .wp-block-uagb-container:not(:last-of-type) {
  position: relative;
}
.works-steps .wp-block-uagb-container:not(:last-of-type)::before,
.works-steps .wp-block-uagb-container:not(:last-of-type)::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: -24px;
  width: 28px;
  height: 2.5px;
  border-radius: 9999px;
  background-color: #fff;
  transform-origin: calc(100% - 1px) 50%;
}
.works-steps .wp-block-uagb-container:not(:last-of-type)::before {
  transform: rotate(65.5deg);
}
.works-steps .wp-block-uagb-container:not(:last-of-type)::after {
  transform: rotate(-65.5deg);
}
@media(max-width: 976px) {
  .works-steps .wp-block-uagb-container:not(:last-of-type)::before,
  .works-steps .wp-block-uagb-container:not(:last-of-type)::after {
    left: calc(50% - 1px);
    top: unset;
    bottom: -32px;
    width: 2.5px;
    height: 28px;
    transform-origin: 50% calc(100% - 1px);
  }
}

/* サイトトップのレスポンシブ対応 */
@media(min-width: 767px) and (max-width: 800px) {
	.wrapped_title .uagb-ifb-desc br {
		display: none!important;
	}
}
@media(max-width: 560px) {
	.wrapped_title .uagb-ifb-title {
		font-size: 8vw;
	}
	.wrapped_title .uagb-ifb-desc {
		font-size: .9em;
	}
}
@media(min-width: 414px) {
	.wrapped_title .uagb-ifb-title-prefix br {
		display: none!important;
	}
}

/* トップフォームデザイン調整 */
#splendid_form_wrapper .wp-block-group__inner-container {
	padding: 25px 25px 15px;
}
#splendid_form .wp-block-button {
	margin-top: 10px;
}
#splendid_form .uagb-forms-input-label {
	background: var(--base-2);
	padding: 8px 12px 0;
	margin-bottom: -4px!important;
	border-top: dotted 1px #ccc;
	font-weight: 600;
}
#splendid_form textarea {
	resize: none;
}
.splendid_form_wrapper,
.splendid_form_wrapper .uagb-forms__outer-wrap,
.splendid_form_wrapper .uagb-forms-success-message {
    height: -webkit-fill-available;   
	min-height: 390px;
}

/* アイコンリストのサイズ調整 */
.custom_icon_list svg {
    width: 14px!important;
    height: 14px!important;
}

/* ギャラリー画像のホバーでの挙動＆デザイン調整 */
.spectra-image-gallery__media-thumbnail-caption a {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.5em;
    text-decoration: none;
}

/* SureCartデザイン調整 */
.sc-product-item-link .wp-block-group__inner-container {
	padding: 0;
}
.sc-product-template-columns-3 {
	display: flex;
	gap: 15px;
	flex-direction: column;
}

/* フッター背景色の変更 */
.site-info {
	background-color: var(--base-2);
}
.footer-widgets {
	background-color: var(--base-2);
}

/* フッター余白調整 */
.footer-widgets .widget {
	margin-bottom: 20px;
}
/* フッターウィジェット */
#footer-widgets .menu a {
	color: var(--contrast);
	text-decoration: none;
}
#footer-widgets .menu a:hover,
#footer-widgets .menu a:focus,
#footer-widgets .menu a:active {
	text-decoration: underline;
}
#menu-related-links a::after {
    content: attr(data-desc);
    display: block;
    color: #555;
    font-size: .88em;
}
#menu-related-links {
    text-align: center;
    background: #fff;
    border-radius: 30px;
    padding: 16px 0;
}
.footer-widget-3 .widget_block {
    margin: 0;
}
.related-links-description {
    font-size: .88em;
    color: #555;
    margin-bottom: 1em!important;
}

/* フッターバー */
.site-info {
	font-size: 13px;
}
.footer-bar ul {
	display: flex;
}
.footer-bar li {
	margin: 0;
}
.footer-bar li:not(:last-child) {
	margin: 0 .75em 0 0;
	padding: 0 .75em 0 0;
	border-right: solid 1px #aaa;
}
.footer-bar .widget_nav_menu li:last-child {
	margin: 0;
}
.footer-bar a {
	text-decoration: none;
	color: var(--contrast);
}
.footer-bar a:hover,
.footer-bar a:focus,
.footer-bar a:active {
	text-decoration: underline;
}
@media(max-width:976px) {
    .footer-widget-2 {
        display: none;
    }
}

/* 最大表示幅の調整 */
.max_w_650 {
	max-width: 650px;
	margin-left: auto;
	margin-right: auto;
	width:calc(100% - 48px)!important;
}

/* タブレットヘッダー余白調整 */
@media (max-width: 1024px) {
	.inside-header {
		padding: 10px 20px;
	}
	.site-header .header-image {
		max-width: 160px;
	}
}

/* チーム紹介 */
.team-intro .wp-block-uagb-container .wp-block-uagb-container {
    box-shadow: 5px 5px 0 #fff9;
}
.team-intro .uagb-ifb-title-wrap {
    display: flex;
    flex-direction: column-reverse;
    margin-bottom: .5em;
    line-height: 1.25;
}
.team-intro .uagb-ifb-title-wrap p,
.team-intro .uagb-ifb-title-wrap span {
    margin: 0!important;
}
@media(min-width:977px) and (max-width:1200px) {
    .team-intro {
        font-size: .9em;
    }
}
@media(min-width:768px) and (max-width:976px) {
    .team-intro .uagb-ifb-title-wrap p {
        font-size: 1.3em;
    }
    .team-intro {
        font-size: .8em;
    }
}
@media(max-width:767px) {
    .team-intro .wp-block-uagb-container {
        max-width: 384px!important;
    }
}
@media(max-width:428px) {
    .about-table {
        font-size: 3.6vw
    }
}

/* 表のスタイル調整 */
.wp-block-table.is-style-stripes {
    border: 0;
}
.wp-block-table table {
    margin-bottom: 0;
}

/* モバイルヘッダー余白＆デザイン調整 */
@media (max-width: 768px) {
	.has-inline-mobile-toggle .inside-header {
		padding: 0;
	}
	.has-inline-mobile-toggle #site-navigation.toggled {
		margin: 0;
		border-top: dotted 1px #ccc;
	}
	.site-header .header-image {
		max-width: 128px;
		margin: 8px 0 8px 8px;
	}
	.mobile-menu-control-wrapper .menu-toggle,
	.mobile-menu-control-wrapper .menu-toggle:hover,
	.mobile-menu-control-wrapper .menu-toggle:focus {
		background: #fff;
	}
	.has-inline-mobile-toggle #site-navigation.toggled {
		background: #fff;
		position: absolute;
		top: 80px;
		width: 100vw;
	}
	.mobile-menu-control-wrapper .gp-icon svg {
		height: 1.5em;
		width: 1.5em;
		top: .3em;
	}
	.main-navigation.toggled .main-nav li a {
		border-bottom: dashed 1px #ccc!important;
		padding: 0 20px;
		line-height: 56px;
	}
	.main-navigation.toggled .main-nav li a:after {
		content: "";
		position: absolute;
		top: 50%;
		right: 33px;
		width: 10px;
		height: 10px;
		border-top: 2px solid;
		border-right: 2px solid;
		transform: rotate(45deg) translateY(-50%);
	}
	#menu-item-2170,
    #menu-item-4022 {
		width: fit-content;
		margin: 16px auto;
	}
	#menu-item-2170 a,
    #menu-item-4022 a {
		padding: 0 20px;
		border-radius: 22px;
		line-height: 44px;
		background: var(--accent);
		font-size: 14px!important;
		margin: 0 30px;
		border:0!important;
		box-shadow: 0 2px 0 #3333;
	}
	#menu-item-2170 a:after,
    #menu-item-4022 a:after {
		display: none;
	}
}

/* Privacy Policy */
.privacy-policy h1 {
    margin: 36px 12px 0!important;
}
.privacy-policy h2 {
    background: var(--base-2);
    padding: 12px 16px;
    border-top: solid 1px;
    border-bottom: solid 1px;
    font-size: 32px;
    text-indent: -1em;
    padding-left: 1.5em;
}
.privacy-policy .uagb-container-inner-blocks-wrap {
    max-width: 800px!important;
}
@media(max-width:428px) {
    .privacy-policy h1 {
        font-size: 36px;
        line-height: 1.3;
    }
    .privacy-policy h2 {
        font-size: 18px;
        line-height: 1.3;
    }    
}