/*
Theme Name: Twenty Twenty-Five Child
Description: Child theme for the Twenty Twenty-Five theme
Template: twentytwentyfive
*/

@charset "utf-8";


:root {
	--acc-color: #111111; 
	--sub-color: #eaed5e; 	
	--sub-color-dark: #959809; 	
	--link-color: royalblue; /*#4bf;*/
	--slight-gra: linear-gradient(180deg, rgba(255,255,255,0) 5%, #f7f3f0 100%);
	--wp--style--global--content-size: 770px;
	
	/*
	--wp--preset--spacing--20: 0.63rem;
	--wp--preset--spacing--30: 1.25rem;
	--wp--preset--spacing--40: 2.5rem;
	--wp--preset--spacing--50: clamp(1.88rem, 5vw, 3.13rem);
	--wp--preset--spacing--60: clamp(1.88rem, 7vw, 4.38rem);
	--wp--preset--spacing--70: clamp(3.13rem, 7vw, 5.63rem);
	--wp--preset--spacing--80: clamp(4.38rem, 10vw, 8.75rem);		

		--wp--preset--spacing--20: 10px;
		--wp--preset--spacing--30: 20px;
		--wp--preset--spacing--40: 30px;
		--wp--preset--spacing--50: clamp(30px, 5vw, 50px);
		--wp--preset--spacing--60: clamp(30px, 7vw, 70px);
		--wp--preset--spacing--70: clamp(50px, 7vw, 90px);
		--wp--preset--spacing--80: clamp(70px, 10vw, 140px);		
	*/
}

.note {font-size:0.8em; font-weight:normal;  color:#9e8173; line-height:1.5;}


/* @font-face でローカルフォントを優先 */
@font-face {
	font-family: 'Local Noto Sans JP';
	src: 
		local('Noto Sans JP'), /* Windows用 */
		local('Noto Sans CJK JP Regular') /* Android用 */;
}

body { 
	font-family:
		"Local Noto Sans JP", "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic ProN", "ＭＳ Ｐゴシック", sans-serif, "Takao Pゴシック", "TakaoPGothic", sans-serif, sans;
	font-weight:400;
	overflow-wrap: anywhere; word-break: normal;
	line-break: strict; text-autospace: normal; 
}




:where(.wp-site-blocks :focus) {
	outline-width: 1px !important;
	outline-style: dotted !important;
	outline-color: transparent !important;
}


/* ******************
 Navi
*/
.wp-block-navigation ul.wp-block-page-list li.wp-block-pages-list__item a.wp-block-pages-list__item__link,
ul.wp-block-navigation li.wp-block-navigation-item a.wp-block-navigation-item__content {margin-inline:0.675em; font-weight:500;}

/*

.wp-block-search__inside-wrapper {width:auto; max-width:100vw;}

.wp-block-search__input-9 {max-width:80vw;}
*/


button.wp-block-navigation__responsive-container-open {
	position:fixed; top:1.125rem; right:1.5rem;
	transform:scale(1.6); transform-origin:center center; 
	z-index:10009 !important;
}
button.wp-block-navigation__responsive-container-close {
	position:fixed; top:1.125rem; right:1.5rem;
	transform:scale(1.6); transform-origin:center top; 
	z-index:10009 !important;
}
button.wp-block-navigation__responsive-container-open::after {
	position: absolute;
	left:-1.5em; bottom:-1.25em;
	content: 'メニュー';
	display: block;
	width: 200%;
	color: var(--acc-color);
	font-size: 0.45rem; font-weight:700;
 	text-decoration: none;
	text-align: center;
	transition: all 0.4s;
	z-index:10009 !important;
}
button.wp-block-navigation__responsive-container-close::after {
	position: absolute;
	left:-1.675em; bottom:-1.25em;
	content: '閉じる';
	display: block;
	width: 200%;
	color: var(--acc-color);
	font-size: 0.45rem; font-weight:700;
 	text-decoration: none;
	text-align: center;
	transition: all 0.4s;
	z-index:10009 !important;
}

@media (max-width:599px) {
	header li.wp-block-navigation-item {margin-block:0.5rem; font-size:1.5rem;}
	.wp-block-navigation__responsive-container-content {padding-top:5rem !important;}
	ul.wp-block-social-links {padding:0.75em;}
}

#modal-1.has-background.has-base-background-color {
	background: linear-gradient(180deg, rgba(255,255,255,1) 11%, rgba(255,255,255,0.55) 100%) !important;
	-webkit-backdrop-filter: blur(8px);	
	backdrop-filter: blur(8px);	
}



/* ******************
 templates/front-page.html
*/
/* body.home.page h1.wp-block-post-title {display:none;} */
/* .home.page main .entry-content {margin-block-start:1.2rem;} */



/* ******************
 Post Contnt
*/

@media (min-width:1600px) {
	.entry-content {font-size:19px;}
}
@media (min-width:1200px) and (max-width:1599px) {
	.entry-content {font-size:18px;}	
}
@media (min-width:481px) and (max-width:1199px) {
	.entry-content {font-size:17px;}	
}
@media (max-width: 480px) {
	.entry-content { font-size:16px;}
}


.entry-content.wp-block-post-content a:not([class]) {color:var(--link-color);}
h1.wp-block-post-title {
	font-size:3rem; font-weight:500; 
	max-width:calc(var(--wp--style--global--content-size) + 2.25em) !important;
	letter-spacing:0.125em; margin-bottom:1em;
} 
.entry-content.wp-block-post-content h2:not(.is-style-text-annotation) {
	font-size:2.45rem; font-weight:500;
}
.entry-content.wp-block-post-content h3:not(.is-style-text-annotation) {
	font-weight:500;
}
body:not(.home) .entry-content.wp-block-post-content h3:not(.is-style-text-annotation) {
	font-size:1.675rem; 
	padding-bottom:0.25em;
	border-bottom:1px solid #999;
}

/* iOS, iPad OS 26.x BugFix */
.entry-content p,
.entry-content .wp-block-columns .wp-block-column p {
	text-wrap: wrap;
	word-break: normal; overflow-wrap: anywhere; line-break: strict; text-autospace: normal;
	/*text-align: start; max-inline-size: none;*/ 
}

/*

iOS / iPadOS 26.x 系で確認のバグ：
p幅は100%にもかかわらず、p内の各行文字数がほぼ同数になるように自動改行され、見た目として矩形ブロック状になるバグ。 

ChtGPTさん曰く
「Safari の日本語組版エンジンが行う「段落バランシング」によるものです。狭いカラム + 日本語 + 可変幅フォントの条件で発動しやすく、結果として text-wrap: balance に近い内部処理が適用されるケースがあります。」
とのこと。

.entry-content .wp-block-columns .wp-block-column p {
	text-wrap: wrap;
}

を 明示してやることで解決。

*/


.entry-content ul {padding-left:1.5em;}



@media (max-width:599px) {	
	h1.wp-block-post-title {font-size:2.4rem;}
	.entry-content.wp-block-post-content h2:not(.is-style-text-annotation) {font-size:2rem; font-feature-settings:"palt";}
	.wp-block-gallery.has-nested-images.mobile-single-column .wp-block-image {width:100% !important;}
}



.wp-element-caption,
.blocks-gallery-caption.wp-element-caption {font-size:0.85rem; text-align:right !important;}






/* ******************
 Button
 */
.wp-element-button {font-weight:700;}
.entry-content .wp-element-button {margin-block:0.5rem;}


/* ******************
 Call to Action
 */
aside#cta .wp-block-button__link.has-text-align-center.wp-element-button {min-width:13.5em;  padding-block:1.125em;}




/* ******************
 Contact
*/
.contact .wp-element-button {padding-block:1.125em;}
.contact .entry-content {background:var(	--slight-gra); padding-bottom:4em;}




/* ******************
 Footer
*/
#footer-content-wrapper {max-width:45em !important;}
footer h2 {font-size:1.55rem;}
footer h2 + p {font-size:0.85rem !important; margin-top:0.5rem !important; opacity:0.9 !important;}
@media (max-width:599px) {
	footer .is-content-justification-space-between {justify-content:center !important;}
}




/* ******************
 Universal
*/
.norm {font-weight: normal;}
.bold {font-weight: bold;}
.heavy {font-weight:700;}
.xheavy {font-weight:900;}
.italic {font-style: italic;}

.overline {text-decoration: overline;}
.underline {text-decoration: underline;}
.linethru {text-decoration: line-through;}

.xxxbroad {margin-top:4em !important; margin-bottom:4em !important;}
.xxbroad {margin-top:3em !important; margin-bottom:3em !important;}
.xbroad {margin-top:2em !important; margin-bottom:2em !important;}
.broad {margin-top:1.5em !important; margin-bottom:1.5em !important;}
.regular {margin-top:1em !important; margin-bottom:1em !important;}
.narrow {margin-top:0.5em !important; margin-bottom:0.5em !important;}
.thin {margin-top:0.25em !important; margin-bottom:0.25em !important;}
.flat {margin-top:0 !important; margin-bottom:0 !important;}
.flat-top {margin-top:0 !important;}
.flat-bottom {margin-bottom:0 !important;}
.narrow-top {margin-top:0.5em !important;}
.narrow-bottom {margin-bottom:0.5em !important;}
.regular-top {margin-top:1em !important;}
.regular-bottom {margin-bottom:1em !important;}
.broad-top {margin-top:1.5em !important;}
.broad-bottom {margin-bottom:1.5em !important;}
.xbroad-top {margin-top:2em !important;}
.xbroad-bottom {margin-bottom:2em !important;}
.xxbroad-top {margin-top:3em !important;}
.xxbroad-bottom {margin-bottom:3em !important;}
.xxxbroad-top {margin-top:4em !important;}
.xxxbroad-bottom {margin-bottom:4em !important;}

.ofv {overflow:visible !important;}
.ofh {overflow:hidden;}
.ofa {overflow:auto;}
.ofs {overflow:scroll;}

.tac { text-align:center; }
.tal { text-align:left; }
.tar { text-align:right; }
.taj { text-align:justify; }

.cb {	clear: both; }
.fr { float: right; }
.fl { float: left; }

.ib { display:inline-block;}
.vat {vertical-align:top;}

.posr {position:relative;}
.posa {position:absolute;}

.palt {font-feature-settings:"palt";}
.pkna {font-feature-settings:"pkna";}

.fs50 {font-size: 50%;}
.fs60 {font-size: 60%;}
.fs70 {font-size: 70%;}
.fs75 {font-size: 75%;}
.fs80 {font-size: 80%;}
.fs85 {font-size: 85%;}
.fs90 {font-size: 90%;}
.fs100 {font-size: 100%;}
.fs110 {font-size: 110%;}
.fs120 {font-size: 120%;}
.fs125 {font-size: 125%;}
.fs130 {font-size: 130%;}
.fs140 {font-size: 140%;}
.fs150 {font-size: 150%;}
.fs160 {font-size: 160%;}
.fs170 {font-size: 170%;}
.fs180 {font-size: 180%;}
.fs190 {font-size: 190%;}
.fs200 {font-size: 200%;}
.fs220 {font-size: 220%;}
.fs250 {font-size: 250%;}
.fs300 {font-size: 300%;}
.fs350 {font-size: 350%;}
.fs400 {font-size: 400%;}




/* =========================== 
 　ContactForm7
*/
/*.wpcf7-form {padding:1em; background:rgba(188,188,188,0.2);} */
.wpcf7-form input{width: 14em; font-size:1.1em; padding:0.2em 0.125em; border:1px solid #888;} /*名前、メール、題名*/
.wpcf7-form span.age input{width: 80px; } 
.wpcf7-form span.postal-code1 input, .wpcf7-form span.postal-code2 input,
.wpcf7-form span.postal-code2 input, .wpcf7-form span.postal-code4 input {width: 50px; font-size:1.1em;} /*日付*/
.wpcf7-form span.yen input{width: 130px; font-size:1.5em;} 
.wpcf7-form textarea{width: 99%; font-size:1.1em; padding:0.2em 0.125em; border:1px solid #444} /*本文*/

.wpcf7-form input[type=date] {width:9em;}
.wpcf7-form input[type=radio], .wpcf7-form input[type=checkbox] {width:20px;}
.wpcf7-form input[type=radio]+span, .wpcf7-form input[type=checkbox]+span {display:inline-block; margin-right:20px;}

.wpcf7-form input[name^="address"], .wpcf7-form input[name$="address"] {width: 99%; max-width: 40em;}
.wpcf7-form input[name^="url"], .wpcf7-form input[name$="url"] {width: 99%; max-width: 40em;}
.wpcf7-form input[name^="age"], .wpcf7-form input[name$="age"] {width: 7em;}

.wpcf7-form input[name$="academic-bg"] {width: 99%; max-width: 40em;}



.wpcf7-form input:focus {background:#dff; border:1px solid #000; transition:all 0.3s linear 0s; }
.wpcf7-form textarea:focus {background:#dff; border:1px solid #000; transition:all 0.3s linear 0s; }

.wpcf7-form :placeholder-shown {color: #cdcdcd;}
.wpcf7-form ::-moz-placeholder { color: #cdcdcd; opacity: 1; }
.wpcf7-form :-ms-input-placeholder { color: #cdcdcd;}
.wpcf7-form ::-webkit-input-placeholder { color: #cdcdcd;}


.wpcf7-form .confirm-msg {position:relative; width: 95.5%; padding:1em; background:rgba(100,100,100,0.2); border-radius:4px; font-size:0.77em; color:#f4b; font-weight:bold; line-height:1.5;}
.wpcf7-form .confirm-msg .label-cbx-confirm input {display:none;}
.wpcf7-form .label-cbx-confirm .wpcf7-list-item-label {position:relative; padding-left:2.25em; font-size:0.9rem;}
.wpcf7-form .label-cbx-confirm .wpcf7-list-item-label::before{
	content:""; display:block; position:absolute; 
	top:0; left:0; /*bottom:0;*/ margin:auto;
	width:1.25em; height:1.25em;
	background:#fff; border:2px solid #f4b; border-radius:4px;
	transition:all 0.14s linear 0s;
}
.wpcf7-form .label-cbx-confirm {display:block; width:100%; height:100%;}
.wpcf7-form .label-cbx-confirm input:checked + .wpcf7-list-item-label{
	color:#365E79; font-weight:bold; 
}
.wpcf7-form .label-cbx-confirm input:checked + .wpcf7-list-item-label::before{
	border:2px solid var(--link-color); border-radius:100%; transition:all 0.33s linear 0s;
}
.wpcf7-form .label-cbx-confirm input:checked + .wpcf7-list-item-label::after{
	content:""; display:block; position:absolute; 
	top: -0.5em; left: 0.35em; width:0.7em; height:1.4em;
	border-bottom: 3px solid #365E79; border-right: 3px solid #365E79;
	transform:rotate(40deg); 
	box-shadow:1px 1px 0 0 #fff;
}


.wpcf7-form .wpcf7-submit {
	width:auto !important;
    font-size: 1.4em !important;
	margin:1.5em 1em 0.5em !important;
    padding: 0.75em 2.5em !important;
    color: #fff !important; font-weight:bold;
	border-radius:4px !important;
	border:1px solid rgba(255,255,255,0.5); 
	background:var(--acc-color);
	letter-spacing:0.5em; text-indent:0.5em;
}
.wpcf7-form .wpcf7-submit:hover {
	background:#4169e1 url(./img/bg/pattern.png); cursor: pointer;
}
.wpcf7-form .wpcf7-submit:active {
	background:var(--acc-color); filter:saturate(170%);	
}

.wpcf7-response-output {
	font-size: 0.88emx;
	text-align: center;
}

div.wpcf7-validation-errors {
	margin:1em 0 !important;
	padding: 0.6em !important;
    background: #111;/*#965755;*/
	font-weight: bold;
	color: #f7e700;/*#fff;*/
	border-radius:6px;
}
span.wpcf7-not-valid-tip {
    color: #111 !important;
    font-size: 1rem !important;
    font-weight: bold !important; 
    display: inline-block !important;
	margin:0.125rem 0.25rem !important;
	box-shadow:0 -0.8em 0 0 #f7e700 inset;
}
div.wpcf7-mail-sent-ok {
	margin:1em 0 !important;
	padding: 10px !important;
    background: #225A4B;	
	font-weight: bold;
	color: #fff;
	border-radius:6px;
	border: 2px solid lime !important; /*#398f14;*/
}


span.hissu{
	display:inline-block; color:#fff; font-weight:bold; font-size:0.7em; padding:0.25em 0.5em;
	border-radius:3px; margin:0 0.35em 0.25em 0; background:var(--acc-color); vertical-align:7.5%;
	text-shadow:none;
}
span.ninni{
	display:inline-block; color:#fff; font-weight:bold; font-size:0.7em; padding:0.25em 0.5em;
	border-radius:3px; margin:0 0.35em 0.25em 0; background:#aaa; vertical-align:7.5%;
	text-shadow:none;
}
input::-webkit-input-placeholder { color: #ddd !important; }
input:-moz-placeholder { color: #ddd !important; opacity: 1; }
input::-ms-input-placeholder { color: #ddd !important; }





/* ****************************************
  fancybox 3
*/


.wp-block-gallery .wp-block-image {cursor: pointer;}


.fancybox-button--close {z-index:99999 !important; background:var(--sub-color) !important; color:#000 !important;}
.fancybox-slide--iframe .fancybox-content {height:auto; max-height:85vh !important;}

.fancybox-active html {overflow:hidden;}

@media (hover: hover) {
	button.fancybox-button--close:hover {background:var(--sub-color-dark) !important; color:#fff !important;}
}
@media (min-width:800px) {
	.fancybox-caption {font-size:1em !important;}
}
@media (max-width:480px) {
	.fancybox-slide--iframe {padding-inline:0.75em !important;}
}





