/*
Theme Name: ARK LEGACY
Author: Ark Legacy
Description: 株式会社アークレガシー コーポレートサイト用テーマ（方式A：お知らせ投稿化）
Version: 2.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: ark-legacy
*/

/* ===== ベース ===== */
:root {
  --blue-900:#0a2540; --blue-800:#0e3358; --blue-700:#14508c;
  --blue-500:#2f6fb0; --blue-300:#7ea9d4; --blue-100:#e8f0f8; --blue-50:#f5f9fc;
  --gold:#c1a875; --gold-dark:#a98f5c;
  --text:#2a3947; --muted:#7b8794; --line:#dde5ee; --white:#fff;
  --max-width:1080px;
  --mincho:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;
  --gothic:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;

  /* 写真URL（差し替えはここ） */
  --img-hero:url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=1600&q=70");
  --img-s1:url("https://images.unsplash.com/photo-1460574283810-2aab119d8511?auto=format&fit=crop&w=800&q=68");
  --img-s2:url("https://images.unsplash.com/photo-1487958449943-2429e8be8625?auto=format&fit=crop&w=800&q=68");
  --img-s3:url("https://images.unsplash.com/photo-1449824913935-59a10b8d2000?auto=format&fit=crop&w=800&q=68");
  --img-s4:url("https://images.unsplash.com/photo-1518005020951-eccb494ad742?auto=format&fit=crop&w=800&q=68");
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--mincho);
  color:var(--text);
  line-height:1.9;
  background:var(--white);
  font-feature-settings:"palt";
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }

/* 明朝は見出し・本文に。UI・英字はゴシック */
.nav__list, .btn, .hero__lead, .hero__scroll, .section__en,
.header__logo span, .footer__logo span, .footer__copy,
.company-table, .form__row label,
.form__row input, .form__row select, .form__row textarea, .form__note {
  font-family:var(--gothic);
}

.container {
  width:100%;
  max-width:var(--max-width);
  margin-inline:auto;
  padding-inline:32px;
}

/* ===== ボタン ===== */
.btn {
  display:inline-block;
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.04em;
  padding:15px 42px;
  cursor:pointer;
  border:1px solid transparent;
  transition:background .25s, color .25s, border-color .25s;
}
.btn--gold { background:var(--gold); color:var(--blue-900); border-color:var(--gold); }
.btn--gold:hover { background:transparent; color:var(--gold); }

/* ===== ヘッダー ===== */
.header {
  position:fixed;
  inset:0 0 auto 0;
  z-index:100;
  transition:background .3s, box-shadow .3s;
}
.header__inner {
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.header__logo { font-size:1.35rem; font-weight:700; letter-spacing:.12em; color:#fff; transition:color .3s; }
.header__logo span { font-size:.72rem; margin-left:6px; opacity:.8; }

.nav__list { display:flex; gap:30px; }
.nav__list a {
  font-size:.88rem; letter-spacing:.04em; color:#fff; position:relative;
  padding:6px 0; transition:color .2s, opacity .2s; opacity:.92;
}
.nav__list a::after {
  content:""; position:absolute; left:0; bottom:0;
  width:0; height:1px; background:var(--gold); transition:width .25s;
}
.nav__list a:hover::after { width:100%; }

/* スクロール後のヘッダー */
.header.is-scrolled,
.header--solid { background:rgba(255,255,255,.96); backdrop-filter:blur(8px); box-shadow:0 2px 14px rgba(10,37,64,.08); }
.header.is-scrolled .header__logo,
.header--solid .header__logo { color:var(--blue-900); }
.header.is-scrolled .nav__list a,
.header--solid .nav__list a { color:var(--blue-900); }
.header--solid .nav__toggle span { background:var(--blue-900); }

.nav__toggle {
  display:none; flex-direction:column; gap:6px;
  background:none; border:none; cursor:pointer; padding:6px;
}
.nav__toggle span { width:26px; height:1.5px; background:#fff; transition:transform .3s, opacity .3s, background .3s; }
.header.is-scrolled .nav__toggle span { background:var(--blue-900); }
.nav__toggle.is-open span:nth-child(1) { transform:translateY(7.5px) rotate(45deg); }
.nav__toggle.is-open span:nth-child(2) { opacity:0; }
.nav__toggle.is-open span:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg); }

/* ===== ヒーロー ===== */
.hero {
  position:relative;
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  text-align:center; color:#fff; overflow:hidden;
}
.hero__bg {
  position:absolute; inset:0;
  background-image:var(--img-hero);
  background-size:cover; background-position:center;
}
.hero__bg::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,37,64,.45), rgba(10,37,64,.78));
}
.hero__inner { position:relative; z-index:1; padding:0 24px; animation:heroUp 1s .2s both; }
.hero__lead { letter-spacing:.28em; font-size:.85rem; text-transform:uppercase; color:var(--gold); margin-bottom:26px; }
.hero__title {
  font-size:clamp(2.6rem, 7vw, 4.6rem);
  line-height:1.5; font-weight:700; letter-spacing:.14em;
  text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.hero__text { margin:28px 0 40px; opacity:.94; line-height:2; }

@keyframes heroUp { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@keyframes heroFade { from { opacity:0; } to { opacity:.85; } }
@media (prefers-reduced-motion:reduce) {
  .hero__inner, .hero__scroll { animation:none; }
}
.hero__scroll {
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  z-index:1; font-size:.7rem; letter-spacing:.25em; color:#fff; opacity:.85;
  animation:heroFade .9s .7s both;
}
.hero__scroll::after {
  content:""; display:block; width:1px; height:34px; margin:8px auto 0;
  background:linear-gradient(#fff, transparent);
}

/* ===== セクション共通 ===== */
.section { padding:68px 0; }
.section--gray { background:var(--blue-50); }
.section__head { margin-bottom:38px; }
.section__head--center { text-align:center; }
.section__en {
  display:block; color:var(--blue-500); letter-spacing:.28em;
  font-size:.78rem; text-transform:uppercase; margin-bottom:12px;
}
.section__title {
  font-size:clamp(1.7rem, 3.6vw, 2.2rem); color:var(--blue-900);
  font-weight:700; letter-spacing:.05em;
}

/* ===== ご挨拶 ===== */
.greeting { max-width:760px; margin-inline:auto; }
.greeting p { color:var(--text); margin-bottom:1.2em; }
.greeting p:last-child { margin-bottom:0; }
.greeting p.greeting__sign { text-align:right; font-weight:700; font-size:1.18rem; margin-top:32px; }

/* ===== お知らせ ===== */
.news {
  max-width:820px; margin-inline:auto;
  background:#fff; border:1px solid var(--line);
  max-height:360px; overflow-y:auto;
}
.news__list > li { border-bottom:1px solid var(--line); }
.news__list > li:last-child { border-bottom:none; }
.news__item {
  display:grid; grid-template-columns:110px 84px 1fr auto; gap:22px; align-items:center;
  padding:20px 26px; transition:background .2s;
}
.news__item:hover { background:var(--blue-50); }
.news__item:hover .news__title { color:var(--blue-700); }
.news__item:focus-visible { outline:2px solid var(--gold); outline-offset:-3px; }
.news__arrow { color:var(--blue-300); font-size:1.1rem; transition:transform .2s; }
.news__item:hover .news__arrow { transform:translateX(3px); }
.news__date { font-family:var(--gothic); color:var(--muted); font-size:.85rem; letter-spacing:.04em; font-variant-numeric:tabular-nums; }
.news__cat {
  font-family:var(--gothic); font-size:.72rem; text-align:center; letter-spacing:.05em;
  padding:3px 12px; border:1px solid var(--blue-300); color:var(--blue-700); white-space:nowrap;
}
.news__title { display:block; color:var(--text); font-size:.98rem; transition:color .2s; }
.news::-webkit-scrollbar { width:8px; }
.news::-webkit-scrollbar-track { background:var(--blue-50); }
.news::-webkit-scrollbar-thumb { background:var(--blue-300); border-radius:4px; }
.news { scrollbar-width:thin; scrollbar-color:var(--blue-300) var(--blue-50); }

/* ===== 事業内容 ===== */
.cards {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
  gap:28px;
}
.cards--svc { grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:30px; }
.cards--svc .card__title { font-size:1.25rem; }
.cards--svc .card__text { font-size:.93rem; line-height:1.95; }
.card {
  background:#fff; border:1px solid var(--line); overflow:hidden;
  transition:transform .3s, box-shadow .3s;
}
.card:hover { transform:translateY(-6px); box-shadow:0 18px 40px rgba(10,37,64,.13); }
.card__img { aspect-ratio:16/10; background-size:cover; background-position:center; background-color:var(--blue-100); }
.card__img--1 { background-image:var(--img-s1); }
.card__img--2 { background-image:var(--img-s2); }
.card__img--3 { background-image:var(--img-s3); }
.card__img--4 { background-image:var(--img-s4); }
.card__body { padding:26px 26px 32px; }
.card__title { font-size:1.15rem; color:var(--blue-900); margin-bottom:10px; font-weight:600; }
.card__text { font-size:.9rem; color:var(--muted); }

/* ===== 会社概要 ===== */
.company-table { width:100%; max-width:720px; margin-inline:auto; border-collapse:collapse; }
.company-table th, .company-table td {
  text-align:left; padding:20px 12px; border-bottom:1px solid var(--line); font-size:.95rem;
}
.company-table th { width:28%; color:var(--blue-900); font-weight:600; white-space:nowrap; }
.company-table td { color:var(--muted); }

/* ===== アクセス ===== */
.access {
  display:grid; grid-template-columns:1fr 1.15fr; gap:44px;
  align-items:stretch; max-width:960px; margin-inline:auto;
}
.access__item { padding:22px 0; border-bottom:1px solid var(--line); }
.access__item:first-child { padding-top:0; }
.access__item dt {
  font-family:var(--gothic); font-size:.95rem; font-weight:600;
  color:var(--blue-900); margin-bottom:8px;
}
.access__item dd { color:var(--text); line-height:1.9; }
.access__map { position:relative; aspect-ratio:4/3; min-height:280px; border:1px solid var(--line); }
.access__map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }

/* ===== お問い合わせ ===== */
.contact__text { text-align:center; color:var(--muted); margin-bottom:44px; }
.form { max-width:640px; margin-inline:auto; }
.form__row { margin-bottom:26px; }
.form__row label { display:block; font-weight:600; margin-bottom:10px; color:var(--blue-900); font-size:.9rem; letter-spacing:.03em; }
.form__row label span {
  font-size:.68rem; padding:1px 8px; margin-left:10px;
  vertical-align:middle; font-weight:500; border:1px solid transparent;
}
.form__row label .req { color:var(--gold-dark); border-color:var(--gold); }
.form__row label .opt { color:var(--muted); border-color:var(--line); }
.form__grid { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
.form__row input, .form__row select, .form__row textarea {
  width:100%; padding:13px 16px; border:1px solid var(--line); background:var(--blue-50);
  font-size:1rem; font-family:inherit; color:var(--text); transition:border-color .2s, background .2s;
}
.form__row input:focus, .form__row select:focus, .form__row textarea:focus { outline:none; border-color:var(--blue-500); background:#fff; }
.form__row input::placeholder { color:var(--blue-300); }
.form__row select {
  appearance:none; cursor:pointer; padding-right:40px;
  background-image:linear-gradient(45deg, transparent 50%, var(--blue-500) 50%), linear-gradient(135deg, var(--blue-500) 50%, transparent 50%);
  background-position:calc(100% - 20px) calc(50% + 2px), calc(100% - 14px) calc(50% + 2px);
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
}
.form__hint { font-family:var(--gothic); font-size:.74rem; color:var(--muted); margin-top:7px; }
.form__hint.is-ok { color:var(--blue-700); }
.form__hint.is-error { color:#c0392b; }
.form__privacy { text-align:center; margin:8px 0 28px; }
.form__policy-link { margin-bottom:14px; }
.form__policy-link a { font-family:var(--gothic); font-size:.9rem; color:var(--blue-700); text-decoration:underline; }
.form__policy-link a:hover { color:var(--blue-500); }
.form__check { display:inline-flex; align-items:center; gap:10px; cursor:pointer; font-family:var(--gothic); font-size:.92rem; color:var(--blue-900); }
.form__check input { width:18px; height:18px; accent-color:var(--gold); cursor:pointer; flex:none; }

.form__submit { text-align:center; margin-top:8px; }
.form__note { text-align:center; margin:0 0 18px; font-weight:600; font-size:.92rem; min-height:1.4em; }
.form__note.is-error { color:#c0392b; }
.form__note.is-ok { color:var(--blue-700); }

/* ===== ページ見出し（下層ページ） ===== */
.page-hero { background:var(--blue-50); padding:calc(76px + 64px) 0 56px; text-align:center; }
.page-hero__title { font-size:clamp(1.8rem, 4vw, 2.6rem); color:var(--blue-900); font-weight:700; letter-spacing:.06em; }

/* ===== お知らせ詳細 ===== */
.article { max-width:760px; margin-inline:auto; }
.article__meta { display:flex; align-items:center; gap:16px; margin-bottom:18px; }
.article__date {
  font-family:var(--gothic); color:var(--muted); font-size:.85rem;
  letter-spacing:.04em; font-variant-numeric:tabular-nums;
}
.article__title {
  font-size:clamp(1.35rem, 3vw, 1.9rem); color:var(--blue-900); font-weight:700;
  line-height:1.6; padding-bottom:22px; border-bottom:1px solid var(--line); margin-bottom:30px;
}
.article__body p { margin-bottom:1.2em; }
.article__body p:last-child { margin-bottom:0; }
.article__back { text-align:center; margin-top:52px; padding-top:34px; border-top:1px solid var(--line); }

/* ===== 規約・ポリシー本文 ===== */
.legal { max-width:800px; margin-inline:auto; }
.legal__intro { margin-bottom:48px; color:var(--text); }
.legal__item { margin-bottom:40px; }
.legal__title { font-size:1.2rem; color:var(--blue-900); font-weight:700; margin-bottom:14px; padding-left:14px; border-left:3px solid var(--gold); }
.legal__item p { color:var(--text); }
.legal__list { margin:12px 0 0; padding-left:1.4em; list-style:disc; }
.legal__list li { color:var(--text); margin-bottom:6px; }
.legal__contact { margin-top:16px; padding:20px 24px; background:var(--blue-50); border:1px solid var(--line); }
.legal__contact p { margin-bottom:4px; }
.legal__contact a { color:var(--blue-700); text-decoration:underline; }
.legal__date { margin-top:48px; text-align:right; color:var(--muted); font-size:.9rem; }

/* ===== フッター ===== */
.footer { background:var(--blue-900); color:#fff; padding:56px 0; }
.footer__inner { text-align:center; }
.footer__logo { font-size:1.2rem; font-weight:700; letter-spacing:.12em; margin-bottom:20px; }
.footer__logo span { font-size:.72rem; opacity:.7; margin-left:6px; }
.footer__links { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 26px; margin-bottom:22px; }
.footer__links a { font-family:var(--gothic); font-size:.82rem; letter-spacing:.03em; opacity:.85; transition:opacity .2s; }
.footer__links a:hover { opacity:1; text-decoration:underline; }
.footer__copy { font-size:.78rem; opacity:.6; letter-spacing:.04em; }

/* ===== トップへ戻る ===== */
.to-top {
  position:fixed; right:26px; bottom:26px; width:46px; height:46px;
  border:1px solid var(--gold); background:rgba(255,255,255,.9); color:var(--gold-dark);
  font-size:1.1rem; cursor:pointer; opacity:0; visibility:hidden;
  transition:opacity .3s, visibility .3s, background .2s, color .2s; z-index:90;
}
.to-top.is-visible { opacity:1; visibility:visible; }
.to-top:hover { background:var(--gold); color:#fff; }

/* ===== フェードイン ===== */
.fade-in { opacity:0; transform:translateY(26px); transition:opacity .8s, transform .8s; }
.fade-in.is-shown { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce) {
  .fade-in { opacity:1; transform:none; transition:none; }
  html { scroll-behavior:auto; }
}

/* ===== レスポンシブ ===== */
@media (max-width:768px) {
  .nav {
    position:fixed; inset:76px 0 auto 0; background:#fff;
    max-height:0; overflow:hidden; transition:max-height .35s ease;
    box-shadow:0 8px 16px rgba(10,37,64,.08);
  }
  .nav.is-open { max-height:420px; }
  .nav__list { flex-direction:column; gap:0; padding:8px 0; }
  .nav__list a { display:block; padding:15px 32px; color:var(--blue-900); opacity:1; }
  .nav__toggle { display:flex; }
  .section { padding:48px 0; }
  .access { grid-template-columns:1fr; gap:28px; }
  .cards--svc { grid-template-columns:1fr; gap:28px; }
  .form__grid { grid-template-columns:1fr; gap:0; }
  .news__item { grid-template-columns:auto auto; gap:8px 14px; padding:18px 20px; }
  .news__title { grid-column:1 / -1; }
  .news__arrow { display:none; }
}
