/*Theme Name: Ushigome Version: 1.0*/
/**************************************************** standard elements */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video
{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;list-style:none;}

html,body {min-width: 100%; min-height: 100%; padding: 0; margin: 0; word-wrap: break-word;overflow: auto; box-sizing: border-box;
font-family: "Noto Sans JP", sans-serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
font-size: 14px; color: #000; line-height: 1.7em; 
-webkit-font-smoothing: antialiased;}

h1, h2, h3 {font-weight: normal;}
img {max-width: 100%; height: auto;}
@keyframes fadeIn {from {opacity: 0;} to {opacity: 1;}}
a {text-decoration: none; color: #000; overflow: hidden; outline: none; word-wrap: break-word; word-break: break-all;}
p {line-height: 1.7em;}
.br:before {content: "\A"; white-space: pre;}

/* hide */
.visually-hidden-sp {position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;}

/**************************************************************************/
/*slide side menu ***************************************************/
/**************************************************************************/
/*top 3line */
#menu__toggle {opacity: 0; display: none;}
#menu__toggle:checked ~ .menu__btn > span {transform: rotate(45deg);}
#menu__toggle:checked ~ .menu__btn > span::before {top: 0; transform: rotate(0);}
#menu__toggle:checked ~ .menu__btn > span::after {top: 0; transform: rotate(90deg);}
#menu__toggle:checked ~ .menu__box {visibility: visible; right: 0;}
.menu__btn {display: flex; align-items: center; position: fixed; top: 20px; right: 20px; width: 26px; height: 26px; cursor: pointer; z-index: 200;}
.menu__btn > span,
.menu__btn > span::before,
.menu__btn > span::after {display: block; position: absolute; width: 100%; height: 2px; background-color: #000; transition-duration: .25s;}
.menu__btn > span::before {content: ''; top: -8px;}
.menu__btn > span::after {content: ''; top: 8px;}
/*end */

.menu__box {display: block; position: fixed; z-index: 100;
visibility: hidden; top: 0; right: -100%;
width: 340px; height: 100%;
margin: 0; padding: 45px 0;
list-style: none;
background-color: #999;
box-shadow: 1px 0px 6px rgba(0, 0, 0, .2);
transition-duration: .25s;
}

.menu__item {display: block; padding: 8px 24px; color: #000;
font-size: 14px; text-decoration: none; transition-duration: .25s;}
.menu__item:hover {background-color: #666;}

/*plugin*/
.slidemenu {height: 100%; overflow: hidden; position: relative;}
.slidemenu .slidemenu-content {position: relative;}
/*accordion*/
.submenu_accordion a {display: block; color: #fff;}
.submenu_accordion .child {display: none; background: #666;}
.submenu_accordion .child > li {padding-left: 40px; padding-bottom: 5px;}
.child01 {font-size: 0.9em; padding: 20px 0 15px;}

/*info*/
.menu_info {font-size: 14px; color: #fff; line-height: 1.6em; width: 90%; margin: 10px 5%; padding: 60px 0 20px 10px;}
.menu_info dt {padding-bottom: 20px;}
.menu_info dd li {padding-right: 20px; float: left;}

/********* header */
header {width: 100%; height: 60px; position: fixed; z-index: 2;}
#head_top {background-color: rgba(255, 255, 255, 0.95);}
#head_other {background-color: rgba(255, 255, 255, 0.95);}
.head_box {padding-top: 13px; margin: 0 2%;}

.logo {line-height: 2.6em; float: left;}
.logo a {font-size: 13px; color: #000;}

/**************************************************** structure */
#outer {margin: 0; display: flex; flex-flow: column; min-height: calc(100vh - 20px);}
#inner_top {margin-top: 60px;}
#inner_etc, #inner_full {padding: 2%; margin: 60px 0 40px 0;}
#content_wrapper {padding-top: 4%;}

#content_left {width: 100%; order: 2;}
#content_right {width: 100%; order: 1; margin-bottom: 20px;}

.sub_menu {display: none;}

/*************** footer (only for top page) */
.foot_top {width: 100%; height: auto; margin-top: auto; padding: 1% 0;
display: flex; align-items: center; background-color: #fff;}

.top_logo {display: none;}

/********　news rewrite */
.if_news {padding: 5px 0 20px;}

/********　news archive */
.top_news {width: 100%; box-sizing: border-box; padding: 0 3%;}
.top_news a:hover {text-decoration: underline;}
.top_news dt {width: 100px; float:left; clear:both;}
.top_news dd {margin-left: 100px;}

/*************** footer (all the other pages besides top page) */
.foot_other {width: 100%; height: 60px; margin-top: auto; display: block;}

.footer-flex {display: flex; align-items: center; justify-content: space-between;
width: 100%; height: 100%; list-style: none; margin: 0; padding: 0;}

.footer-text-logo {width: 300px;
padding-left: 2%; display: flex; flex-direction: column; justify-content: center;}
.footer-text-logo p {line-height: 1.2em;}
.footer-text-logo p:first-of-type {font-size: 12px; margin: 0;}
.footer-text-logo p:nth-child(2) {font-size: 10px; margin: 0; color: #666;}

.footer-hr {flex: 1 1 auto; position: relative; height: 100%; display: flex; align-items: flex-start;}
.footer-hr hr {position: absolute; top: 27px; left: 0; width: 100%; border: none; border-top: 1px solid #302928; margin: 0;}

.footer-img-logo {width: 150px; display: flex; align-items: center; justify-content: flex-end; padding-right: 2%;}
.footer-img-logo img {width: 150px; height: auto; display: block; object-fit: contain;}

/****** wp-navi */
.wp-pagenavi {width: 100%; display: inline-block; padding-top: 40px;}
.pages {display: none;}

.wp-pagenavi a,.wp-pagenavi a:hover, .wp-pagenavi span.current {width: 20px; height: 20px; line-height: 20px; padding: 5px!important; border: 0!important;}

.wp-pagenavi a {background-color: #dfdfdf; color: #fff; display: block; text-align: center; transition: background-color 0.2s ease-in; -webkit-transition: background-color 0.2s ease-in; float: left;}
.wp-pagenavi span.current {float: left;}
.wp-pagenavi a, .wp-pagenavi span {border: 0;}

.wp-pagenavi a:hover, .wp-pagenavi span.current {background-color: #b3b3b3; color: #fff; display: block; text-align: center;
transition: 0.2s ease-in; -webkit-transition: 0.2s ease-in;}

/**************************************************** general */
.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 4% 20px 0; 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;}

/**************************************************** New Archive */
.year-archive li {padding-right: 20px; float: left;}

/**************************************************** 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(33.33% - 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) */
.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: 5%;}
.box_right {width: 55%;}

/**************************************************** 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: 200px!important;}

/**************************************************** About */
#about {padding: 80px 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: 4% auto 60px;
max-width: 70%;
background: rgba(255,255,255,0.9);
border-radius: 8px;
padding: 3rem 3rem;
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: 30px;}
.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 {display: inline-block; line-height: 1.2;}

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

.about_left {width: 100%; padding: 2% 0 6%;}
.about_right {width: 100%;}

.about_right dl {display: grid;  border-top: 1px solid #ccc; grid-template-columns: 32% 68%; gap: 0px 0px;}
.about_right dt {padding: 10px 20px 0 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: 15%;}
.profile_left {width: 25%; padding-right: 5%;}
.profile_right {width: 70%;}

img.ushigome {width: 300px; 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 {margin-bottom: 5%;}
.contact > div:first-of-type {width: 100%; margin-bottom: 4%;}

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

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

/************* Form */
.form {width: 80%; margin: 0 auto; 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;}