@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/


.shippori-mincho {
  font-family: 'Shippori Mincho', serif !important;
}

.shippori-mincho {
  font-family: 'Shippori Mincho', serif !important;
  letter-spacing: 0.05em; /* 文字間の調整。数値はお好みで調整してください */
}

body {
  line-height: 2; /* 通常は1.4〜1.8あたりが読みやすいです */
}


/* ボタンを右端に配置するためのコンテナ */
.button-container {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    margin-bottom: 40px;
}

/* ボタンを右端に配置するためのコンテナ */
.button-container {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    margin-bottom: 40px;
}

.custom-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: transparent !important;
    border: none !important;
    padding: 10px 0 !important;
    text-decoration: none !important;
    color: #242424 !important;
    font-size: 16px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

.button-content {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.button-text {
    font-size: 14px !important;
}

.button-arrow {
    width: 20px !important;
    height: 1px !important;
    background-color: #242424 !important;
    position: relative !important;
    transition: transform 0.3s ease !important;
}

/* 矢印を斜め左上に変更 */
.button-arrow::after {
    content: '' !important;
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    width: 8px !important;
    height: 1px !important;
    background-color: #242424 !important;
    transform: rotate(45deg) !important;
    transform-origin: right center !important;
}

.button-circle {
    width: 50px !important;
    height: 50px !important;
    background-color: #DBB2B2 !important;
    border-radius: 50% !important;
    margin-left: 10px !important;
    transition: all 0.3s ease !important;
    opacity: 0.8 !important;
}

.custom-button:hover .button-arrow {
    transform: translateX(8px) !important;
}

.custom-button:hover .button-circle {
    transform: scale(1.15) !important;
    opacity: 1 !important;
}

/* フォーム全体のスタイリング */
.custom-form {
    max-width: 600px; /* フォーム全体の最大幅を指定し、中央寄せでバランスを整える */
    margin: 0 auto; /* 中央に配置 */
    font-family: 'Arial', sans-serif; /* フォーム全体のフォントを指定 */
    color: #6E6C66; /* テキストの色を濃いグレーに設定 */
}

.custom-form label {
    display: inline-block; /* ラベルを独立したブロック要素として扱う */
    margin-bottom: 8px; /* ラベル下に余白を追加して間隔を調整 */
    font-weight: bold; /* ラベルの文字を強調 */
    font-size: 14px; /* ラベルの文字サイズを調整 */
}

/* 必須ラベルのスタイリング */
.custom-form .required {
    display: inline-block; /* 必須ラベルをインラインで表示 */
    margin-left: 5px; /* ラベルと必須マークの間隔を調整 */
    padding: 2px 6px; /* 内側の余白を設定して視認性を向上 */
    font-size: 12px; /* 必須ラベルの文字サイズを指定 */
    color: #FF0000; /* テキスト色を白に設定 */
    font-weight: bold; /* ラベルの文字を太字に */
}

/* 入力フィールド */
.custom-form input[type="text"],
.custom-form input[type="email"],
.custom-form input[type="tel"],
.custom-form textarea {
    width: 100%; /* フィールド幅をフォームに合わせて最大化 */
    padding: 10px; /* 内側の余白を設定して入力しやすくする */
    margin-bottom: 30px; /* 各フィールドの下に余白を設定して間隔を広げる */
    border: 2px solid #E7DCD7; /* メインカラーを枠線に適用 */
    border-radius: 5px; /* 入力フィールドを角丸に */
    background: #f8f9fa; /* フィールド背景を薄いグレーに設定 */
    font-size: 14px; /* フィールド内テキストのサイズを指定 */
    transition: border-color 0.3s ease, background-color 0.3s ease; /* フォーカス時のスムーズな変化を設定 */
}

.custom-form input[type="text"]:focus,
.custom-form input[type="email"]:focus,
.custom-form input[type="tel"]:focus,
.custom-form textarea:focus {
    border-color: #8ccad7; /* フォーカス時の枠線色を強調 */
    outline: none; /* ブラウザデフォルトのフォーカス枠を削除 */
    background: #e6f7fa; /* フォーカス時の背景色をメインカラーの薄いバリエーションに変更 */
}

/* 送信ボタンの調整 */
.custom-form input[type="submit"] {
    display: block; /* ブロック要素として中央揃えしやすく設定 */
    width: 80%; /* ボタン幅を適度に制限 */
    margin: 0 auto; /* ボタンを中央寄せ */
    padding: 12px 20px; /* ボタン内側の余白を調整 */
    border: none; /* 枠線を削除してシンプルなデザインに */
    border-radius: 25px; /* ボタンを丸みのある形状に設定 */
    background: #E7DCD7; /* ボタン背景にメインカラーを適用 */
    color: #fff; /* ボタン文字を白に設定 */
    font-size: 16px; /* ボタン文字のサイズを指定 */
    cursor: pointer; /* ボタンにホバーポインタを表示 */
    transition: background-color 0.3s ease; /* ホバー時の背景色変更をスムーズに */
}

.custom-form input[type="submit"]:hover {
    background: #D2B49C; /* ボタンホバー時にメインカラーの濃いバリエーションを表示 */
}

/* About Us ページ用 縦書きテキスト */
.vertical-text-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 60vh;
  padding: 40px 20px;
}

.vertical-text {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 16px;
  line-height: 1.9;
  color: #494949;
  letter-spacing: 0.05em;
  max-width: 90%;
  text-align: justify;
  font-family: 'Yu Gothic', '游ゴシック', YuGothic, '游ゴシック体', sans-serif;
  white-space: pre-line;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .vertical-text-container {
    min-height: 50vh;
    padding: 30px 15px;
  }
  
  .vertical-text {
    font-size: 14px;
    line-height: 1.7;
    max-width: 95%;
  }
}

@media (max-width: 480px) {
  .vertical-text-container {
    min-height: 40vh;
    padding: 20px 10px;
  }
  
  .vertical-text {
    font-size: 12px;
    line-height: 1.6;
  }
}

.news-heading {
  position: relative;
  padding: 60px 0 20px; /* ← 左右のpaddingを0に */
  overflow: hidden;
  isolation: isolate;
}

.news-background {
  position: absolute;
  top: 50%;
  left: 0; /* ← 左端にぴったり揃える */
  transform: translateY(-50%);
  font-size: 72px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.4);
  z-index: 0;
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
  line-height: 1;
  font-family: inherit;
}

.news-title {
  position: absolute;
  top: 50%;
  left: 0; /* ← 左端にぴったり揃える */
  transform: translateY(-50%);
  font-size: 24px;
  font-weight: bold;
  color: #333;
  z-index: 1;
  margin: 0;
}

/* ▼ モバイル対応 */
@media screen and (max-width: 768px) {
  .news-background {
    font-size: 48px;
  }

  .news-title {
    font-size: 20px;
  }

  .news-heading {
    padding: 40px 0 15px; /* 左右のpaddingを0に */
  }
}


@media screen and (max-width: 768px) {
  .swl-fz {
    font-size: 32px !important; /* ← 好きなサイズに調整OK */
  }
}

