/*
Theme Name: FlowerHub
Theme URI: https://flowerhub.jp/
Author: FlowerHub
Description: 法人向けお祝い花おまとめサービス「FlowerHub」の案件サイト用テーマ。招待状調デザイン（ボルドー×深緑×明朝）。案件カスタム投稿＋ACFで運用。
Version: 1.1.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: flowerhub
*/

/* ===========================
   デザイントークン
   =========================== */
:root{
  --green:#1F3A2B;
  --bordeaux:#6B1D2F;
  --ink:#2C2C2A;
  --warm:#F2EFE8;
  --line:#E6E4DD;
  --gold:#B08D4F;
  --paper:#FBFAF6;

  --serif-jp:"Shippori Mincho", serif;
  --serif-en:"Cormorant Garamond", serif;
  --sans-jp:"Noto Sans JP", sans-serif;
  --sans-deco:"Josefin Sans", sans-serif;

  --maxw:1080px;
  --gut:clamp(20px, 5vw, 56px);
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--serif-jp);
  color:var(--ink);
  background:var(--paper);
  line-height:1.9;
  font-size:16px;
  letter-spacing:.02em;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--bordeaux);text-decoration:none;transition:opacity .2s;}
a:hover{opacity:.7;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);}

/* ===========================
   ヘッダー
   =========================== */
.site-header{
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:sticky;top:0;z-index:50;
}
.site-header__inner{
  max-width:var(--maxw);margin:0 auto;padding:18px var(--gut);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.site-logo{
  font-family:var(--serif-en);
  font-size:26px;letter-spacing:.08em;color:var(--green);font-weight:600;
}
.site-logo span{color:var(--bordeaux);}
.site-nav{font-family:var(--sans-deco);font-size:13px;letter-spacing:.14em;text-transform:uppercase;}
.site-nav a{color:var(--ink);margin-left:22px;}

/* ===========================
   汎用：見出し・エンブレム
   =========================== */
.eyebrow{
  font-family:var(--sans-deco);
  font-size:12px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold);text-align:center;margin-bottom:14px;
}
.section-title{
  font-size:clamp(22px,3.4vw,30px);
  text-align:center;color:var(--green);font-weight:600;
  margin:0 0 8px;letter-spacing:.08em;
}
.rule{
  width:54px;height:1px;background:var(--gold);margin:18px auto 0;position:relative;
}
.rule::before,.rule::after{
  content:"";position:absolute;top:50%;width:5px;height:5px;
  background:var(--gold);border-radius:50%;transform:translateY(-50%);
}
.rule::before{left:-12px;}.rule::after{right:-12px;}

/* ===========================
   一覧トップ：ヒーロー
   =========================== */
.home-hero{
  text-align:center;padding:clamp(56px,9vw,96px) var(--gut) clamp(40px,6vw,64px);
  border-bottom:1px solid var(--line);
}
.home-hero__en{
  font-family:var(--serif-en);font-style:italic;
  font-size:clamp(40px,8vw,72px);color:var(--green);line-height:1.1;margin:0;
}
.home-hero__jp{
  font-size:clamp(15px,2.4vw,18px);color:var(--bordeaux);
  letter-spacing:.18em;margin:18px 0 0;
}
.home-hero__lead{
  max-width:620px;margin:24px auto 0;color:var(--ink);font-size:15px;
}

/* ===========================
   案件カード一覧
   =========================== */
.cases{padding:clamp(48px,7vw,80px) 0;}
.cases__grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:28px;margin-top:42px;
}
.case-card{
  border:1px solid var(--line);background:var(--paper);
  display:flex;flex-direction:column;overflow:hidden;
  transition:transform .25s, box-shadow .25s;
}
.case-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(31,58,43,.12);}
.case-card__thumb{aspect-ratio:4/3;overflow:hidden;background:var(--warm);}
.case-card__thumb img{width:100%;height:100%;object-fit:cover;}
.case-card__body{padding:22px 22px 26px;display:flex;flex-direction:column;gap:10px;flex:1;}
.case-card__status{
  align-self:flex-start;font-family:var(--sans-deco);font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;padding:4px 12px;border-radius:2px;
}
.is-open{background:var(--green);color:#fff;}
.is-closed{background:var(--line);color:var(--ink);}
.case-card__title{font-size:19px;color:var(--green);font-weight:600;margin:0;line-height:1.5;}
.case-card__company{font-size:13px;color:var(--bordeaux);letter-spacing:.06em;}
.case-card__meta{
  margin-top:auto;padding-top:14px;border-top:1px solid var(--line);
  font-size:12px;color:#6b6b66;font-family:var(--sans-jp);
  display:flex;flex-wrap:wrap;gap:4px 14px;
}
.case-card__meta b{color:var(--bordeaux);font-weight:500;}

.cases__empty{text-align:center;color:#8a8a84;padding:40px 0;font-family:var(--sans-jp);}

/* ===========================
   案件詳細：ヒーロー
   =========================== */
.case-hero{
  position:relative;min-height:clamp(320px,52vw,520px);
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:#fff;overflow:hidden;
}
.case-hero__bg{position:absolute;inset:0;z-index:0;}
.case-hero__bg img{width:100%;height:100%;object-fit:cover;}
.case-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,58,43,.35),rgba(31,58,43,.62));z-index:1;}
.case-hero__inner{position:relative;z-index:2;padding:40px var(--gut);}
.case-hero__event{
  font-family:var(--sans-deco);font-size:12px;letter-spacing:.34em;
  text-transform:uppercase;color:#f0e6d2;margin-bottom:18px;
}
.case-hero__catch{
  font-size:clamp(24px,4.6vw,42px);font-weight:600;line-height:1.5;
  margin:0;text-shadow:0 2px 18px rgba(0,0,0,.25);
}
.case-hero__open{
  font-family:var(--serif-en);font-style:italic;font-size:clamp(16px,2.4vw,22px);
  margin-top:18px;color:#f5ede0;
}

/* ===========================
   案件詳細：本文ブロック
   =========================== */
.block{padding:clamp(46px,7vw,78px) 0;}
.block + .block{border-top:1px solid var(--line);}
.block--warm{background:var(--warm);}

.greeting{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:start;max-width:840px;margin:36px auto 0;}
.greeting__photo{width:140px;}
.greeting__photo img{border-radius:3px;}
.greeting__role{font-size:13px;color:var(--bordeaux);font-family:var(--sans-jp);letter-spacing:.08em;}
.greeting__name{font-size:22px;color:var(--green);margin:4px 0 18px;font-weight:600;}
.greeting__text{font-size:15px;line-height:2.1;}

.reception{max-width:760px;margin:36px auto 0;border:1px solid var(--line);background:var(--paper);}
.reception__row{display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid var(--line);}
.reception__row:last-child{border-bottom:0;}
.reception__row dt{
  background:var(--green);color:#fff;padding:16px 20px;margin:0;
  font-family:var(--sans-jp);font-size:13px;letter-spacing:.1em;
}
.reception__row dd{padding:16px 20px;margin:0;font-size:15px;}

/* ===========================
   コース
   =========================== */
.courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px;margin-top:42px;}
.course{border:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;overflow:hidden;}
.course__img{aspect-ratio:1/1;background:var(--warm);overflow:hidden;}
.course__img img{width:100%;height:100%;object-fit:cover;}
.course__body{padding:20px 20px 24px;display:flex;flex-direction:column;gap:8px;flex:1;}
.course__name{font-size:18px;color:var(--green);font-weight:600;margin:0;}
.course__price{font-family:var(--serif-en);font-size:24px;color:var(--bordeaux);}
.course__price small{font-family:var(--sans-jp);font-size:12px;color:#8a8a84;margin-left:4px;}
.course__cta{
  margin-top:auto;display:inline-block;text-align:center;
  background:var(--bordeaux);color:#fff;padding:13px 18px;
  font-family:var(--sans-jp);font-size:14px;letter-spacing:.08em;border-radius:2px;
}
.course__cta:hover{opacity:.88;}
.course__cta--disabled{background:var(--line);color:#8a8a84;pointer-events:none;}

/* ===========================
   納品報告
   =========================== */
.report{max-width:840px;margin:0 auto;}
.report__msg{font-size:16px;line-height:2.1;text-align:center;max-width:680px;margin:30px auto 0;}
.report__item{margin-top:46px;}
.report__item h3{font-size:20px;color:var(--green);border-left:3px solid var(--gold);padding-left:14px;margin:0 0 16px;}
.report__item img{margin:16px 0;border-radius:3px;}

/* ===========================
   フッター
   =========================== */
.site-footer{background:var(--green);color:#e8e6dd;padding:48px var(--gut);margin-top:0;font-family:var(--sans-jp);font-size:13px;}
.site-footer__inner{max-width:var(--maxw);margin:0 auto;text-align:center;line-height:2;}
.site-footer__logo{font-family:var(--serif-en);font-size:22px;color:#fff;letter-spacing:.08em;margin-bottom:14px;}
.site-footer a{color:#f0e6d2;}
.back-link{display:inline-block;margin:40px auto 0;font-family:var(--sans-jp);font-size:14px;color:var(--bordeaux);}
.back-link::before{content:"← ";}

/* ===========================
   レスポンシブ
   =========================== */
@media(max-width:680px){
  .site-nav{display:none;}
  .greeting{grid-template-columns:1fr;text-align:center;}
  .greeting__photo{margin:0 auto;}
  .reception__row{grid-template-columns:1fr;}
  .reception__row dt{padding:12px 16px;}
}
