/*
Theme Name: Twenty Twenty-Five Child
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Template: twentytwentyfive
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Tags: one-column,custom-colors,custom-menu,custom-logo,editor-style,featured-images,full-site-editing,block-patterns,rtl-language-support,sticky-post,threaded-comments,translation-ready,wide-blocks,block-styles,style-variations,accessibility-ready,blog,portfolio,news
Version: 1.4.1769870199
Updated: 2026-01-31 23:36:39

*/

/* ���� */
.hero {
  width: 100%;
  height: 100vh;           /* �S��ʕ\�� */
  min-height: 420px;
  position: relative;
  overflow: hidden;
  background: #f5f5f5;
}
.hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero__fallback {
  height: 100%;
  display: grid;
  place-items: center;
  font-size: clamp(28px, 4vw, 44px);
}

.section { max-width: 1000px; margin: 0 auto; padding: 40px 16px; }
.section__title { font-size: 20px; margin: 0 0 16px; }
.info-card { background: #fff; border: 1px solid #eee; border-radius: 14px; padding: 20px; }

/* �O���b�h */
.grid { display: grid; gap: 14px; }

/* ��ЁF�X�܈ꗗ�iSP2�� / PC4��j */
.grid--stores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) {
  .grid--stores { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* �X�܁F�M�������[�iSP2��PC3~4��ȂǍD�݂Łj */
.grid--gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) {
  .grid--gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* �T���l�F�c4 ��6 �� ��:�c=3:2 */
.thumb {
  aspect-ratio: 3 / 2;
  border-radius: 12px;
  overflow: hidden;
  background: #f0f0f0;
}
.thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* �J�[�h */
.card { text-decoration: none; color: inherit; }
.card__title { margin-top: 8px; font-size: 14px; }

/* ���₢���킹�{�^���i�X�܃y�[�W�̂ݕ\���z��j */
.section--cta { padding-top: 0; }
.cta-btn {
  display: block;
  text-align: center;
  padding: 16px 14px;
  border-radius: 999px;
  background: #ff4d8d;
  color: #fff;
  font-weight: 700;
}

/* ===== Recruit Hair (company/store pages) ===== */
.rhrm-page { width: 100%; }

/* container */
.rhrm-container{
  width: min(1100px, 100%);
  margin: 0 auto;
  padding: 0 16px;
}

/* hero */
.rhrm-hero{
  width: 100%;
  height: 100vh; /* full screen */
  position: relative;
  overflow: hidden;
  background: #f5f5f5;
}
.rhrm-hero__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
}
.rhrm-hero__fallback{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 24px;
}
.rhrm-hero__title{
  font-size: clamp(28px, 4vw, 44px);
  margin: 0;
}

/* sections */
.rhrm-section{ padding: 36px 0; }
.rhrm-section--info{ padding-top: 24px; }
.rhrm-section--cta{ padding: 24px 0 56px; }

.rhrm-h2{
  font-size: 28px;
  margin: 0 0 16px;
  font-weight: 700;
}
.rhrm-h3{
  font-size: 20px;
  margin: 0 0 12px;
}
.rhrm-muted{ color:#777; }

/* card */
.rhrm-card{
  border: 1px solid #e6e6e6;
  border-radius: 14px;
  background:#fff;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}
.rhrm-card__body{ padding: 22px; }
.rhrm-divider{
  height: 1px;
  background: #eee;
  margin: 18px 0;
}

/* definition list */
.rhrm-dl{ margin: 0; }
.rhrm-dl__row{
  display:grid;
  grid-template-columns: 140px 1fr;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid #f0f0f0;
}
.rhrm-dl__row:first-child{ border-top: none; padding-top: 0; }
.rhrm-dl dt{ color:#222; border-right: 1px solid gray; }
.rhrm-dl dd{ margin: 0; color:#222; }
.rhrm-dl a{ text-decoration: underline; }

/* grids */
.rhrm-grid{ display:grid; gap: 14px; }
.rhrm-grid--stores{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rhrm-grid--gallery{ grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (min-width: 960px){
  .rhrm-grid--stores{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rhrm-grid--gallery{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rhrm-dl__row{ grid-template-columns: 180px 1fr; }
}

/* store card */
.rhrm-storecard{
  display:block;
  color: inherit;
  text-decoration: none;
}
.rhrm-storecard__thumb{
  border-radius: 12px;
  overflow:hidden;
  background:#f2f2f2;
  aspect-ratio: 6 / 4; /* width / height  (�c4:��6) */
}
.rhrm-storecard__thumb img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}
.rhrm-storecard__thumbFallback{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 12px;
  font-size: 14px;
  color:#666;
  text-align:center;
}
.rhrm-storecard__title{
  margin-top: 8px;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.3;
}

/* gallery thumbs */
.rhrm-thumb{
  border-radius: 12px;
  overflow:hidden;
  background:#f2f2f2;
  aspect-ratio: 6 / 4; /* width / height  (�c4:��6) */
}
.rhrm-thumb img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

/* CTA */
.rhrm-cta{
  display:block;
  width: min(520px, 100%);
  margin: 0 auto;
  text-align:center;
  padding: 14px 18px;
  border-radius: 999px;
  background: #06C755;
  color: #fff !important;
  font-weight: 800;
  text-decoration: none !important;
}
.rhrm-cta:hover{ opacity: .9; }

/* small screens tweaks */
@media (max-width: 480px){
  .rhrm-card__body{ padding: 16px; }
  .rhrm-h2{ font-size: 22px; }
  .rhrm-dl__row{ grid-template-columns: 110px 1fr; }
}

/* ===== Fix: page-company / page-store hero logo size ===== */
body.rhrm-company .rhrm-hero,
body.rhrm-store .rhrm-hero{
  height: auto;         /* 100vh を無効化 */
  min-height: 0;
  overflow: visible;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(10px, 2vw, 24px) 0;
}

body.rhrm-company .rhrm-hero__img,
body.rhrm-store .rhrm-hero__img{
  width: min(1100px, 100%);                 /* 画面幅に合わせて縮小 */
  height: auto !important;                  /* 100% を上書き */
  max-height: clamp(200px, 35vw, 520px);    /* でかすぎ防止（自動可変） */
  object-fit: contain;                      /* ロゴを切らずに収める */
  display: block;
  margin: 0 auto;
}

/* ===== rhrm store/company page responsive fix ===== */

/* 1) 画像・長い文字列で横スクロールしないように */
.rhrm-page img,
.rhrm-page svg,
.rhrm-page video{
  max-width: 100%;
  height: auto;
}

.rhrm-dl,
.rhrm-dl__row,
.rhrm-dl dt,
.rhrm-dl dd{
  min-width: 0; /* gridのはみ出し防止 */
}

/* URL / メール / SNS など長い文字列を強制的に折り返す */
.rhrm-dl dd{
  overflow-wrap: anywhere;
  word-break: break-word;
}
.rhrm-dl dd a{
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* 2) スマホ時は「ラベル/値」を縦積みにして読みやすく */
@media (max-width: 640px){
  .rhrm-dl__row{
    grid-template-columns: 1fr;  /* 2カラム→1カラム */
    gap: 6px;
    padding: 12px 0;
  }
  .rhrm-dl dt{
    border-right: 0;            /* 縦線を消す */
    padding-bottom: 4px;
    font-weight: 700;
    color: #555;
  }
}

/* 3) さらに小さい端末ではギャラリーも1列に */
@media (max-width: 360px){
  .rhrm-grid--gallery,
  .rhrm-grid--stores{
    grid-template-columns: 1fr;
  }
}

/* ===== responsive fix: prevent right clipping on mobile ===== */
.rhrm-page,
.rhrm-page * {
  box-sizing: border-box;
}

.rhrm-cta{
  width: 100%;
  max-width: 520px;   /* 既存のmin(520px, 100%)の意図を維持 */
}

/* gridの中身がはみ出さないように */
.rhrm-dl__row,
.rhrm-dl dt,
.rhrm-dl dd{
  min-width: 0;
}

/* URL/メール等を強制的に折り返す */
.rhrm-dl dd,
.rhrm-dl dd a{
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 640px){
  .rhrm-dl__row{
    grid-template-columns: 1fr; /* 2列→1列 */
    gap: 6px;
  }
  .rhrm-dl dt{
    border-right: 0;
    padding-bottom: 4px;
    font-weight: 700;
    color: #555;
  }
}

/* ===== store bottom images: center on PC ===== */

/* PC時：ギャラリー全体を中央寄せ */
@media (min-width: 768px){
  .rhrm-grid--gallery{
    justify-content: center;  
    width: fit-content;  /* コンテンツ幅にする */
    margin-left: auto;
    margin-right: auto;  /* 全体を中央へ */
  }

  .rhrm-grid--gallery .rhrm-thumb{
    display: flex;
    justify-content: center;  /* 画像を中央 */
  }

  .rhrm-grid--gallery .rhrm-thumb img{
    display: block;
    margin: 0 auto;           
  }
}
/* ===== store_filters: custom select (balloon list) ===== */
.selectbox-grid-3 .custom-select-wrapper{
  position: relative;
  display: inline-block;
  user-select: none;
  width: 100%;
}

.selectbox-grid-3 .custom-select{
  position: relative;
  display: inline-block;
  width: 100%;
}

.selectbox-grid-3 .custom-select-trigger{
  position: relative;
  display: block;
  width: 100%;
  padding: 0 60px 0 16px;
  font-size: 16px;
  font-weight: 400;
  color: #fff;
  line-height: 60px;
  background: #5c9cd8;
  border-radius: 4px;
  cursor: pointer;
}

.selectbox-grid-3 .custom-select-trigger:after{
  position: absolute;
  display: block;
  content: '';
  width: 10px;
  height: 10px;
  top: 50%;
  right: 25px;
  margin-top: -3px;
  border-bottom: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg) translateY(-50%);
  transition: all .4s ease-in-out;
  transform-origin: 50% 0;
}

.selectbox-grid-3 .custom-select.opened .custom-select-trigger:after{
  margin-top: 3px;
  transform: rotate(-135deg) translateY(-50%);
}

.selectbox-grid-3 .custom-options{
  position: absolute;
  display: block;
  top: 100%;
  left: 0;
  right: 0;
  min-width: 100%;
  margin: 15px 0;
  border: 1px solid #b5b5b5;
  border-radius: 4px;
  box-sizing: border-box;
  box-shadow: 0 2px 1px rgba(0,0,0,.07);
  background: #fff;
  transition: all .4s ease-in-out;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-15px);
  z-index: 50;
}

.selectbox-grid-3 .custom-select.opened .custom-options{
  opacity: 1;
  visibility: visible;
  pointer-events: all;
  transform: translateY(0);
}

.selectbox-grid-3 .custom-options:before{
  position: absolute;
  display: block;
  content: '';
  bottom: 100%;
  right: 25px;
  width: 7px;
  height: 7px;
  margin-bottom: -4px;
  border-top: 1px solid #b5b5b5;
  border-left: 1px solid #b5b5b5;
  background: #fff;
  transform: rotate(45deg);
  transition: all .4s ease-in-out;
}

.selectbox-grid-3 .custom-options.option-hover:before{
  background: #f9f9f9;
}

.selectbox-grid-3 .custom-option{
  position: relative;
  display: block;
  padding: 0 22px;
  border-bottom: 1px solid #b5b5b5;
  font-size: 16px;
  font-weight: 700;
  color: #b5b5b5;
  line-height: 47px;
  cursor: pointer;
  transition: all .4s ease-in-out;
}

.selectbox-grid-3 .custom-option:first-of-type{
  border-radius: 4px 4px 0 0;
}

.selectbox-grid-3 .custom-option:last-of-type{
  border-bottom: 0;
  border-radius: 0 0 4px 4px;
}

.selectbox-grid-3 .custom-option:hover,
.selectbox-grid-3 .custom-option.selection{
  background: #f9f9f9;
}
/* store_filters custom option UI - keep original select appearance */
.selectbox-grid-3 .rhrm-select-keep {
  position: relative;
}

.selectbox-grid-3 .rhrm-select-keep select.selectbox-select {
  /* 見た目はそのまま表示したいので display:none はしない */
  pointer-events: none; /* クリックでネイティブを開かせない */
}

/* クリックを受ける透明レイヤー（selectの上に被せる） */
.selectbox-grid-3 .rhrm-select-overlay {
  position: absolute;
  inset: 0;
  cursor: pointer;
  background: transparent;
}

/* 吹き出しリスト（あなたが提示したデザインと同系） */
.selectbox-grid-3 .rhrm-custom-options {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin: 15px 0;
  border: 1px solid #b5b5b5;
  border-radius: 4px;
  box-shadow: 0 2px 1px rgba(0,0,0,.07);
  background: #fff;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-15px);
  transition: all .4s ease-in-out;
  z-index: 999;
}

.selectbox-grid-3 .rhrm-select-keep.is-open .rhrm-custom-options {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
  transform: translateY(0);
}

.selectbox-grid-3 .rhrm-custom-options:before {
  position: absolute;
  content: '';
  bottom: 100%;
  right: 25px;
  width: 7px;
  height: 7px;
  margin-bottom: -4px;
  border-top: 1px solid #b5b5b5;
  border-left: 1px solid #b5b5b5;
  background: #fff;
  transform: rotate(45deg);
}

.selectbox-grid-3 .rhrm-custom-option {
  display: block;
  padding: 0 22px;
  border-bottom: 1px solid #b5b5b5;
  font-size: 16px;
  font-weight: 700;
  color: #666;
  line-height: 47px;
  cursor: pointer;
  transition: all .2s ease;
}

.selectbox-grid-3 .rhrm-custom-option:last-child {
  border-bottom: 0;
}

.selectbox-grid-3 .rhrm-custom-option:hover,
.selectbox-grid-3 .rhrm-custom-option.is-selected {
  background: #f9f9f9;
}
/* =========================
   Rita-style like form for page-contact.php
========================= */

/* error */
.rhrm-form-error{
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(204,0,0,.08);
  color: #c00;
  border: 1px solid rgba(204,0,0,.18);
}

.rhrm-help{
  display:block;
  margin-top:8px;
  font-size:12px;
  color:#666;
}

/* 白カード */
.p-form-section__white{
  background:#fff;
  border-radius:14px;
  box-shadow:0 12px 30px rgba(0,0,0,.08);
  padding:28px 18px;
}

.p-form-description{
  margin:0 0 18px;
  text-align:center;
  line-height:1.7;
  color:#333;
  font-size:14px;
}

/* dl：PC 2カラム / SP 1カラム */
.p-form__control{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:14px 18px;
  padding:16px 0;
  border-top:1px solid rgba(0,0,0,.08);
}
.p-form__control:first-of-type{ border-top:none; }

.p-form__control dt{
  font-weight:700;
  color:#222;
  line-height:1.5;
}
.p-form__control dt span{
  display:inline-block;
  margin-left:8px;
  padding:3px 8px;
  font-size:12px;
  border-radius:999px;
  background:#111;
  color:#fff;
  vertical-align:middle;
}
.p-form__control dt .rhrm-badge-optional{
  background:#777;
}

/* 入力共通 */
.p-form input[type="text"],
.p-form input[type="email"],
.p-form input[type="tel"],
.p-form input[type="date"],
.p-form select,
.p-form textarea{
  width:100%;
  border:1px solid rgba(0,0,0,.12);
  border-radius:10px;
  padding:12px 14px;
  font-size:14px;
  line-height:1.4;
  background:#fff;
  outline:none;
  transition: box-shadow .2s ease, border-color .2s ease;
}

.p-form textarea{ min-height:160px; resize:vertical; }

.p-form input:focus,
.p-form select:focus,
.p-form textarea:focus{
  border-color: rgba(0,0,0,.35);
  box-shadow:0 0 0 4px rgba(0,0,0,.08);
}

.p-form ::placeholder{ color: rgba(0,0,0,.35); }

/* ラジオ・チェック見た目 */
.p-form__checkbox{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
}
.p-form__checkbox label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  cursor:pointer;
  user-select:none;
}
.p-form__checkbox input{
  width:16px;
  height:16px;
}

/* 送信ボタン */
.p-form__submit{
  margin-top:20px;
  text-align:center;
}
.p-form__submit .c-btn__inr{
  position:relative;
  display:inline-block;
  border-radius:999px;
  overflow:hidden;
  box-shadow:0 12px 26px rgba(0,0,0,.14);
}
.p-form__submit .c-btn__inr > span{
  display:inline-block;
  padding:14px 48px;
  font-weight:700;
  color:#fff;
  letter-spacing:.02em;
  background:#111;
}

/* クリック領域用：buttonを透明で上に載せる */
.p-form__submit .rhrm-submit-btn{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
  border:none;
  background:transparent;
}

/* SP */
@media (max-width: 768px){
  .p-form__control{
    grid-template-columns:1fr;
    gap:10px;
  }
  .p-form-section__white{
    padding:22px 14px;
    border-radius:12px;
  }
}
/* ===== 連絡先（メール/電話）ラジオを小さく ===== */
.p-form__checkbox input[type="radio"]{
  width: 14px;
  height: 14px;
}

/* ラベル内の並びも少し詰める（任意） */
.p-form__checkbox label{
  gap: 6px;
  padding: 7px 10px; /* 少し小さめ */
}

/* ===== 必須バッジを赤＋小さく＋細字 ===== */
.p-form__control dt span{
  background: #e60023;     /* 赤 */
  color: #fff;
  font-size: 11px;         /* 少し小さく */
  font-weight: 400;        /* 細字 */
  padding: 2px 7px;        /* 少しコンパクト */
  border-radius: 999px;
}

/* 任意バッジはグレーのまま（既にある場合の上書き） */
.p-form__control dt .rhrm-badge-optional{
  background: #777;
  font-size: 11px;
  font-weight: 400;
  padding: 2px 7px;
}
.rhrm-hidden{
  display: none !important;
}

/* お問い合わせ（?rhrm_contact=1）時だけ、勝手に出る旧ヘッダーを非表示 */
body.rhrm-is-contact #header,
body.rhrm-is-contact #headerimg,
body.rhrm-is-contact #page > hr{
  display: none !important;
}
.rhrm-cta-wrap{
  display: grid;
  gap: 12px;
  justify-items: center;
}

/* LINEボタンを緑にしたい場合（任意） */
.rhrm-cta--line{
  background: #06C755;
}

.has-global-padding{
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.rhrm-fullbleed{
  width: 100% !important;
}

.info-heading-brackets{
  padding: .99em 0.9em .99em 1.15em !important;
}