/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* Variables */
:root {
    --color-primary: #0a1930;
    /* Deep Navy */
    --color-accent: #c5a059;
    /* Gold/Bronze */
    --color-text: #333333;
    --color-bg-light: #f4f5f7;
    --font-jp: 'Noto Sans JP', sans-serif;
    --font-en: 'Lato', sans-serif;
}

body {
    font-family: var(--font-jp);
    color: var(--color-text);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-jp);
    color: var(--color-primary);
    font-weight: 700;
}

/* Header Adjustments for Transparency/Overlay effect if desired later */
.site-header {
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

/* Carousel Section */
.home-carousel-section {
    width: 100%;
    position: relative;
    /* Adjust height as needed, e.g., calc(100vh - header_height) */
    height: 800px;
    overflow: hidden;
    margin-bottom: 3rem;
}

.swiper {
    width: 100%;
    height: 100%;
}

.slide-content {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.slide-overlay {
    background: rgba(10, 25, 48, 0.4);
    /* Dark overlay for text readability */
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.slide-text {
    color: #fff;
    padding: 20px;
    max-width: 800px;
}

.slide-title {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.4;
    color: #fff;
    margin-bottom: 1rem;
    letter-spacing: 0.1em;
}

@media(max-width:800px){
.slide-text {
	font-size: 1.3rem;
    color: #fff;
    padding: 20px;
    max-width: 800px;
}

.slide-title {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.4;
    color: #fff;
    margin-bottom: 1rem;
    letter-spacing: 0.1em;
}
}

.slide-subtitle {
    font-size: 1.2rem;
    font-family: var(--font-en);
    letter-spacing: 0.2em;
	/* color: var(--color-accent); */
	color: #fff;
    text-transform: uppercase;
}

/* Astra Content Override to go full width */
.ast-container {
    max-width: 1200px;
    /* Standardize max width */
}

.home .site-content {
    padding-top: 0;
    /* Remove top padding on home to merge header/carousel visually if needed */
}

/* Header & Navigation */
.main-header-bar {
    background-color: #fff;
    /* Clean white background */
    border-bottom: 1px solid #eaeaea;
}

.main-header-menu .menu-item a {
    font-family: var(--font-en);
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.9rem;
    transition: color 0.3s ease;
}

.main-header-menu .menu-item a:hover {
    color: var(--color-accent);
}

.ast-site-identity .site-title a {
    color: var(--color-primary);
    font-family: var(--font-en);
    letter-spacing: 0.1em;
}

/* Typography Enhancements */
p {
    line-height: 1.8;
    margin-bottom: 1.8rem;
    color: #555;
    font-size: 1rem;
}

h2 {
    font-size: 2.2rem;
    margin-bottom: 2rem;
    position: relative;
    padding-bottom: 1rem;
}

/* Section Title Underline */
h2::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background-color: var(--color-accent);
    margin-top: 1rem;
}

/* Buttons */
.wp-block-button__link,
.ast-button,
button,
input[type="submit"] {
    background-color: var(--color-primary);
    color: #fff;
    border-radius: 0;
    /* Sharp edges for intellectual feel */
    padding: 12px 30px;
    font-family: var(--font-en);
    font-weight: 700;
    letter-spacing: 0.1em;
    border: 1px solid var(--color-primary);
    transition: all 0.3s ease;
}

.wp-block-button__link:hover,
.ast-button:hover,
button:hover,
input[type="submit"]:hover {
    background-color: transparent;
    color: var(--color-primary);
}

/* Special Button Style: Gold Accent */
.is-style-accent-button .wp-block-button__link {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
}

.is-style-accent-button .wp-block-button__link:hover {
    background-color: transparent;
    color: var(--color-accent);
}

/* Sidebar & Widgets (Sub-page ref) */
.widget-title {
    font-size: 1.4rem;
    color: var(--color-primary);
    border-bottom: 2px solid var(--color-accent);
    padding-bottom: 0.5rem;
    margin-bottom: 1.5rem;
    display: inline-block;
}

.widget ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.widget ul li {
    padding: 0.8rem 0;
    border-bottom: 1px dashed #ddd;
    position: relative;
    padding-left: 1.2rem;
}

.widget ul li::before {
    content: '›';
    position: absolute;
    left: 0;
    color: var(--color-accent);
    font-weight: bold;
    font-size: 1.2rem;
    line-height: 1;
    top: 0.8rem;
}

.widget ul li a {
    color: #555;
    transition: color 0.3s ease;
    text-decoration: none;
}

.widget ul li a:hover {
    color: var(--color-primary);
}

/* Footer Styling */
.site-footer {
    background-color: var(--color-primary);
    color: #fff;
    padding: 3rem 0;
}

.site-footer a {
    color: #cbd5e0;
}

.site-footer a:hover {
    color: var(--color-accent);
}

.site-footer h2,
.site-footer h3,
.site-footer h4 {
    color: #fff;
}

/******************************/
/** コンタクトフォームの装飾 **/
/******************************/
/*　フォーム全体　*/

/*ContactForm7カスタマイズ*/
/* Contact Form7スマホ・タブレット用カスタマイズ */
@media(max-width:850px){
/* テーブルの見出しとフォーム */
table.inquiry th,table.inquiry td {
   display:block;
   padding:1em 0!important;
   width:100%;
   border:0;
}

/* 送信ボタン */
input.wpcf7-submit{
   margin-bottom:30px;
   width:100%;
}
}

/* 日付タグ上のテキストをPCとスマホで変更 */
@media(max-width:900px){
.pcdate{
   display: none;
}
}
@media(min-width:1000px){
.spdate{
   display: none;
}
/* 日付タグの幅を調整 */
.wpcf7-date.dateform{
   width: 25%;
}
}

/* Contact Form7全体カスタマイズ */

/* 自動入力されるPタグを無効にする */
.inquiry p {
   display: inline;
}

/*テーブル下に余白.枠線・テキストの行間 */
table.inquiry {
   margin-bottom: 30px;
   border:solid 1px #d7d7d7;
   line-height:1.2;
   vertical-align:middle;
}

/* テーブルの行 */
.inquiry tr {
   border:0!important;
}

/* テーブルの見出し側 */
.inquiry th{
   text-align:left;
   font-size:14px;
   color:#444;
   padding:1em 0.5em;
   width:0;
   background:#efefef;
   border:solid 1px #d7d7d7;
   white-space: nowrap;
   vertical-align: middle;
}

/* 必須と任意タグ */
.haveto,.any{
   font-size:13px;
   padding:5px;
   background:#ff9393;
   border-radius:2px;
   margin-right:5px;
   font-weight:normal;
}

span.haveto{
   background:#ff9393;
   color:#ff0000;
   display: block;
}

.any{
   background:#ff9393;
   color:#fff;
}

/* 任意タグの背景カラー */
.any{
   background:#93c9ff;
}

/* テーブルフォーム側 */
.inquiry td{
   font-size:13px;
   border:solid 1px #d7d7d7;	
}

/* 入力エリア幅最大 */
.wpcf7-form-control {
   width: 100%;
}

/* フォーム入力欄の余白・背景カラー・枠線消す指定 */
.inquiry input,.inquiry select,.inquiry textarea {
   margin: 5px 0;
   background:#eff1f5;
   border: none;
   padding:0.7em;
}
.inquiry textarea {
   padding-bottom:10em;
}

/* チェックボックスとラジオボタンの位置調整 */
.wpcf7-list-item-label,.wpcf7-checkbox,input[type=checkbox],input[type=radio]{
   vertical-align:middle;
}
.wpcf7-list-item-label{
   padding:0 5px 0 2px;
}
/*ラジオボタンを縦並び指定*/
.verticallist{
   display:inline-grid;
}

/* 送信ボタンのデザイン */
.wpcf7-submit{
   display: block;
   margin:10px auto;
   padding:1em 0;
   width:80%;
   background:#09b555;
   color:#fff;
   font-size:18px;
   font-weight:bold;	 
   border-radius:4px;
   border: none;
}

/* 送信ボタンマウスホバー時 */
.wpcf7-submit:hover{
   opacity: 0.9;
   transition: 0.3s;
}

/* フォーム上部に表示されるエラーメッセージを非表示 */
.screen-reader-response {
    display: none;
}

/* フォーム内エラーメッセージを赤色に指定 */
.wpcf7-not-valid-tip {
    color: #e92323;
}


/* リスト全体 */
.check-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 20px 0 !important;
}

/* 各項目 */
.check-list li {
    position: relative !important;
    padding-left: 35px !important;
    margin-bottom: 12px !important;
    list-style-type: none !important; /* 点を確実に消す */
}

/* チェックマーク */
.check-list li::before {
    content: '✔' !important;
    position: absolute !important;
    left: 0 !important;
    color: #3b49df !important;
    font-weight: bold !important;
}

/* 4. マジック波線（ピント部分） */
  .magic-wave {
    display: inline-block !important;
    position: relative;
    font-weight: bold;
    padding-bottom: 4px;
}
  .magic-wave::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 6px;
    color: #d9534f; /* 強調の赤 */
    font-size: 1.8rem;
    border-bottom: 2px solid #d9534f;
}


img {
    max-width: 100% !important;
    height: auto !important;
}

/* 画面幅が768px以下の時（スマホ・タブレット）に適用 */
@media screen and (max-width: 768px) {
    .lab-note-full {
        padding: 30px 15px !important; /* 余白を狭くしてコンテンツを確保 */
    }
    
    .service-grid-wide {
        grid-template-columns: 1fr !important; /* 3列から1列に並べ替え */
    }
    
    .circle-img-frame {
        width: 120px !important; /* 画像を少し小さく */
        height: 120px !important;
    }
}

