/* =========================================================
   OSEIBO LP - LUXE THEME (Non-sticky header / Wide media)
   ※ HTMLは変更不要。CSSだけ差し替え。
========================================================= */
:root{
  --brand:#506A2A;
  --brand-d:#3f541f;
  --brand-ink:#1b2610;
  --gold:#c9a858;
  --gold-d:#a38438;
  --ivory:#fbfaf5;
  --ink:#222;
  --muted:#666;
  --bg:#fff;
  --bg-soft:#f6f5ef;
  --danger:#b60000;
  --radius:18px;
  --radius-sm:12px;
  --shadow:0 5px 15px rgba(0,0,0,0.1);
  --shadow-sm: 0 5px 15px rgba(0, 0, 0, 0.1);
}

/* ベース */
html,body{
  margin:0;
  padding:0;
  color:var(--ink);
  font-family:'Noto Sans JP',system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  line-height:1.75;
}
img{max-width:100%;height:auto;border:0;vertical-align:middle}
a{color:var(--brand);text-decoration:none;transition:filter .2s ease, opacity .2s ease}
a:hover{filter:brightness(1.05)}
.wrap{max-width:1120px;margin:0 auto;padding:18px}
.section{margin:44px 0}

/* ================= HEADER（フルブリード＆中央ロゴ／控えめ導入文） ================= */
#logo{
  /* フルブリード化：wrap内にあっても左右端まで広げる */
  position: relative;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;

  /* レイアウト */
  display: flex;
  flex-direction: column;      /* ロゴ→導入テキストの縦並び */
  align-items: center;         /* 中央寄せ */
  justify-content: center;
  text-align: center;

  /* 余白・背景・装飾 */
  padding: 18px 20px 20px;
  border-bottom: 1px solid rgba(201,168,88,.28);
  box-shadow: 0 6px 18px rgba(0,0,0,.05);
}

#logo h1{ margin: 0; line-height: 0; }

#logo img{
  height: 140px;                /* ロゴサイズ（調整可） */
  width: auto;
  display: block;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.10));
}

/* “添える程度”の導入テキスト（既存 .sitecopy を活用） */
#logo .sitecopy{
  max-width: 820px;            /* 長すぎる文の可読幅を制御 */
  margin: 10px auto 0;
  opacity: .95;
}
#logo .sitecopy a,
#logo .sitecopy{               /* aタグでも素のテキストでも同じ見た目に */
  color: #5a5a5a;
  font-size: 12.5px;
  line-height: 1.9;
  letter-spacing: .02em;
  text-decoration: none;
}

/* 既存HTMLのfloat指定を無効化（崩れ防止） */
.float_left{ float: none !important; }

/* 小さめ端末でのバランス調整 */
@media (max-width: 480px){
  #logo{ padding: 14px 14px 16px; }
  #logo img{ height: 100px; }
  #logo .sitecopy{ font-size: 12px; margin-top: 8px; }
}

/* 大きめ表示でのロゴ拡張（任意） */
@media (min-width: 1024px){
  #logo img{ height: 140px; }
}


/* ================= TITLES ================= */
.section > h2{
  font-size:24px; letter-spacing:.02em; margin:0 0 16px; position:relative; padding-left:14px; color:var(--brand-ink);
  text-shadow:0 1px 0 #fff;
}
.section > h2::before{
  content:""; position:absolute; left:0; top:.35em;
  width:5px; height:1.2em; border-radius:8px;
  background:linear-gradient(180deg, #8aa25a, #506A2A);
  box-shadow:0 0 0 1px rgba(255,255,255,.6) inset;
}
.section > h2::after{
  content:""; display:block; margin-top:10px; width:88px; height:3px; border-radius:3px;
  background:linear-gradient(90deg, #e9ddaf, #c9a858, #e9ddaf);
}

/* ================= HERO（1:1は維持） ================= */
.hero{
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  background:
    radial-gradient(900px 500px at -10% 0%, #fbf7e6 0%, transparent 60%),
    linear-gradient(135deg,#f6f7f0 0%, #ffffff 100%);
  border:1px solid rgba(201,168,88,.28);
  position:relative;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(115deg, rgba(255,255,255,.7), transparent 40% 60%, rgba(255,255,255,.6));
  mix-blend-mode:screen; pointer-events:none;
}
.hero-inner{display:flex;flex-direction:column}
.hero-visual{position:relative; aspect-ratio:1/1; background:#f3f1e7;}
.hero-visual img{width:100%;height:100%;object-fit:cover}
.hero-visual .label{
  position:absolute; left:12px; top:12px;
  background:linear-gradient(90deg,#dcbc6b,#c9a858,#b89647);
  color:#3c2c0a; padding:7px 12px; border-radius:999px;
  font-size:12px; letter-spacing:.08em; font-weight:800;
  box-shadow:0 4px 10px rgba(0,0,0,.12);
  border:1px solid rgba(255,255,255,.65);
}
.hero-text{padding:22px 20px 22px; color:#1f2a12;}
.eyebrow{color:var(--brand);font-size:12px;letter-spacing:.18em;margin-bottom:8px;text-transform:uppercase}
.hero h1{font-size:30px;line-height:1.28;margin:4px 0 12px;color:#1f2a12}
.hero-lead{color:#4f4f4f;line-height:1.9}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 10px}
.badge{
  border:1px solid rgba(201,168,88,.38); border-radius:999px; padding:6px 12px; font-size:12px;
  background:linear-gradient(180deg,#ffffff,#fbf6e9);
  box-shadow:0 4px 10px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.7);
}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.btn{
  display:inline-block; padding:12px 20px; border-radius:999px;
  background:linear-gradient(180deg, #5d7a33, #4b6128);
  color:#fff; font-weight:800; letter-spacing:.02em;
  box-shadow:0 8px 18px rgba(79,103,46,.28), inset 0 1px 0 rgba(255,255,255,.28);
  transition:transform .06s ease, filter .2s ease, box-shadow .2s ease;
  border:1px solid rgba(255,255,255,.18);
}
.btn:hover{filter:brightness(1.06); box-shadow:0 10px 24px rgba(79,103,46,.32), inset 0 1px 0 rgba(255,255,255,.34)}
.btn:active{transform:translateY(1px)}
.btn.sub{
  background:linear-gradient(180deg,#fff,#fbf6e9); color:var(--brand);
  border:1px solid rgba(201,168,88,.5);
  box-shadow:0 6px 16px rgba(0,0,0,.08), inset 0 1px 0 rgba(255,255,255,.8);
}
.deadline{
  margin-top:12px; font-size:20px; color:#fff; display:inline-block; padding:5px 12px; border-radius:8px;
  background:linear-gradient(180deg,#ce2a2a,#a51616);
  box-shadow:0 6px 14px rgba(165,22,22,.25);
}

/* ================= PROMO（早割） ================= */
.earlybird{
  background:
    radial-gradient(500px 300px at -10% 0%, #fff5d7 0%, transparent 70%),
    linear-gradient(135deg,#fffaf0, #fff);
  border:1.5px solid rgba(201,168,88,.55);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:22px;
  position:relative;
}
.earlybird::after{
  content:""; position:absolute; inset:-1px;
  border-radius:inherit; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);
}
.early-badge{
  align-items:center;
  background:linear-gradient(90deg,#eedba5,#dbb96696,#e3d29a);
  color:#3a2a09; font-weight:800; border-radius:999px; padding:8px 12px; font-size:13px;
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 6px 16px rgba(0,0,0,.12);
  width: 70%; text-align: center; font-size: 14px;
}
.early-badge .small{font-weight:700;opacity:.95}
.earlybird h2{margin:8px 0 12px;font-size:22px;color:#3a2a09}
.earlybird .offer{font-size:20px;font-weight:800;color:#8b6b2d}
.earlybird .details{color:#6b5b2b;line-height:1.9}
.earlybird .coupon{
  display:inline-block;margin-top:10px;border:1px dashed var(--gold);
  padding:8px 12px;border-radius:10px;background:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}

/* ================= BENEFITS（読みやすさ強化） ================= */
/* ===================== 選ばれる3つの理由（上・中央に大きめアイコン） ===================== */
.benefits{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}

.benefit{
  /* 必ず縦並びで中央寄せに */
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;

  background:linear-gradient(180deg,#fff,#f9f8f3);
  border-radius:var(--radius);
  border:1px solid rgba(201,168,88,.35);
  padding:48px 20px 32px;
  box-shadow:0 8px 20px rgba(0,0,0,.08);
  transition:transform .15s ease, box-shadow .2s ease;
}
.benefit:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 30px rgba(0,0,0,.12);
}

/* アイコン：テキストの“上”に中央配置 */
.benefit .icon img{
  object-fit:contain; display:block;
}

/* ここで各カードにアイコン画像を割り当て（HTMLはそのままでOK） */
.benefit:nth-child(1) .icon img{ content:url("./img/icon_quality.png"); } /* 品質 */
.benefit:nth-child(2) .icon img{ content:url("./img/icon_package.png"); } /* 包装 */
.benefit:nth-child(3) .icon img{ content:url("./img/icon_noshi.png"); }   /* 熨斗 */

.benefit > div:last-child{ max-width:80%; } /* タイトル＋本文の読み幅を整える */

.benefit h3{
  font-size:18px;
  margin:10px 0 8px;
  color:#222;
}
.benefit p{
  font-size:14px;
  color:#555;
  line-height:1.9;
  margin:0;
}

/* PCでは3カラム */
@media (min-width:768px){
  .benefits{ grid-template-columns:repeat(3,1fr); }
}




/* ================= LINEUP & CARDS（横長16:9に統一） ================= */
.grid{display:grid;grid-template-columns:1fr;gap:16px}
.grid-featured{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:6px}
.card{
  background:linear-gradient(180deg,#fff,#fbfaf5);
  border-radius:var(--radius);
  border:1px solid rgba(201,168,88,.28);
  box-shadow:var(--shadow-sm);
  overflow:hidden; transition:transform .18s ease, box-shadow .18s ease, filter .2s ease;
  color:#222;                    /* ← テキスト色を明確に */
}
.card:hover{transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,.12)}
.card img{
  width:100%; object-fit:cover; display:block;
  filter:saturate(1.02);
}
.card .body{padding:16px 16px 18px; background:transparent}
.card h4{margin:2px 0 6px;font-size:18px;color:#222}
.price{font-weight:800;font-size:18px;color:#384a1d}
.note{color:#6b6b6b}


/* ================= STEPS / TABLES ================= */
.steps{display:grid;grid-template-columns:1fr;gap:14px}
.step{
  background:linear-gradient(180deg,#fff,#fbfaf5);
  border-left:5px solid var(--brand);
  border-radius:14px; padding:14px; box-shadow:var(--shadow-sm);
  border-top:1px solid rgba(201,168,88,.24); border-right:1px solid rgba(201,168,88,.24); border-bottom:1px solid rgba(201,168,88,.24);
  color:#222;                   /* ← テキスト見やすく */
}
.schedule{
  background:#fff; border-radius:var(--radius); box-shadow:var(--shadow-sm); overflow:hidden;
  border:1px solid rgba(201,168,88,.3);
}
.schedule thead th{
  background:
    repeating-linear-gradient(45deg, #faf6e7, #faf6e7 8px, #f3edda 8px, #f3edda 16px);
  color:#47360f;
}
.schedule table{width:100%;border-collapse:collapse}
.schedule th,.schedule td{border-bottom:1px solid #eee;padding:12px 10px;text-align:left;font-size:14px;color:#2a2a2a}

/* ================= REVIEWS / FAQ ================= */
.reviews{display:grid;grid-template-columns:1fr;gap:14px}
.review{
  background:linear-gradient(180deg,#fff,#fbfaf5);
  border-radius:var(--radius-sm); box-shadow:var(--shadow-sm);
  border:1px solid rgba(201,168,88,.24);
  padding:16px; color:#222;
}
.stars{color:#e0b10a;font-weight:800;text-shadow:0 1px 0 #fff}
.faq{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid rgba(201,168,88,.24); color:#222;}
.faq-item{border-bottom:1px solid #eee;padding:14px}
.faq-q{font-weight:800;color:#2a2a2a}
.faq-a{color:#555;margin-top:6px;line-height:1.9}

/* ================= CTA BAND ================= */
.cta-band{
  background:linear-gradient(90deg, #5a7830, #3d5420);
  color:#fff;border-radius:var(--radius);padding:20px;
  display:flex;flex-direction:column;gap:10px;align-items:flex-start;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.15);
}
.cta-band h3{margin:0; text-shadow:0 2px 0 rgba(0,0,0,.12)}

/* ================= SEO ================= */
.seo{
  color:#4b4b4b;font-size:14px;line-height:1.95;
  background:linear-gradient(180deg,#fff,#fbfaf5);
  border:1px solid rgba(201,168,88,.22);
  border-radius:14px; padding:16px 16px;
  box-shadow:var(--shadow-sm);
}

/* ===== フッターベース（背景・内側幅） ===== */
.site-footer{
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  background: #eaf1da;                 /* 1枚目の淡いグリーン基調 */
  color:#223;
  border-top: 1px solid rgba(0,0,0,.06);
}
.site-footer .footer-container{
  max-width:1120px; margin:0 auto; padding:28px 18px 40px;
}

/* リストのリセット */
.footer-list01, .footer-list01 ul{ list-style:none; margin:0; padding:0; }

/* ===== ロゴ＋SNS（左ブロック相当） ===== */
.footer-logo{ margin-bottom:18px; }
.footer-logo-inner{
  display:flex; align-items:center; justify-content:center; gap:16px;
}
.footer-logo-inner .logo img{ height:64px; width:auto; display:block; }
.footer-logo-inner a img{ height:28px; width:28px; display:block; opacity:.9; transition:opacity .2s ease, transform .12s ease; }
.footer-logo-inner a:hover img{ opacity:1; transform:translateY(-1px) }

/* ===== お問い合わせ（メール／TEL／FAX） ===== */
.footer-contact > ul{
  display:grid; grid-template-columns:1fr; gap:16px;
}

/* 各カード */
.footer-contact li{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:12px;
  padding:14px 14px 16px;
  box-shadow:0 6px 16px rgba(0,0,0,.06);
  display:flex; align-items:center; gap:14px;   /* スマホはアイコン(擬似)＋本文を横並び */
  position:relative;
}

/* タイトル（メールでの／ご注文・お問い合わせ／FAXでの） */
.footer-contact .email-ttl,
.footer-contact .tel-ttl,
.footer-contact .fax-ttl{
  margin:0 0 6px; font-weight:800; color:#2a2a2a; line-height:1.5;
}

/* 本文内テキスト */
.footer-contact .txt-inner{ margin-top:4px; }
.footer-contact .tel-no{ font-size:24px; font-weight:900; color:#5a7830; margin:0 0 4px; }
.footer-contact .tel-txt, .footer-contact .fax-no{ margin:0; color:#555; line-height:1.8; }
.footer-contact .fax-no{ font-size:24px; font-weight:900; color:#5a7830; margin:0 0 4px; }

/* メールボタン */
.footer-contact .link-btn a{
  display:inline-block; padding:10px 16px; border-radius:999px;
  background:#fff; color:#5a7830; text-decoration:none; font-weight:800;
  border:1.5px solid #5a7830;
  transition:background .2s ease, color .2s ease, transform .06s ease;
}
.footer-contact .link-btn a:hover{ background:#5a7830; color:#fff; }
.footer-contact .link-btn a:active{ transform:translateY(1px); }

/* スマホ表示：左にセクションアイコン（擬似要素） */
.footer-contact li.email .email-ttl,
.footer-contact li.tel .tel-ttl,
.footer-contact li.fax .fax-ttl{}


.footer-contact li.email{
}
.footer-contact li.tel{
}
.footer-contact li.fax{
}

/* PCレイアウト（1枚目）：左＝ロゴ列／右＝3カラムの問い合わせ */
@media (min-width: 960px){
  .footer-list01{
    display:grid;
    grid-template-columns: 320px 1fr;   /* 左固定幅／右可変 */
    gap: 24px;
    align-items:start;
  }
  .footer-logo{
    margin:0;
    align-self:start;
  }
  .footer-logo-inner{
    flex-direction:column;               /* ロゴの下にSNSを縦並び（1枚目の雰囲気に） */
    gap: 14px;
  }

  .footer-contact > ul{
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
  }

  /* PCではカード内は縦積み（タイトル→内容）で整然と */
  .footer-contact li{
    display:block; padding:16px 16px 18px;
  }
  .footer-contact li::before{
    position:absolute; left:16px; top:16px; width:42px; height:60px; background-size:30px 25px;}
  .footer-contact .email-ttl,
  .footer-contact .tel-ttl,
    
  .footer-contact .fax-ttl{ min-height:32px; display:flex; align-items:center; }
}

/* スマホ（2枚目）の文字サイズバランス */
@media (max-width: 959.98px){
  .footer-contact .tel-no{ font-size:24px; }
  .footer-logo-inner .logo img{ height:60px; }
}


/* ================= レスポンシブ ================= */
@media(min-width:768px){
  .wrap{padding:22px}
  .hero-inner{flex-direction:row}
  .hero-text{flex:1}
  .hero-visual{flex:1}
  .benefits{grid-template-columns:repeat(3,1fr)}
  .grid{grid-template-columns:repeat(3,1fr)}
  .grid-featured{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(3,1fr)}
  .cta-band{flex-direction:row;align-items:center;justify-content:space-between}
}

/* アニメ軽減 */
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important}
}
