/*Theme Name: Ushigome Version: 1.0*/

.flex {display: flex; flex-wrap: wrap; justify-content: flex-start;}

/***** btn_more ***/
a.more_btn {color: #000; font-size:0.9em; text-align: center; text-decoration: none;
width: 100px; padding: 0.1rem 1.6rem;  display: block; 
border: 1px solid #000; transition: 0.5s;}
a.more_btn:hover {color: #fff; background: #000;}

/**************************************************** Submenu */
/* menu__cat */
.menu__cat {width: 100%; padding: 20px 2%; box-sizing: border-box; list-style: none; display: flex; flex-wrap: wrap; justify-content: left;}
.menu__cat li {margin-right: 20px; float: none;}
.menu__cat li:last-child {margin-right: 0;}
.menu__cat a {font-size: 0.9em; text-decoration: none; color: #333;}
.menu__cat a:hover,
.cat_current a {color: rgba(0, 0, 0, 0.3);}

/**************************************************** Start */
.shutter {width: 100%; height: 100%; position:fixed; top:0; left:0; right:0; bottom:0; margin: auto;
background-color:#fff; z-index:9999; transition: opacity 1s; opacity: 1;}
.shutter.fadeout {opacity: 0; pointer-events: none;}

.startmessage {position: absolute; width: 100%; top: 0; left: 0; right: 0; bottom: 0; margin: auto;
display: flex; align-items: center; justify-content: center;}
.startmessage svg {width: 80vw; height: auto; max-width: 80vw; display: block; margin: 0 auto;}
.svg-elem-2,
.svg-elem-3 {
  stroke-dasharray: 4000;
  stroke-dashoffset: 4000;
  animation: drawLine 2s forwards;
}

.svg-elem-3 {animation-delay: 1.2s;}

@keyframes drawLine {
  to {
    stroke-dashoffset: 0;
  }
}

/**************************************************** Top */
.top-images {display: flex; flex-direction: row; width: 100%; height: 60vh; min-height: 200px;
margin: 0; padding: 0; box-sizing: border-box; align-items: stretch;}

.top-image {height: 100%; overflow: hidden; margin: 0; padding: 0; flex: none; display: flex;}
.top-image.left {flex: 7 1 0%;}
.top-image.right {flex: 3 1 0%;}
.top-image picture,
.top-image img {width: 100%; height: 100%; display: block;}
.top-image img {object-fit: cover; object-position: center; margin: 0; padding: 0; border: none; background: #000;}

/************* News */
.news_box {margin-bottom: 40px;}
.news_box > div:first-of-type {width:30%; margin-right: 3%;}
.news_box > div:nth-child(2) {width:67%;}

.archive-thumb-wrapper {overflow: hidden; position: relative;}
.archive-thumb {width: 100%; height: 100%; object-fit: cover; object-position: center; position: absolute; top: 0; left: 0;}

.news_box h1 {font-size: 1.1em;}
.date {font-size: 0.9em; color: rgba(0, 0, 0, 0.5); padding-bottom: 20px;}
.excerpt {padding-bottom: 10px;}

/**************************************************** Works */
/************* archive */
.works_archive {display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 1px; width: 100%; box-sizing: border-box; margin: 0;
padding: 0;}
.works_archive .box {flex: 0 0 calc(25% - 1px); aspect-ratio: 7 / 4; margin: 0; position: relative; overflow: hidden; box-sizing: border-box;}

.thumbnail-wrapper {display: block; width: 100%; height: 100%; background-color: #f0f0f0; position: relative;}
.thumbnail-wrapper img {width: 100%; height: 100%; object-fit: cover; aspect-ratio: 7 / 5;}
.overlay {position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0); color: #fff; display: flex; justify-content: center; align-items: center; transition: background-color 0.6s ease, opacity 0.6s ease; box-sizing: border-box; padding: 8px; text-align: center; opacity: 0;}
.overlay p {padding: 0 10px; line-height: 1.2em;}
.thumbnail-wrapper:hover .overlay {background: rgba(0,0,0,0.7);opacity: 1;}

/************* Single (Works) */
.works_single {width: 1000px; margin: 0 auto; padding: 0 10px 80px 10px; box-sizing: border-box;}

.image_rep img {min-width: 100%; height: auto; padding-bottom: 5%;}
.works_info {margin-bottom: 80px;}

dl.item {display: grid; grid-template-columns: 20% 80%; gap: 0px 0px; border-top: 1px solid #ccc;}
.item dt {background: #f0f0f0; padding: 10px; border-bottom: 1px solid #ccc;}
.item dd {background: #fff; padding: 10px; border-bottom: 1px solid #ccc; margin: 0;}

.box_left {width: 40%; margin-right: 10%;}
.box_right {width: 50%;}

/**************************************************** Single (New) */
.image_rep_news img {max-width: 100%; height: auto; padding-bottom: 5%;}

/**************************************************** Single (New, Works, Recruit 共通) */
#single h1 {font-size: 1.4em; line-height: 1.4em;}
#single h2 {font-size: 1.2em; line-height: 1.4em; margin-bottom: 40px;}

#single a {text-decoration: underline;}
#single a:hover {opacity: 0.5;}
#single p {padding-bottom: 30px;}
#single em {font-style: italic;}
#single strong {font-weight: bold;}

#single ul {padding: 20px 0;}
#single li {margin-left: 20px; list-style: initial;}

#single ol {margin: 0 20px; padding-bottom: 30px; list-style:none; counter-reset:counter;}
#single ol > li {list-style: none; text-indent: -1.8em;}

#single ol > li::before {
  content:counters(counter, "-") ". ";
  counter-increment:counter;
}
#single ol li > ol {counter-reset:counter;}
#singleol li > ul {counter-reset:counter;}
#single ol li > ul li {text-indent: 5px;}

.wp-block-table table {margin: 20px 0; border-collapse: collapse;}
.wp-block-table th, .wp-block-table td {border: 1px solid #000!important; padding: 10px;}
.is-style-stripes th, .is-style-stripes td {padding: 10px; border: 0!important;}
.is-style-stripes tr:nth-of-type(odd) {background: #d3d3d3!important;}

.wp-block-gallery li {list-style: none!important;}
.wp-block-gallery ul {padding-bottom: 10px;}
.wp-block-gallery a img {max-width: 100px; height: 100px!important; object-fit: cover!important;}
.wp-block-image img {max-width: 100%; height: auto; object-fit: cover!important; margin-bottom: 2px;}
.wp-block-separator {margin-bottom: 40px;}

/**************************************************** Recruit */
.recruit td:nth-of-type(odd) {width: 20%!important;}

/**************************************************** About */
#about {padding: 120px 0 0;}
#about_top {
  background-image: url('../img/logo/ushigome_logo.png');
  background-color: rgba(255,255,255,0.7); background-blend-mode: lighten;
  background-position: center;
  background-repeat: no-repeat; background-size: 100% auto;}

#message {
position: relative;
z-index: 1;
margin: 8% auto 60px;
max-width: 800px;
background: rgba(255,255,255,0.9);
border-radius: 8px;
padding: 8rem 8rem;
font-size: 1.1rem; line-height: 1.8em;
box-shadow: 0 8px 32px rgba(0,0,0,0.1);
color: #222;
}

.text{font-weight: 100; font-size: 16px; color: #666; margin-bottom: 40px;}
.dud {color: #757575;}

#about h1 {font-size: 1.2em; padding-bottom: 10px;}
#about h2 {font-size: 0.9em; color: #000; padding-bottom: 10px;}
#about h2 span {border-left: solid 1px #000;
padding-left: 1em; display: inline-block; line-height: 1.2;}

.about_left ul {padding-bottom: 40px;}
.about_left span {padding-right: 10px;}

.about_left {width: 35%; padding-right: 10%;}
.about_right {width: 55%;}

.about_left dl {display: grid; border-top: 1px solid #ccc; grid-template-columns: 25% 75%; gap: 0px 0px;}
.about_left dt {padding: 5px 0; border-bottom: 1px solid #ccc;}
.about_left dd {padding: 5px 0; border-bottom: 1px solid #ccc; margin: 0;}

.about_right dl {display: grid;  border-top: 1px solid #ccc; grid-template-columns: 30% 70%; gap: 0px 0px;}
.about_right dt {padding: 10px 0; border-bottom: 1px solid #ccc;}
.about_right dd {padding: 10px 0; border-bottom: 1px solid #ccc; margin: 0;}

.about_right dl:first-of-type {padding-bottom: 60px;}

/********************** Profile */
.profile {margin-top: 10%;}
.profile_left {width: 35%; padding-right: 10%;}
.profile_right {width: 55%;}

.profile_left img {max-width: 100%; height: auto;}

.ushi span {font-size: 1.2em; padding-right: 20px;}
.member {font-size:0.9em; padding: 10px 0 40px;}
.member li {line-height: 1.6em;}

.profile_right dl {display: grid;  border-top: 1px solid #ccc; grid-template-columns: 30% 70%; gap: 0px 0px; margin-bottom: 80px;}
.profile_right dt {padding: 10px 0; border-bottom: 1px solid #ccc;}
.profile_right dd {padding: 10px 0; border-bottom: 1px solid #ccc; margin: 0;}

.links a {text-decoration: underline;}
.links a:hover {opacity: 0.6; transition: opacity 0.3s ease;} 

/**************************************************** Contact */
.contact {display: flex; flex-wrap: nowrap; background-color: #F5F5F5;
min-height: 400px; align-items: flex-start; margin-bottom: 5%;}
.contact > div:first-of-type {width: 400px; flex-shrink: 0;}
.contact > div:nth-child(2) {flex-grow: 1;}

.contact_info {padding: 2%;}
.contact_info ul {margin: 20px 0;}

/************* Google map */
.ggmap {width: 100%;}
.ggmap iframe {filter: grayscale(100%); -webkit-filter: grayscale(100%); display: block;}

/************* Form */
.form {width: 700px; margin: 0 auto 80px; box-sizing: border-box;}
.form dl {width: 100%; line-height: 1.4em;}
.form dd {margin-bottom: 10px;}

.wpcf7-form .con {width: 100%; height: 50px; padding: 5px;
margin-bottom: 0; border: 0; background-color: #f2f2f2;
box-sizing: border-box;}

.wpcf7-form .mes {width: 100%; height: 90px; padding: 5px;
border: 0; background-color: #f2f2f2;
overflow-y: auto; box-sizing: border-box;}

input[type="submit"] {color: #000; font-size:0.9em; text-align: center; text-decoration: none;
width: 120px; padding: 0.4rem 1.6rem; display: block; margin-top: 20px; border: 1px solid #000;
transition: 0.5s; cursor: pointer; background-color: #fff;}
input[type="submit"]:hover {color: #fff; background: #000;}

/* すべての応答メッセージに適用 */
.wpcf7-response-output {border: 0; margin: 2em 0.5em 1em; padding: 0.2em 1em; text-align: center;}

/* エラーメッセージのスタイリング */
.wpcf7-form.invalid .wpcf7-response-output {background-color: #ffbaba; color: #d8000c; text-align: center;}

/* 送信成功メッセージのスタイリング */
.wpcf7-form.sent .wpcf7-response-output {background-color: #dff2bf; color: #4f8a10; text-align: center;}