@charset "UTF-8";

/*
Theme Name:桜井建工
*/
:root{
    --sakurai:#004098;
    --logo-bg-color: #f7f4ea; /* ロゴエリアの背景色（画像1に合わせたクリーム色） */
    --nav-bg-color: #ffffff;  /* ナビゲーションの白背景 */
    --recruit-color: #e65525;/* 採用情報ボタンのオレンジ */
    --text-main: #333333;
}

:root{
    --ja:"Noto Sans JP", sans-serif;
}

body{  font-size: 16px; font-family: var(--ja)}
h1{ font-size:28px; font-weight: bold;}
h2{ font-size:20px;}
h3{ font-size:18px;}
img{ max-width:100%;  }
body.page #content,
body.single #content{
  padding-bottom:20px;
    position: relative;
    top: 0;
    font-family: var(--ja);
}
#sidebar{ text-align: center;}

body.page #content-wrap{
    box-shadow:none;
}

/*-------------------------

  固定ページヘッダー

-------------------------*/

body.page .head-inner,
body.single .head-inner{
    background-color: #f6f6f6;
    top: 0;
}

body.page .site-header,
body.single .site-header{
  position: relative;
}

body.page .header-logo,
body.single .header-logo{
    height: 150px;
    width: 400px;
    padding-top: 75px;
    padding-bottom: 0;
    padding-left: 20px;
    border-radius: 0;
    background-color: transparent;
}
@media (max-width: 1024px) {
    body.page .header-logo,
    body.single .header-logo{
        width: 15%;
        padding-top: 20px;
    }
}

body.page .navbar-header,
body.single .navbar-header{
    background-color: #f6f6f6;
    height: 100px !important;
}
@media (max-width: 768px) {
    body.page .header-logo,
    body.single .header-logo{
        padding-top: 15px;
        height: 80px;
        width: calc(100% - 83%);
    }
    
    body.page .header-logo a,
    body.single .header-logo a{
        width: 100%;
    }
}

/*-------------------------

  共通

-------------------------*/
/* メインタイトル */
.page-title {
    text-align: center;
    margin: 0 auto;
    max-width: 1000px;
}

.page-title .main-title{
    font-size: 36px;
    font-weight: bold;
    color: #1a1a1a;
    display: inline-block;
    position: relative;
    padding: 0 25px; /* 左右のスラッシュとの余白 */
    line-height: 1.2;
}
@media (max-width: 768px) {
    .page-title .main-title{
        font-size: 24px;
    }
}

.page-title .main-title::before,
.page-title .main-title::after {
      content: '';
      position: absolute;
      top: 50%;
      width: 2px;          /* スラッシュの太さ */
      height: 36px;        /* スラッシュの長さ */
      background-color: var(--sakurai); /* スラッシュの緑色 */
      border-radius: 1px;  /* 角をわずかに丸く */
    }

.page-title .main-title::before {
      left: 5px;
      transform: translateY(-50%) rotate(30deg); /* 反時計回りに傾ける */
    }

.page-title .main-title::after {
      right: 5px;
      transform: translateY(-50%) rotate(30deg); /* 反時計回りに傾ける */
    }

.page-title .sub-title {
      display: block;
      margin-top: 6px;
      font-size: 13px;
      font-weight: bold;
      color: #8c8c8c;
      letter-spacing: 0.08em; /* 文字間隔を調整 */
      text-transform: uppercase; /* 小文字で書いても大文字に統一 */
    text-align: center;
    }

@media (max-width: 768px) {
	.page-title {
		font-size: 20px;
	}
	.page-title::before,
	.page-title::after {
		margin: 0 10px;
	}
    
    body.page #main,
    body.single #main{
    padding: 15px;
}
}

.top_pic{
	margin: 0 auto;
    height: auto;
    width: calc(100% - 10%);
    text-align: center;
}

.top_pic img{
	border-radius: 50px;
	height: auto;
	object-fit: cover;
	object-position: top;
	width: calc(100% - 10%);
}
@media (max-width: 768px) {
    .top_pic img{
        border-radius: 25px;
        width: 100%;
    }
}
/*
.top_pic img{
	opacity: 0;
    transform: scale(.8);
    transition: 1.2s cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
*/
.top_pic.show img{
	opacity: 1;
    transform: scale(1);
}

.anime_wrap{
    position: relative;
    overflow: hidden;
}

body.single .container{
    padding: 200px 0;
    width: 900px;
    margin: 0 auto;
}

@media (max-width: 899px) {
    body.single .container{
        padding: 150px 20px 100px;
        width: 100%;
    }
}

body.single h1{
    padding-bottom: 20px;
    border-bottom: 1px solid #ddd;
    margin-bottom: 50px;
}
@media (max-width: 768px) {
    body.single h1{
        font-size: 24px;
    }
}

/*-------------------------

  会社情報

-------------------------*/
#content-wrap {
    background-color:transparent;
    color: #333333;
    padding: 200px 0 100px;
    line-height: 1.8;
}
@media (max-width: 768px) {
    #content-wrap{
        padding: 100px 0 0;
    }
}

/* 1. アクロスティック & 画像 */
.company-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    margin:80px auto 150px;
    flex-wrap: wrap;
    width: 900px;
}

.acrostic-list {
    font-size: 18px;
    line-height: 1.6;
}

.acrostic-item {
    letter-spacing: 1px;
}

.acrostic-item .highlight {
    color: #2b5b84; /* 頭文字の青色 */
    font-weight: bold;
    font-size: 30px;
    display: inline-block;
    width: 35px;
    text-align: center;
}

.acrostic-item .jp-text {
    margin-left: 30px;
    font-size: 16px;
    color: #555;
}

.company-photo {
    max-width: 450px;
    width: 100%;
}

.company-photo img {
    width: 100%;
    height: auto;
    border-radius: 12px; /* 角丸画像 */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    object-fit: cover;
}

.section-block1{
    width: 900px;
    margin: 0 auto 150px;
}
@media (max-width: 899px) {
    .section-block1{
        width: 100%;
        margin-bottom: 100px;
    }
}

.section-block3{
    background-color: #fff;
}

body.page .section-title{
    font-size: 24px;
    color: var(--sakurai);
    border-bottom: 1px solid;
    padding-bottom: 20px;
}

.section-title2 {
    color: #2b7bb9; /* 水色の見出し */
    font-size: 20px;
    position: relative;
    padding-left: 20px;
    margin:0 auto 25px;
    font-weight: normal;
    width: 900px;
}

.section-title2::before {
    content: "一";
    position: absolute;
    left: 0;
    top: 0;
}

.greeting-text{
    padding-top: 20px;
}

/* 2. ごあいさつ */
.greeting-text p {
    margin-bottom: 16px;
    font-size: 16px;
    text-align: justify;
}

/* 3. 会社情報（白い角丸カード） */
.info-card {
}

.info-table {
    margin: 0 auto;
    width: 900px;
    border-collapse: collapse;
}
@media (max-width: 999px) {
    .info-table{
        width: 100%;
    }
}

.info-table th, 
.info-table td {
    padding: 20px 10px;
    border-bottom: 1px solid #555; /* 暗めの水平罫線 */
    font-size: 16px;
    text-align: left;
    vertical-align: top;
}

.info-table th {
    border-bottom: 3px solid #555;
    width: 15%;
    font-weight: bold;
    white-space: nowrap;
}

/* 4. 沿革テーブル */
.history-table {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    border-collapse: collapse;
}

.history-table th,
.history-table td {
    padding: 20px 10px;
    border-bottom: 1px solid #e0e0e0;
    font-size: 16px;
}

.history-table th {
    width: 20%;
    font-weight: normal;
}

.history-table td {
    text-align: left;
}

/* レスポンシブ対応（スマホ表示調整） */
@media (max-width: 768px) {
    .company-hero {
        display: block;
        width: 100%;
    }
    
    .acrostic-list {
        margin: 0 auto;
        width: 80%;
    }
    
    .company-photo{
        text-align: center;
    }
    
    .company-photo img{
        margin: 0 auto;
        width: 80%;
    }

    .info-table th, 
    .info-table td {
        display: block;
        width: 100%;
    }

    .info-table th {
        border-bottom: none;
        padding-bottom: 0;
    }
}


/*-------------------------

  資格・設備

-------------------------*/

/* ==========================================
   サブタイトル（h2：「資格免許」）のデザイン
   ========================================== */
.sub-title {
	font-size: 18px;
	font-weight: bold;
	color: #0d4b5c;
	margin:80px auto 15px;
	text-align: left;
    max-width: 1000px;
}


/* ==========================================
   テーブル（表）のデザイン
   ========================================== */
.qualification-table-wrap {
	max-width: 1000px;
	margin: 0 auto;
}

.qualification-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 16px;
	color: #333;
}

.qualification-table td {
	border: 1px solid #7a7a7a;
	padding: 12px 15px;
	vertical-align: middle;
}

.qualification-name {
    background-color: #fff;
	text-align: left;
	width: 38%;
}

.qualification-count {
    background-color: #f0f8ff;
	text-align: center;
	width: 12%;
}

.equipment-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr); /* PCサイズで2列 */
      gap: 30px 20px; /* 上下の余白: 30px、左右の余白: 20px */
      max-width: 1000px; /* 全体の最大幅 */
      margin: 100px auto 0; /* 中央寄せ */
}

.equipment-grid2 {
      display: grid;
      grid-template-columns: repeat(2, 1fr); /* PCサイズで2列 */
      gap: 30px 20px; /* 上下の余白: 30px、左右の余白: 20px */
      max-width: 1000px; /* 全体の最大幅 */
      margin: 100px auto 0; /* 中央寄せ */
}

    /* 各カードの設定 */
    .equipment-card {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    /* 画像枠（グレーの枠線付き） */
    .equipment-image {
      width: 100%;
      aspect-ratio: 4 / 3; /* アスペクト比を固定（縦横比） */
      box-sizing: border-box;
      overflow: hidden;
      background-color: #f0f0f0;
    }

    .equipment-image img {
      width: 100%;
      height: 100%;
      object-fit: cover; /* 枠に収まるように画像を拡大縮小 */
      display: block;
    }

.equipment-image video {
      width: 100%;
      height: 100%;
      object-fit: cover; /* 枠に収まるように画像を拡大縮小 */
      display: block;
    }

    /* キャプション（説明テキスト）の設定 */
    .equipment-caption {
      margin-top: 10px;
      font-size: 15px;
      color: #444444;
      text-align: center;
      line-height: 1.4;
    }

@media (max-width: 768px) {
    .equipment-grid,
    .equipment-grid2{
        grid-template-columns: 1fr; /* 1列に変更 */
        gap: 25px;
    }
	.qualification-table {
		font-size: 14px;
	}
	.qualification-table td {
		padding: 8px 10px;
	}
}

/*-------------------------

  採用情報

-------------------------*/
.page-title .main-title2{
    font-size: 36px;
    font-weight: bold;
    color: #1a1a1a;
    display: inline-block;
    position: relative;
    padding: 0 25px; /* 左右のスラッシュとの余白 */
    line-height: 1.2;
}

.page-title .main-title2::before,
.page-title .main-title2::after {
      content: '';
      position: absolute;
      top: 50%;
      width: 2px;          /* スラッシュの太さ */
      height: 36px;        /* スラッシュの長さ */
      background-color: var(--recruit-color); 
      border-radius: 1px;  /* 角をわずかに丸く */
    }

.page-title .main-title2::before {
      left: 5px;
      transform: translateY(-50%) rotate(30deg); /* 反時計回りに傾ける */
    }

.page-title .main-title2::after {
      right: 5px;
      transform: translateY(-50%) rotate(30deg); /* 反時計回りに傾ける */
    }
.recruit_txt{
    font-size: 30px;
    text-align: center;
    padding: 200px 0 100px;
}
@media (max-width: 768px) {
    .recruit_txt{
        font-size: 24px;
        padding: 100px 0 50px;
    }
}

.recruit-bg{
    background-color: #fff;
    padding: 50px;
    border-radius: 50px;
    max-width: 1000px;
    width: 100%;
    margin: 100px auto;
}
@media (max-width: 1024px) {
    .recruit-bg{
        width: 96%
    }
}
@media (max-width: 768px) {
    .recruit-bg{
        padding:50px 30px;
    }
}

.recruit-bg2{
    max-width: 1000px;
    width: 100%;
    margin: 100px auto;
}

.recruit-txt1{
    background-color: var(--sakurai);
    font-weight: bold;
    padding: 15px;
    color: #fff;
    border-radius: 50px;
    width: fit-content;
    margin: 30px auto 20px;
}

.recruit-txt2{
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    padding-bottom: 50px;
    color: var(--sakurai);
}
@media (max-width: 768px) {
    .recruit-txt2{
        font-size: 18px;
        padding-bottom: 30px;
    }
}

.recruit-txt3{
    width: 500px;
    margin: 0 auto;
    text-align: center;
}
@media (max-width: 768px) {
    .recruit-txt3{
        width: 100%;
    }
}

.recruit-txt3 span{
    display: inline-block;
    padding-top: 10px;
    text-align: 1.9;
}

.recruit-txt4{
    max-width: 1000px;
    width: 100%;
    margin: 0 auto;
    font-size: 24px;
    border-bottom: 1px solid;
    padding-bottom: 20px;
    color: var(--recruit-color);
}
@media (max-width: 1024px) {
    .recruit-txt4{
        width: 96%;
    }
}

.recruit-txt5{
    font-size: 24px;
    padding-bottom: 30px;
}

.recruit-txt5 span{
    font-size: 16px;
    padding-left: 10px;
}

.recruit-img{
    text-align: center;
}

.recruit-img img{
    width: 15%;
}
@media (max-width: 1024px) {
    .recruit-img img{
        width: 30%;
    }
}

.recruit-img2{
    text-align: center;
    padding-top: 50px;
}

.recruit-img2 img{
    width: 400px;
}

.recruit-img3{
    width: 50%;
}

.recruit-link{
    border: 1px solid var(--sakurai);
    width: 400px;
    margin: 50px auto 0;
    padding: 20px;
    text-align: center;
}
@media (max-width: 768px) {
    .recruit-link{
        padding: 20px 0;
        width: 100%;
    }
}

.recruit-link a{
    color: var(--sakurai);
    
    text-align: center;
    padding: 20px;
    width: 400px;
}

.recruit-wrap{
    display: flex;
    padding-top: 100px;
    column-gap: 50px;
}
@media (max-width: 1024px) {
    .recruit-wrap{
        display: block;
        padding: 0 20px;
    }
}

.recruit-wrap2{
    padding-bottom: 100px;
}

.recruit-txt6 th, 
.recruit-txt6 td, 
.recruit-txt6 tr {
    display: block;
    width: 100%;
}

.recruit-txt6 tr{
    padding-bottom: 20px;
}

.recruit-txt6 th::before{
    content: "―";
    width: 50px;
    height: 50px;
    display: contents;
    padding-right: 5px;
}

/*-------------------------

  お問合せ

-------------------------*/
#wpforms-form-587{
    width: 700px;
    margin: 0 auto;
}

.wpforms-container input.wpforms-field-medium, .wpforms-container select.wpforms-field-medium, .wpforms-container .wpforms-field-row.wpforms-field-medium, .wp-core-ui div.wpforms-container input.wpforms-field-medium, .wp-core-ui div.wpforms-container select.wpforms-field-medium, .wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-medium{
    max-width: 100% !important;
}

@media (max-width: 768px) {
    #wpforms-form-587{
        width: 100%;
        margin: 0 auto;
    }
}



/*-------------------------

  施工事例

-------------------------*/
.news-page {
  padding: 60px 20px;
  background-color: #fff;
  color: #333;
}

.news-container {
  max-width: 900px;
  margin: 0 auto;
}

/* タイトル設定 */
.news-header {
  text-align: center;
  margin-bottom: 50px;
}

.news-title {
  font-size: 32px;
  font-weight: 700;
  margin: 0;
  letter-spacing: 0.05em;
}

.news-subtitle {
  font-size: 14px;
  color: #888;
  margin-top: 5px;
  font-weight: 600;
  letter-spacing: 0.1em;
}

/* リスト領域 */
.news-list {
  list-style: none;
  padding: 0;
  margin: 100px auto;
  border-top: 1px solid #e5e5e5;
    width: 900px;
}
@media (max-width: 899px) {
    .news-list{
        width: 100%;
    }
}

.news-item {
  border-bottom: 1px solid #e5e5e5;
}

/* 1行ごとのリンクカード */
.news-link {
  display: flex;
  align-items: center;
  padding: 24px 16px;
  text-decoration: none;
  color: inherit;
  transition: background-color 0.2s ease, padding-left 0.2s ease;
}

.news-link:hover {
  background-color: #f9f9f9;
}

/* 日付＆カテゴリ部分 */
.news-meta {
  display: flex;
  align-items: center;
  gap: 15px;
  min-width: 180px;
  flex-shrink: 0;
}

.news-date {
  font-size: 14px;
  color: #666;
  font-family: sans-serif;
    padding-left: 20px;
}
@media (max-width: 768px) {
    .news-date{
        padding-left: 0;
    }
}

.news-category {
  display: inline-block;
  padding: 3px 10px;
  font-size: 11px;
  background-color: #f0f0f0;
  color: #555;
  border-radius: 3px;
}

/* 記事タイトル */
.news-item-title {
  font-size: 16px;
  font-weight: 500;
  margin: 0;
  flex-grow: 1;
  padding-right: 20px;
    padding-left: 50px;
  line-height: 1.5;
}

/* 右側の矢印アイコン */
.news-arrow {
  font-size: 18px;
  color: #aaa;
  transition: transform 0.2s ease, color 0.2s ease;
}

.news-link:hover .news-arrow {
  transform: translateX(5px);
  color: #333;
}

/* ページネーション */
.news-pagination {
  margin-top: 40px;
  text-align: center;
}

.news-pagination .page-numbers {
  display: inline-block;
  padding: 8px 14px;
  margin: 0 4px;
  text-decoration: none;
  color: #333;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 14px;
}

.news-pagination .page-numbers.current {
  background-color: #333;
  color: #fff;
  border-color: #333;
}

/* スマホ表示用レイアウト（レスポンシブ） */
@media (max-width: 768px) {
  .news-link {
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    padding-right: 40px;
  }

  .news-meta {
    margin-bottom: 8px;
  }

  .news-arrow {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
  }

  .news-link:hover .news-arrow {
    transform: translate(5px, -50%);
  }
    
    .news-item-title {
        padding-left: 0;
    }
}

.pagination{
    display: block;
    text-align: center;
}