*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Hiragino Sans','Yu Gothic',Meiryo,sans-serif;color:#111;background:#fff;line-height:1.7}.inner{width:min(1120px,92%);margin:auto}.site-header{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid #eee}.header-inner{height:76px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.brand-thumb{width:48px;height:32px;object-fit:cover;border-radius:4px}.nav{margin-left:auto;display:flex;gap:22px;font-weight:700;font-size:14px}.nav a,.footer a{color:inherit;text-decoration:none}.btn,.btn-small,.btn-dark{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;text-decoration:none;font-weight:800;letter-spacing:.03em}.btn{background:linear-gradient(90deg,#e60012,#ff2b2b);color:#fff;padding:15px 44px;box-shadow:0 8px 18px rgba(230,0,18,.22)}.btn-small{background:#e60012;color:#fff;padding:10px 24px}.btn-dark{background:#080808;color:#fff;padding:10px 24px;margin-top:auto}.hero{background:radial-gradient(circle at right,#fff 0,#fff7ef 42%,#fff 100%);padding:52px 0 36px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:36px;align-items:center}.ribbon{display:inline-block;background:#e60012;color:#fff;font-weight:900;font-size:24px;padding:6px 22px;transform:rotate(-3deg)}.lead{font-size:28px;font-weight:900;margin:18px 0 0}.hero h1{font-size:64px;line-height:1.1;margin:8px 0 10px;font-weight:900}.hero h1 span{color:#e60012}.sub{font-size:22px;font-weight:900}.icons{display:flex;gap:14px;padding:0;margin:22px 0;list-style:none}.icons li{width:72px;height:72px;border:2px solid #111;border-radius:50%;display:grid;place-items:center;font-weight:900;background:#fff}.hero-note{font-size:20px;font-weight:800}

.hero-visual{position:relative}.hero-visual img
{width:100%;border-radius:0px;box-shadow:0 12px 32px rgba(0,0,0,.12)}

.badge{position:absolute;right:-10px;top:-12px;background:#e60012;color:#fff;border-radius:50%;width:156px;height:156px;display:grid;place-items:center;text-align:center;font-weight:900;line-height:1.35;transform:rotate(8deg)}.about{display:grid;grid-template-columns:1fr 1.6fr;gap:20px;padding:28px 0}.box,.point,.info,.faq{border:2px solid #eee;border-radius:16px;padding:26px;background:#fff}.box h2,.point h2,.info h2,.faq h2{margin-top:0}.items{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:12px 0 28px}.card{position:relative;display:flex;flex-direction:column;gap:14px;border:1px solid #eee;border-radius:18px;padding:20px;background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.06);min-height:560px}.num{position:absolute;left:0;top:0;background:#e60012;color:#fff;font-weight:900;padding:12px 20px;border-radius:18px 0 18px 0}.image-placeholder{height:210px;border-radius:14px;background:linear-gradient(135deg,#fafafa,#eee);display:grid;place-items:center;color:#777;font-weight:800;margin-top:38px}.card h3{font-size:24px;margin:0}.card ul,.set ul{padding-left:1.2em;margin:0}.size{font-weight:800}.set{display:flex;justify-content:space-between;align-items:center;gap:24px;border:3px solid #e60012;border-radius:18px;padding:28px;margin-bottom:26px;background:#fff9f9}.set h2{font-size:34px;margin:0 0 8px}.label{display:inline-block;background:#e60012;color:#fff;border-radius:999px;padding:10px 18px;font-weight:900}.point,.info,.faq{margin-bottom:26px}.info dl{display:grid;grid-template-columns:140px 1fr;gap:10px 18px}.info dt{font-weight:900}.faq details{border-top:1px solid #eee;padding:14px 0}.faq summary{font-weight:900;cursor:pointer}

.footer{background:#1d1d1d;color:#fff;padding:36px 0 20px}

.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.copy{text-align:right;width:min(1120px,92%);margin:20px auto 0;color:#ccc}@media (max-width:820px){.header-inner{height:auto;padding:12px 0;flex-wrap:wrap}.nav{order:3;width:100%;overflow:auto;gap:16px;padding-bottom:6px}.hero{padding-top:28px}.hero-grid,.about,.items,.footer-grid{grid-template-columns:1fr}.hero h1{font-size:44px}.lead{font-size:22px}.ribbon{font-size:18px}.badge{width:118px;height:118px;font-size:14px}.set{display:block}.set .btn{margin-top:16px;width:100%}.card{min-height:auto}.info dl{grid-template-columns:1fr}.btn{width:100%}}

/* 画像パーツのみ追加：初回CSSは維持 */
.image-placeholder{overflow:hidden;background:#fff;}
.image-placeholder img{width:100%;height:100%;object-fit:contain;display:block;}
.set-image{max-width:360px;width:32%;min-width:220px;}
.set-image img{width:100%;height:auto;display:block;}
@media (max-width:820px){.set-image{width:100%;max-width:360px;margin:12px auto;}}

/* mobile image-area fix: keep cutout images stable at every width */
.image-placeholder{
  height:auto !important;
  aspect-ratio: 4 / 3;
  width:100%;
  overflow:hidden;
  background:#fff;
  display:flex !important;
  align-items:center;
  justify-content:center;
  padding:12px;
}
.image-placeholder img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block;
}
.card:nth-child(2) .image-placeholder{aspect-ratio: 3 / 2;}
.card:nth-child(3) .image-placeholder{aspect-ratio: 4 / 3;}
@media (max-width:820px){
  .image-placeholder{
    height:auto !important;
    aspect-ratio: 4 / 3;
    margin-top:42px;
    padding:14px;
  }
  .card:nth-child(2) .image-placeholder{aspect-ratio: 3 / 2;}
  .card:nth-child(3) .image-placeholder{aspect-ratio: 4 / 3;}
  .image-placeholder img{
    max-width:100%;
    max-height:100%;
  }
}

/* === 2026-04-28 fix: スマホ時の画像トリミング崩れ対策 ===
   画像枠の固定height / aspect-ratio を解除し、切り出した画像を自然比率のまま表示します。
   これによりスマホ幅でも、アロハ・トート・サンダル画像が横長に切れません。 */
.image-placeholder{
  height:auto !important;
  aspect-ratio:auto !important;
  display:block !important;
  overflow:visible !important;
  background:#fff !important;
  padding:0 !important;
  margin-top:42px !important;
  border-radius:14px;
}
.image-placeholder img{
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  object-fit:initial !important;
  object-position:center center !important;
  display:block !important;
  border-radius:12px;
}
.card:nth-child(2) .image-placeholder,
.card:nth-child(3) .image-placeholder{
  aspect-ratio:auto !important;
}
.hero-visual img,
.set-image img,
.brand-thumb{
  height:auto !important;
}
@media (max-width:820px){
  .image-placeholder{
    height:auto !important;
    aspect-ratio:auto !important;
    padding:0 !important;
    margin-top:42px !important;
  }
  .image-placeholder img{
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    object-fit:initial !important;
  }
}


/* === スマホ用ハンバーガーメニュー === */
.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent;padding:10px;cursor:pointer;margin-left:auto;z-index:30;}
.menu-toggle span{display:block;width:24px;height:3px;background:#111;border-radius:999px;margin:5px auto;transition:transform .2s ease, opacity .2s ease;}
.menu-toggle.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.menu-toggle.is-open span:nth-child(2){opacity:0;}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
@media (max-width:820px){
  .header-inner{position:relative;flex-wrap:nowrap;height:64px;}
  .brand{min-width:0;flex:1;}
  .brand-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;}
  .menu-toggle{display:block;}
  .site-header .btn-small{display:none;}
  .nav{display:none;position:absolute;top:64px;left:0;right:0;width:100%;margin:0;padding:12px 16px 16px;background:#fff;border-top:1px solid #eee;box-shadow:0 12px 24px rgba(0,0,0,.08);overflow:visible;z-index:20;}
  .nav.is-open{display:flex;flex-direction:column;gap:0;}
  .nav a{display:block;padding:13px 4px;border-bottom:1px solid #eee;font-size:15px;}
  .nav a:last-child{border-bottom:0;}
}

/* === 2026-04-28 requested fixes === */
.badge{display:none!important;}
.card{overflow:hidden;padding:0!important;gap:0!important;}
.card .item-image{position:relative!important;width:100%!important;margin:0!important;padding:0!important;background:#fff!important;border-radius:18px 18px 0 0!important;overflow:hidden!important;display:block!important;}
.card .item-image img{width:100%!important;height:auto!important;display:block!important;border-radius:18px 18px 0 0!important;}
.card .num{position:absolute!important;left:0!important;top:0!important;z-index:2!important;margin:0!important;border-radius:18px 0 18px 0!important;background:#e60012!important;color:#fff!important;font-weight:900!important;padding:12px 20px!important;}
.card .card-body{display:flex;flex-direction:column;gap:14px;flex:1;padding:20px;}
.card .card-body .btn-dark{margin-top:auto;}
.btn,.btn-small,.btn-dark{background:#e60012!important;color:#fff!important;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease!important;}
.btn:hover,.btn-small:hover,.btn-dark:hover{background:#080808!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.18)!important;}
.footer{border-bottom:12px solid #e60012;}
@media (max-width:820px){.card .item-image{border-radius:18px 18px 0 0!important;}.card .item-image img{border-radius:18px 18px 0 0!important;}.card .card-body{padding:18px;}}

/* === FINAL: PC〜タブレットで崩れる前に横幅固定 ===
   821px以上ではデザイン幅を固定して、狭いPC幅では横スクロールにします。
   820px以下だけスマホレイアウトに切り替えます。 */
@media (min-width: 821px){
  body{
    min-width: 1200px;
    overflow-x: auto;
  }
  .inner{
    width: 1120px !important;
    max-width: 1120px !important;
    min-width: 1120px !important;
  }
  .header-inner{
    width: 1120px !important;
    max-width: 1120px !important;
    min-width: 1120px !important;
  }
}

@media (max-width: 820px){
  body{
    min-width: 0;
    overflow-x: hidden;
  }
  .inner,
  .header-inner{
    width: min(1120px, 92%) !important;
    max-width: 92% !important;
    min-width: 0 !important;
  }
}

.fixed-cta {
  display: none;
}

@media (max-width: 768px){
  .fixed-cta{
    position: fixed;
    bottom:0;
    left:0;
    width:100%;
    z-index:9999;
    background:#fff;
    padding:10px;

    display: block;
  }
  .fixed-cta-btn{
    display:block;
    text-align:center;
    background:red;
    color:#fff;
    padding:15px;
    text-decoration:none;
  }
  body{
    padding-bottom:80px;
  }
}

html{
  scroll-padding-top:80px;
  scroll-behavior:smooth;
}

.fixed-cta .btn {
  width: 100%;
}

/* PCでは非表示 */
.nav-home {
  display: none;
}

/* スマホだけ表示 */
@media (max-width: 768px) {
  .nav-home {
    display: inline-block;
  }
}

.related-link {
  text-align: center;
  margin: 40px 0;
}

.related-link img {
  width: 180px; /* 好みで調整 */
  height: auto;
  display: block;
  margin: 0 auto;
  transition: opacity 0.3s;
}

.related-link img:hover {
  opacity: 0.7;
}


.cta-wrap {
  position: relative;
}

/* 右上に乗せる */
.deadline-badge {
  position: absolute;
  top: -14px;
  right: 12px;
  background: #111;
  color: #fff;
  font-weight: 900;
  padding: 8px 14px;
  border-radius: 10px;
  font-size: 15px;
  line-height: 1;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
}

.deadline-sub {
  font-size: 12px;
  margin-left: 4px;
  opacity: 0.9;
}

@media (max-width: 768px) {
  .hero {
    display: flex;
    flex-direction: column;
  }

  .hero-visual {
    order: 1;
  }

  .hero-copy {
    order: 2;
  }
}

@media (max-width: 768px) {
  .hero-products {
    margin: 0;
    padding: 0;
  }
}


@media (max-width: 768px) {
  .footer {
    padding: 16px 12px; /* ←ここが一番効く */
  }
}

@media (max-width: 768px) {
  .footer p {
    margin: 6px 0;
    line-height: 1.4;
  }
}

@media (max-width: 768px) {
  .footer img {
    margin: 8px auto;
  }
}

@media (max-width: 768px) {
  .footer * {
    margin-top: 0;
    margin-bottom: 0;
  }
}

@media (max-width: 768px) {
  body {
    padding-bottom: 60px;
  }
}

@media (max-width: 768px) {
  .point h2 {
    font-size: 18px;
    line-height: 1.3;
  }
}

/* メインビジュアルを最大1100pxで中央表示 */
.main-visual {
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
}

.main-visual img {
  width: 100%;
  height: auto;
  display: block;
}