@charset "UTF-8";
/* お問い合わせ・意見交換会・申込ページ用 v0.3.1
 * WPForms Liteを想定した opt-in 装飾。フォーム項目・必須判定・送信ロジックには手を加えない。
 * 実際のフォーム種類・通知と保存設定は工程09・10で検証する。
 */
.aoyagi-page--form .aoyagi-form__intro {
  max-width: var(--aoyagi-width-reading); margin: 0 auto 32px;
  color: var(--aoyagi-text); line-height: 1.9;
}
.aoyagi-page--form .aoyagi-form__options {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px;
  margin-bottom: clamp(28px, 4vw, 44px);
}
.aoyagi-page--form .aoyagi-form__option {
  display: flex; align-items: center; gap: 12px; min-width: 0;
  padding: 18px; border: 1px solid var(--aoyagi-line);
  border-radius: var(--aoyagi-radius-md); background: #fff;
  color: var(--aoyagi-navy); text-decoration: none;
}
.aoyagi-page--form .aoyagi-form__option-icon { display: block; width: 44px; height: 44px; flex: none; object-fit: contain; }
.aoyagi-page--form .aoyagi-form__option-label { font-size: 1.04rem; font-weight: 700; line-height: 1.55; }
.aoyagi-page--form .aoyagi-form__panel {
  max-width: var(--aoyagi-width-reading); margin-inline: auto;
  padding: clamp(20px, 3vw, 36px); border: 1px solid var(--aoyagi-line);
  border-radius: var(--aoyagi-radius-lg); background: #fff; box-shadow: var(--aoyagi-shadow);
}
.aoyagi-page--form .aoyagi-form__panel-title {
  margin: 0 0 20px; border: 0; padding: 0; background: none;
  color: var(--aoyagi-navy); font-family: var(--aoyagi-font-serif);
  font-size: clamp(1.4rem, 1.2rem + .5vw, 1.7rem); font-weight: 700;
}
.aoyagi-page--form .aoyagi-form__panel-title::before,
.aoyagi-page--form .aoyagi-form__panel-title::after { display: none; content: none; }
.aoyagi-page--form .aoyagi-form__notice {
  max-width: var(--aoyagi-width-reading); margin: 24px auto;
  padding: 18px 20px; border-left: 4px solid var(--aoyagi-blue);
  border-radius: 0 var(--aoyagi-radius-sm) var(--aoyagi-radius-sm) 0;
  background: var(--aoyagi-pale); line-height: 1.8;
}
.aoyagi-page--form .aoyagi-form__notice > :first-child { margin-top: 0; }
.aoyagi-page--form .aoyagi-form__notice > :last-child { margin-bottom: 0; }
/* 子テーマの広域CSSと衝突しないよう、フォームの親ラッパーに限定。 */
.aoyagi-page--form .aoyagi-form__panel .wpforms-container { max-width: 100%; margin: 0; }
.aoyagi-page--form .aoyagi-form__panel .wpforms-field { margin-bottom: 8px; }
.aoyagi-page--form .aoyagi-form__panel .wpforms-field-label { display: block; margin-bottom: 8px; color: var(--aoyagi-navy); font-size: 1rem; font-weight: 700; }
.aoyagi-page--form .aoyagi-form__panel .wpforms-container input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.aoyagi-page--form .aoyagi-form__panel .wpforms-container select,
.aoyagi-page--form .aoyagi-form__panel .wpforms-container textarea {
  max-width: 100%; border: 1px solid #8198ac; border-radius: 6px;
  background: #fff; color: #193348; font-size: 1rem; line-height: 1.5;
}
.aoyagi-page--form .aoyagi-form__panel .wpforms-container input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.aoyagi-page--form .aoyagi-form__panel .wpforms-container select { min-height: 48px; }
.aoyagi-page--form .aoyagi-form__panel .wpforms-container textarea { min-height: 140px; padding-block: 12px; }
.aoyagi-page--form .aoyagi-form__panel .wpforms-container input:focus-visible,
.aoyagi-page--form .aoyagi-form__panel .wpforms-container select:focus-visible,
.aoyagi-page--form .aoyagi-form__panel .wpforms-container textarea:focus-visible,
.aoyagi-page--form .aoyagi-form__panel .wpforms-container button:focus-visible {
  outline: 3px solid var(--aoyagi-focus); outline-offset: 2px;
}
.aoyagi-page--form .aoyagi-form__panel .wpforms-container button[type="submit"] {
  min-height: 48px; padding: 12px 28px;
  border: 1px solid var(--aoyagi-navy); border-radius: var(--aoyagi-radius-sm);
  background: var(--aoyagi-navy); color: #fff;
  font-size: 1rem; font-weight: 700; cursor: pointer;
}
.aoyagi-page--form .aoyagi-form__panel .wpforms-container button[type="submit"]:hover { background: var(--aoyagi-navy-deep); }
.aoyagi-page--form .aoyagi-form__privacy { max-width: var(--aoyagi-width-reading); margin: 24px auto 0; color: var(--aoyagi-muted); font-size: .92rem; line-height: 1.8; }
.aoyagi-page--form .aoyagi-form__privacy a { text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 767px) {
  .aoyagi-page--form .aoyagi-form__options { grid-template-columns: 1fr; }
  .aoyagi-page--form .aoyagi-form__option { padding: 15px; }
  .aoyagi-page--form .aoyagi-form__panel { padding: 20px 16px; }
  .aoyagi-page--form .aoyagi-form__panel .wpforms-container button[type="submit"] { width: 100%; }
}


/* 工程09 お問い合わせ専用 v0.3 */

/*
 * 青柳あつし Official Site | 工程09 お問い合わせ専用CSS v0.1
 * 2026-10-22 | 実装前・PC/SP実機未検証
 * 対象: 固定ページID 1569 /contact-us/
 * 共通CSS v0.2のトークンを優先、未読込時も基本表示可能。
 * 既存のSWELL・WPFormsや他ページには適用しない。
 */
.aoyagi-page--contact {
  --aoyagi-navy: #07356d;
  --aoyagi-text: #263c55;
  --aoyagi-line: #dbe8f4;
  --aoyagi-pale: #eff8fd;
  --aoyagi-contact-radius: 14px;
  color: var(--aoyagi-text);
  width: min(1200px, calc(100vw - 32px));
  max-width: none;
  margin: 0 0 70px 50%;
  transform: translateX(-50%);
  line-height: 1.8;
  overflow-wrap: anywhere;
}
.aoyagi-page--contact,
.aoyagi-page--contact *,
.aoyagi-page--contact *::before,
.aoyagi-page--contact *::after { box-sizing: border-box; }

/* SWELL本文の標準H1をページ単位で隠し、カスタムHEROのH1と重ねない */
.page-id-1569 #main_content > .l-mainContent__inner > .c-pageTitle { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; padding:0; margin:-1px; }
.aoyagi-page--contact h1,
.aoyagi-page--contact h2,
.aoyagi-page--contact h3 {
  margin: 0;
  padding: 0;
  color: var(--aoyagi-navy);
  background: transparent;
  border: 0;
  box-shadow: none;
  line-height: 1.5;
}
.aoyagi-page--contact h1::before,
.aoyagi-page--contact h1::after,
.aoyagi-page--contact h2::before,
.aoyagi-page--contact h2::after,
.aoyagi-page--contact h3::before,
.aoyagi-page--contact h3::after { content: none; display: none; }
.aoyagi-page--contact p { margin: 0; }

/* HERO / 実写真は編集せず切り出しのみ */
.aoyagi-page--contact .aoyagi-contact-hero {
  position: relative;
  display: flex;
  min-height: clamp(330px, 31vw, 410px);
  align-items: center;
  overflow: hidden;
  border-radius: 0 0 var(--aoyagi-contact-radius) var(--aoyagi-contact-radius);
  background: #cbe6f7;
}
.aoyagi-page--contact .aoyagi-contact-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.aoyagi-page--contact .aoyagi-contact-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgb(239 249 255 / 96%) 0%, rgb(239 249 255 / 90%) 27%, rgb(239 249 255 / 66%) 43%, transparent 70%);
  pointer-events: none;
}
.aoyagi-page--contact .aoyagi-contact-hero__copy {
  position: relative;
  z-index: 1;
  width: min(62%, 660px);
  padding: clamp(26px, 4.5vw, 56px);
}
.aoyagi-page--contact .aoyagi-contact-hero__eyebrow,
.aoyagi-page--contact .aoyagi-contact-section__eyebrow {
  color: #087ccd;
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .12em;
}
.aoyagi-page--contact .aoyagi-contact-hero h2 {
  margin: 8px 0 9px;
  font-size: clamp(2.15rem, 1.4rem + 3.2vw, 3.4rem);
  font-weight: 800;
  letter-spacing: .025em;
}
.aoyagi-page--contact .aoyagi-contact-hero__catch {
  margin-bottom: 14px;
  color: var(--aoyagi-navy);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.25rem, .9rem + 1.1vw, 1.8rem);
  font-weight: 700;
  line-height: 1.55;
}
.aoyagi-page--contact .aoyagi-contact-hero__text {
  max-width: 42ch;
  font-size: clamp(.95rem, .88rem + .3vw, 1.04rem);
  line-height: 1.9;
}

/* 本文左＋補助カラム右。SWELLのテーマサイドバーではなくページ本文内。 */
.aoyagi-page--contact .aoyagi-contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 272px;
  gap: clamp(20px, 2.4vw, 32px);
  align-items: start;
  margin-top: clamp(30px, 4vw, 50px);
}
.aoyagi-page--contact .aoyagi-contact-layout__main,
.aoyagi-page--contact .aoyagi-contact-layout__aside { min-width: 0; }
.aoyagi-page--contact .aoyagi-contact-section + .aoyagi-contact-section { margin-top: 46px; }
.aoyagi-page--contact .aoyagi-contact-section__head { margin-bottom: 19px; }
.aoyagi-page--contact .aoyagi-contact-section__head h2,
.aoyagi-page--contact .aoyagi-contact-form-section__intro h2 {
  margin: 3px 0 5px;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.42rem, 1.1rem + .8vw, 1.9rem);
}
.aoyagi-page--contact .aoyagi-contact-section__head p:not(.aoyagi-contact-section__eyebrow),
.aoyagi-page--contact .aoyagi-contact-form-section__intro p:not(.aoyagi-contact-section__eyebrow) {
  font-size: .94rem;
  color: #526b82;
  line-height: 1.8;
}

/* 6つのご用件カード */
.aoyagi-page--contact .aoyagi-contact-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.aoyagi-page--contact .aoyagi-contact-card {
  --card-accent: #db4768;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  padding: 18px 16px 17px;
  border: 1px solid #e6eaf1;
  border-radius: 9px;
  background: #fff5f7;
  box-shadow: 0 2px 12px rgb(15 47 80 / 4%);
}
.aoyagi-page--contact .aoyagi-contact-card--local { --card-accent: #0872d8; background: #f0f8ff; }
.aoyagi-page--contact .aoyagi-contact-card--policy { --card-accent: #458149; background: #f3f9f3; }
.aoyagi-page--contact .aoyagi-contact-card--report { --card-accent: #e66e23; background: #fff8f1; }
.aoyagi-page--contact .aoyagi-contact-card--event { --card-accent: #7d42ba; background: #f8f4fd; }
.aoyagi-page--contact .aoyagi-contact-card--other { --card-accent: #606c76; background: #f5f8fa; }
.aoyagi-page--contact .aoyagi-contact-card__number {
  display: grid;
  width: 55px;
  height: 55px;
  place-items: center;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: var(--card-accent);
  color: #fff;
  font-size: 1.18rem;
  font-weight: 800;
  line-height: 1;
}
.aoyagi-page--contact .aoyagi-contact-card h3 {
  width: 100%;
  margin: 0 0 8px;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.5;
  text-align: center;
}
.aoyagi-page--contact .aoyagi-contact-card > p {
  flex: 1 1 auto;
  margin-bottom: 14px;
  font-size: .88rem;
  line-height: 1.72;
}
.aoyagi-page--contact .aoyagi-contact-card > a {
  display: inline-flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: .5em;
  margin-top: auto;
  padding: 7px 10px;
  border: 1.5px solid var(--card-accent);
  border-radius: 99px;
  background: white;
  color: var(--card-accent);
  font-size: .85rem;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
  transition: background-color .16s ease, color .16s ease;
}
.aoyagi-page--contact .aoyagi-contact-card > a:hover,
.aoyagi-page--contact .aoyagi-contact-card > a:focus-visible {
  background: var(--card-accent);
  color: #fff;
}

/* FAQ: HTML details・summary 標準操作 */
.aoyagi-page--contact .aoyagi-contact-faq__list { display: grid; gap: 8px; }
.aoyagi-page--contact .aoyagi-contact-faq__list details {
  border: 1px solid #d5e7f5;
  border-radius: 7px;
  background: #fff;
}
.aoyagi-page--contact .aoyagi-contact-faq__list summary {
  position: relative;
  min-height: 49px;
  padding: 13px 48px 13px 17px;
  color: var(--aoyagi-navy);
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.55;
  list-style: none;
  cursor: pointer;
}
.aoyagi-page--contact .aoyagi-contact-faq__list summary::-webkit-details-marker { display: none; }
.aoyagi-page--contact .aoyagi-contact-faq__list summary::after {
  content: "+";
  position: absolute;
  top: 50%; right: 17px;
  transform: translateY(-50%);
  color: #0b4686;
  font-size: 1.35rem;
  font-weight: 400;
}
.aoyagi-page--contact .aoyagi-contact-faq__list details[open] summary::after { content: "−"; }
.aoyagi-page--contact .aoyagi-contact-faq__answer {
  padding: 0 17px 16px;
  color: #415b74;
  font-size: .93rem;
  line-height: 1.8;
}

/* 右側メッセージ・連絡先 */
.aoyagi-page--contact .aoyagi-contact-aside-message,
.aoyagi-page--contact .aoyagi-contact-aside-info {
  padding: 20px;
  border: 1px solid #dfebf3;
  border-radius: 11px;
  background: #f2f8fc;
}
.aoyagi-page--contact .aoyagi-contact-aside-message h2,
.aoyagi-page--contact .aoyagi-contact-aside-info h2 {
  margin-bottom: 14px;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.55;
}
.aoyagi-page--contact .aoyagi-contact-aside-message img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1.6 / 1;
  margin-bottom: 13px;
  border-radius: 8px;
  object-fit: cover;
  object-position: 77% center;
}
.aoyagi-page--contact .aoyagi-contact-aside-message p {
  font-size: .91rem;
  line-height: 1.83;
}
.aoyagi-page--contact .aoyagi-contact-aside-message .aoyagi-contact-aside-message__name {
  margin-top: 12px;
  color: var(--aoyagi-navy);
  font-size: 1.14rem;
  font-weight: 700;
  text-align: right;
}
.aoyagi-page--contact .aoyagi-contact-aside-info { margin-top: 13px; background: #fff; }
.aoyagi-page--contact .aoyagi-contact-aside-info__entry {
  padding: 14px 0;
  border-top: 1px solid #e0eaf4;
}
.aoyagi-page--contact .aoyagi-contact-aside-info__entry h3 {
  margin: 0 0 4px;
  font-size: .9rem;
  font-weight: 800;
}
.aoyagi-page--contact .aoyagi-contact-aside-info__primary {
  display: inline-block;
  max-width: 100%;
  color: #06458b;
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.6;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.aoyagi-page--contact .aoyagi-contact-aside-info address {
  font-size: .9rem;
  font-style: normal;
  line-height: 1.8;
}
.aoyagi-page--contact .aoyagi-contact-aside-info__map {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 7px;
  color: #06458b;
  font-size: .87rem;
  font-weight: 700;
  text-underline-offset: .25em;
}

/* 相談フォーム本体。WPForms設定自体をCSSで書き換えない。 */
.aoyagi-page--contact .aoyagi-contact-form-section {
  max-width: 920px;
  margin: clamp(48px, 6vw, 78px) auto 0;
  padding: clamp(22px, 4vw, 46px);
  border: 1px solid #d8e5f1;
  border-radius: 16px;
  background: #f7fbff;
}
.aoyagi-page--contact .aoyagi-contact-form-section__intro { margin-bottom: 24px; }
.aoyagi-page--contact .aoyagi-contact-form-section__body {
  max-width: 740px;
  margin-inline: auto;
  padding: clamp(17px, 2.5vw, 30px);
  border-radius: 9px;
  background: #fff;
}
.aoyagi-page--contact .wpforms-container { margin: 0 !important; }
.aoyagi-page--contact .wpforms-container .wpforms-field-label {
  color: #173a5e;
  font-size: 1rem;
  font-weight: 700;
}
.aoyagi-page--contact .wpforms-container input:not([type="checkbox"]):not([type="radio"]),
.aoyagi-page--contact .wpforms-container select,
.aoyagi-page--contact .wpforms-container textarea {
  max-width: 100%;
  min-height: 46px;
  border: 1px solid #b8cddd;
  border-radius: 6px;
  background: #fff;
  color: #203b54;
  font-size: 1rem;
}
.aoyagi-page--contact .wpforms-container textarea { min-height: 160px; }
.aoyagi-page--contact .wpforms-container .wpforms-submit-container { text-align: center; }
.aoyagi-page--contact .wpforms-container button[type="submit"] {
  min-height: 50px;
  padding: 12px 38px;
  border: 0;
  border-radius: 8px;
  background: #07356d;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
}
.aoyagi-page--contact .wpforms-container button[type="submit"]:hover { background: #092b58; }
.aoyagi-page--contact .aoyagi-contact-form-section__notice {
  margin-top: 17px;
  color: #506b85;
  font-size: .85rem;
  line-height: 1.8;
}

/* 下部のやさしいCTA */
.aoyagi-page--contact .aoyagi-contact-footer-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 48px;
  padding: clamp(20px, 3.8vw, 38px);
  border-radius: 12px;
  background: linear-gradient(100deg, #e8f5fd, #d7ebf9);
}
.aoyagi-page--contact .aoyagi-contact-footer-note > p {
  color: var(--aoyagi-navy);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.2rem, 1rem + .7vw, 1.65rem);
  font-weight: 700;
}
.aoyagi-page--contact .aoyagi-contact-footer-note > a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 10px 26px;
  border-radius: 7px;
  background: #07356d;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.aoyagi-page--contact .aoyagi-contact-footer-note > a:hover { background: #092b58; color: #fff; }

/* キーボードの視認性 */
.aoyagi-page--contact :is(a, summary, input, textarea, select, button):focus-visible {
  outline: 3px solid #b95100;
  outline-offset: 3px;
}
@media (max-width: 1020px) {
  .aoyagi-page--contact .aoyagi-contact-layout { grid-template-columns: minmax(0, 1fr) 245px; }
  .aoyagi-page--contact .aoyagi-contact-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .aoyagi-page--contact {
    width: calc(100vw - 24px);
    margin-bottom: 42px;
  }
  .aoyagi-page--contact .aoyagi-contact-hero {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
    background: #e8f5fd;
  }
  .aoyagi-page--contact .aoyagi-contact-hero__copy {
    order: 0;
    width: 100%;
    padding: 26px 22px;
  }
  .aoyagi-page--contact .aoyagi-contact-hero::after { display: none; }
  .aoyagi-page--contact .aoyagi-contact-hero__image {
    position: static;
    order: 1;
    width: 100%;
    height: 215px;
    object-fit: cover;
    object-position: 75% 46%;
  }
  .aoyagi-page--contact .aoyagi-contact-pc-only { display: none; }
  .aoyagi-page--contact .aoyagi-contact-layout { grid-template-columns: 1fr; gap: 28px; }
  .aoyagi-page--contact .aoyagi-contact-card-grid { grid-template-columns: 1fr; }
  .aoyagi-page--contact .aoyagi-contact-card {
    padding: 18px 17px;
  }
  .aoyagi-page--contact .aoyagi-contact-card__number {
    width: 44px;
    height: 44px;
    margin: 0 0 11px;
    font-size: 1rem;
  }
  .aoyagi-page--contact .aoyagi-contact-card h3 { text-align: left; }
  .aoyagi-page--contact .aoyagi-contact-card > p { margin-bottom: 12px; }
  .aoyagi-page--contact .aoyagi-contact-card > a { width: 100%; }
  .aoyagi-page--contact .aoyagi-contact-aside-message img { aspect-ratio: 2; }
  .aoyagi-page--contact .aoyagi-contact-form-section { padding: 20px 15px; }
  .aoyagi-page--contact .aoyagi-contact-form-section__body { padding: 16px 12px; }
  .aoyagi-page--contact .aoyagi-contact-footer-note > a { width: 100%; }
}
@media (hover: none) {
  .aoyagi-page--contact .aoyagi-contact-card > a:hover { background: #fff; color: var(--card-accent); }
}
@media (prefers-reduced-motion: reduce) {
  .aoyagi-page--contact .aoyagi-contact-card > a { transition: none; }
}

/* 実環境ID・SWELL余白との整合。共通設定は変更しない。 */
.page-id-1569 #content { padding-top:0; }
.page-id-1569 #main_content > .l-mainContent__inner > .post_content { margin-top:0; }
.aoyagi-page--contact .aoyagi-contact-card > p, .aoyagi-page--contact .aoyagi-contact-card > a, .aoyagi-page--contact .aoyagi-contact-aside-message p { font-size:1rem; }
