body {
    font-family: "Hiragino Sans", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, sans-serif;
    --wp--style--global--content-size: 100%;
    --wp--style--global--wide-size: 90%;
}

.wp-block-site-title {
    font-family: var(--wp--preset--font-family--body);
    font-size: 30px;
    font-style: normal;
    font-weight: bold;
}

.wp-block-image.is-style-rounded img,
.wp-block-image.is-style-rounded .wp-block-image__crop-area,
.wp-block-image.is-style-rounded .components-placeholder {
    border-radius: inherit;
}

.wp-block-post-title {
    display: none;
}

.has-global-padding {
    padding-right: 0;
    padding-left: 0;
}

section#topPage {
    width: 1500px;
    margin: 0 auto;
}

.topHeading {
    color: #fff;
    text-align: center;
    font-size: 38px;
    line-height: 1.15;
    font-weight: normal;
    letter-spacing: 0;
}

section#topPage div.flexContent {
    margin-top: 100px;
    display: flex;
    justify-content: space-between;
}

section#topPage div.flexContent div {
    width: 100%;
}

section#topPage div.flexContent div.rightArea {
    max-width: 90%;
    margin: 32px;
}

section#topPage div.flexContent div.leftArea {
    max-width: 90%;
    margin: 32px;
}

section#topPage div.flexContent figure {
    text-align: center;
}

section#topPage div.flexContent p {
    max-width: 90%;
}

section#topPage div.flexContent h {
    max-width: 90%;
}

section#topPage div.flexContent div h3 {
    color: #003a97;
    border-left: solid 15px;
    padding-left: 15px;
    margin-top: 0;
}

section#topPage div.flexContent div figure img {
    max-width: 90%;
}

section#topPage h1,
section#topPage h2,
section#topPage h3 {
    font-family: "Times New Roman", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}

section#topPage h2 {
    color: #fff;
    text-align: center;
}

section#topPage h7 {
    text-align: left;
    font-size: 26pt;
    padding: 0 10px;
    color: #6b6eb8;
    font-weight: bold;
    font-family: serif;
    border-left: double 14px;
    margin: 40px 0 30px;
}

section#topPage h6 {
    font-weight: bold;
    font-size: 16pt;
    border-left: solid 10px;
    padding-left: 15px;
    color: #6c6eb8;
    margin: 30px 0px;
}

section#topPage .textBOXsection {
    margin: 0px 50px
}

section#topPage .textBOXsection p {
    margin: 0px 10px
}

section#topPage .textlast {
    padding-top: 40px;
    text-align: right;
}

section#topPage div.wp-block-buttons.is-content-justification-center {
    justify-content: center;
    margin-top: 40px;
}

section#topPage div.has-contrast-background-color {
    background-image: url(http://utl-soma-port.com/wp-content/uploads/2024/06/24943917_m.jpg);
    background-position: 50%;
    background-attachment: fixed;
    background-size: cover;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    margin-top: 3rem;
    margin-bottom: 3rem;
    padding: 96px;
    max-width: 100%;
}

div.kvImage {
    width: 100%;
}

div.aboutImage {
    text-align: center;
}

div.aboutImage img {
    max-width: 60%;
}

.aboutText {
    padding: 10px 70px;
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 1.5;
    margin-top: 20px;
}

div.topImage {
    text-align: center;
    margin: 30px auto 0;
    max-width: 70%;
    min-width: 70%;
}

div.topImage img {
    width: 100%;
}

.text-last {
    text-align: right;
    padding: 0 0 16px 0;
    font-size: 14px;
}

.aboutTable01 {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

.aboutTable01 tr:nth-child(2n+1) {
    background: #d2d7dc;
}

.aboutTable01 th {
    padding: 10px;
    width: 20%;
    border: solid 0.5px #bdc1c6;
}

.aboutTable01 td {
    padding: 10px;
    width: 80%;
    border: solid 0.5px #bdc1c6;
}

.aboutLI {
    list-style: katakana-iroha;
}

.aboutOL {
    list-style: none;
    padding: initial;
}

.aboutOL ul {
    list-style: none;
}

section#tableContent h2 {
    font-style: italic;
    font-size: 30px;
    margin-top: 64px;
}

section#tableContent h3 {
    font-size: 20px;
    margin-top: 48px;
}

.heading01 {
    font-style: normal;
    padding-left: 16px;
    font-weight: bolder;
    text-decoration: underline;
    text-decoration-color: #6b6eb8;
}

.heading02 {
    padding-right: 16px;
    font-style: italic;
    text-decoration: underline;
}

.heading03 {
    padding-right: 16px;
    padding-left: 16px;
    font-style: italic;
    text-decoration: underline;
}

.heading04 {
    font-weight: bolder;
    margin-right: 16px;
}

.heading05 {
    font-size: 32px;
    text-align: center
}

.aboutTable02 {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

.aboutTable02 tr:nth-child(2n+1) {
    background: #d2d7dc;
}

.aboutTable02 th {
    padding: 10px;
    width: 23%;
    font-weight: normal;
    border: solid 0.5px #bdc1c6;
}

.aboutTable02 td {
    padding: 10px;
    width: 31%;
    text-align: center;
    font-weight: bolder;
    border: solid 0.5px #bdc1c6;
}

section#singlePage .text-center {
    padding: 1rem 2rem;
    color: #fff;
    background-color: mediumaquamarine;
    : #094;
    -webkit-box-shadow: 5px 5px 0 #007032;
    box-shadow: 5px 5px 0 #007032;
    margin: 30px 20px 50px 20px;
}

section#tableContent {
    width: 1200px;
    margin: 0px auto 150px;
}

.artBox {
    margin: auto 16px 0px;
}

/* onodera 20240704 */
:where(.wp-site-blocks *:focus) {
    outline-width: 0px;
    outline-style: none;
}

figure.mainVisual {
    width: 100%;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    height: 120px;
}

figure.mainVisual img {
    width: 100%;
}

footer {
    background-color: #1c2930;
    color: #fff;
}

.wp-block-site-tagline {
    color: #fff;
}

/* onodera 20240705 Add */
section#singlePage {
    width: 1200px;
    margin: 0px auto 150px;
}

#singlePage div.kvImg {
    position: relative;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    margin-bottom: 100px;
}

#singlePage div.kvImg img {
    width: 100%;
}

#singlePage div.kvImg span.kvTitle {
    position: absolute;
    bottom: 25%;
    left: 0%;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    background: white;
    font-size: 34px;
    font-weight: bold;
    padding: 0 25px 0 25px;
}

h2 {
    text-align: left;
    font-size: 26pt;
    padding: 0 10px;
    color: #6b6eb8;
    font-weight: bold;
    font-family: serif;
    border-left: double 14px;
    margin: 40px 0 30px;
}

section#singlePage h2:before {
    display: none;
}


section#singlePage h3 {
    position: relative;
    padding: 15px 0;
    text-align: left;
    font-size: 26px;
    font-weight: bold;
    color: #6c6eb8;
    margin-top: 50px;
}

section#singlePage h3:before {
    display: none;
}

section#singlePage h3:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    /*横幅*/
    height: 7px;
    /*下線 高さ*/
    content: '';
    background-image: -webkit-repeating-linear-gradient(135deg, #6c6eb8, #6c6eb8 1px, transparent 2px, transparent 5px);
    background-image: repeating-linear-gradient(-45deg, #6c6eb8, #6c6eb8 1px, transparent 2px, transparent 5px);
    background-size: 7px 7px;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

section#singlePage h4 {
    font-weight: bold;
    font-size: 16pt;
    border-left: solid 10px;
    padding-left: 15px;
    color: #6c6eb8;
    margin-top: 70px;
}

section#singlePage div.cont2Area {
    display: flex;
    margin-bottom: 100px;
}

section#singlePage div.cont2Area div.leftArea {
    width: 50%;
    padding: 8px;
}

div.cont2Area div.leftArea p {
    width: 98%;
    padding-right: 0px;
    margin: 0;
}

div.cont2Area div.leftArea img {
    max-width: 100%;
}

section#singlePage div.cont2Area div.rightArea {
    width: 50%;
    padding: 8px;
}

div.cont2Area div.rightArea p {
    width: 100%;
    padding-left: 30px;
    margin: 0;
}

div.cont2Area div.rightArea img {
    max-width: 100%;
}

section#singlePage div.tableArea {}

section#singlePage div.tableArea table {
    border: solid #999 1px;
    border-collapse: collapse;
    width: 100%;
}

section#singlePage div.tableArea table tr {
    border: solid #999 1px;
}

section#singlePage div.tableArea table tr th {
    background: #c3c3c3;
    padding: 10px 15px;
    border: solid #999 1px;
}

section#singlePage div.tableArea table tr td {
    padding: 5px 15px;
    border: solid #999 1px;
}

section#singlePage div.widthAll {
    background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url(http://utl-soma-port.com/wp-content/uploads/2024/06/29785125_m.jpg);
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    text-align: center;
    height: 300px;
    background-position: bottom;
    background-size: cover;
    margin-bottom: 100px;
}

section#singlePage div.widthAll h3 {
    text-align: center;
    color: #fff;
    padding-top: 70px;
    font-family: serif;
    font-size: 30pt;
    font-weight: 100;
    margin-bottom: 20px;
}

section#singlePage div.widthAll h3:after {
    display: none;
}

section#singlePage div.widthAll div {
    color: #fff;
    width: 75%;
    margin: 0 auto;
}

section#singlePage div.boxArea {
    background-color: #ffffff;
}

section#singlePage div.boxArea p {
    padding: 30px;
}

.wp-block-site-title a {
    font-size: 28px;
}

/*ContactForm7カスタマイズ*/
table.CF7_table {
    width: 80%;
    margin: 0 auto;
    border: 3px solid #e5e5e5;
}

table.CF7_table tr {
    border-top: 1px solid #e5e5e5;
}

.single .entry-content table.CF7_table,
.page .entry-content table.CF7_table {
    display: table;
}

div.copy {
    text-align: center;
    padding-bottom: 15px;
    font-size: 14px;
    color: #999;
    padding-top: 10px;
    border-top: double #999 8px;
}

/*入力欄*/
.CF7_table input,
.CF7_table textarea {
    border: 1px solid #d8d8d8;
}

.CF7_table ::placeholder {
    color: #797979;
}

/*「必須」文字*/
.CF7_req {
    font-size: .9em;
    padding: 5px;
    background: #f79034;
    /*オレンジ*/
    color: #fff;
    border-radius: 3px;
    margin-right: 1em;
}

/*「任意」文字*/
.CF7_unreq {
    font-size: .9em;
    padding: 5px;
    background: #bdbdbd;
    /*グレー*/
    color: #fff;
    border-radius: 3px;
    margin-right: 1em;
}

/* 「送信する」ボタン */
.wpcf7 input.wpcf7-submit {
    background-color: #f79034;
    /* オレンジ*/
    border: 0;
    color: #fff;
    font-size: 1.2em;
    font-weight: bold;
    margin: 0 auto;
}

.CF7_btn {
    text-align: center;
    margin-top: 20px;
}

.wpcf7-spinner {
    width: 0;
    margin: 0;
}

.CF7_table p {
    text-align: left;
}

/* レスポンシブ */
@media screen and (max-width: 990px) {
	section#topPage div.flexContent {
        margin-top: 0px;
        display: flex;
        justify-content: space-around;
        flex-direction: column;
    }

    figure.mainVisual {
        height: 100px;
        display: block
    }

    section#topPage .topHeading {
        font-size: 30px;
    }

    section#topPage div.wp-block-buttons.is-content-justification-center {
        margin-bottom: 60px;
    }

    section#topPage div.flexContent div.rightArea {
        margin: 16px auto 0;
    }

    section#topPage div.flexContent div.leftArea {
        margin: 16px auto 0;
    }

    section#topPage div.textBOXsection {
        margin: 0px 100px
    }
	section#singlePage {
        max-width: 90%;
	    margin: 0px auto 64px;
	}
	
	#singlePage div.kvImg {
        margin-bottom: 0px;
	}
}


/* ContactForm Start */
@media screen and (min-width: 768px) {
    .CF7_table th {
        width: 30%;
        /*横幅*/
        background-color: #ebedf5;
        /*ブルーグレー*/
    }
}

@media screen and (max-width: 768px) {
    table.CF7_table {
        width: 95%;
    }

    .CF7_table tr,
    .CF7_table td,
    .CF7_table th {
        display: block;
        width: 100%;
        line-height: 2.5em;
    }

    .CF7_table th {
        background-color: #ebedf5;
    }

    .CF7_table p {
        text-align: left;
    }
}

/* ContactForm End */


@media screen and (max-width: 599px) {
    figure.mainVisual {
        height: 50px;
    }


    section#topPage .topHeading {
        font-size: 26px;
    }
    section#topPage div.textBOXsection {
        margin: 0px 50px
    }


}


@media screen and (max-width: 421px) {
    figure.mainVisual {
        height: 25px;
    }


    section#topPage .topHeading {
        font-size: 20px;
    }


    section#topPage p {
        font-size: 12px;
    }


    section#topPage h2 {
        font-size: 16px;
    }


    section#topPage h3 {
        font-size: 16px;
    }


    section#topPage .has-x-large-font-size {
        font-size: 16px;
    }


    section#topPage div.has-contrast-background-color {
        padding: 16px;
        margin: 32px auto 32px;
    }
}


/* Subpage */


@media screen and (max-width: 990px) {


    section#singlePage div.cont2Area {
        margin-top: 0px;
        margin-bottom: 0px;
        display: flex;
        justify-content: space-around;
        flex-direction: column;
    }


    section#singlePage div.cont2AreaR {
        margin-top: 0px;
        display: flex;
        justify-content: space-around;
        flex-direction: column-reverse;
    }


    section#singlePage div.cont2Area div.rightArea {
        margin: 16px auto 0;
        width: 90%;
    }


    section#singlePage div.cont2Area div.leftArea {
        margin: 16px auto 0;
        width: 90%;
    }


    section#singlePage div.cont2Area div.rightArea p {
        padding: 0px;
    }


    section#singlePage div.cont2Area h4 {
        margin-top: 0px;
        margin-bottom: 30px;
    }




    section#singlePage .aboutTable01 th,
    .aboutTable01 td {
        width: 90%;
        display: block;
    }


    .aboutTable01 th {
        background-color: #d2d7dc;
        padding: 15px;
        text-align: left;
    }


    .aboutTable01 tr:nth-child(2n+1) {
        background: unset;
    }


    .aboutTable01 td {
        background-color: white;
        padding: 15px;
    }


    .aboutTable02 {
        display: block;
        overflow-x: scroll;
        white-space: nowrap;
    }

    .aboutText {
        padding: 0px;
    }

    div.textBOXsection {
        margin: auto 16px 0px;
    }

    #singlePage div.kvImg span.kvTitle {
        font-size: 24px;
    }

    div.aboutImage img {
        max-width: 100%;
    }
}

@media screen and (max-width: 590px) {
    #singlePage div.kvImg span.kvTitle {
        font-size: 16px;
    }
}

@media screen and (max-width: 421px) {
    section#singlePage h2 {
        font-size: 24px;
    }

    section#singlePage h4 {
        font-size: 20px;
    }

    section#singlePage h3 {
        font-size: 20px;
    }

    section#singlePage ol {
        font-size: 12px;
    }

    #singlePage p {
        font-size: 12px;
    }

    #singlePage tbody {
        font-size: 12px;
    }

    section#tableContent h2 {
        font-size: 20px;
    }

    section#tableContent h3 {
        font-size: 16px;
    }

    section#tableContent ol {
        font-size: 12px;
    }

    section#tableContent span {
        font-size: 16px;
    }

    section#tableContent p {
        font-size: 12px;
    }
}