* { margin: 0; padding: 0; box-sizing: border-box; }
  body { background: #eaf2f7; font-family: 'Noto Sans JP', sans-serif; -webkit-font-smoothing: antialiased; color: #1a1a1a; }
  .email-wrapper { max-width: 620px; margin: 0 auto; background: #ffffff; }

  /* TOP BAR */
  .top-bar { background: #2a4a5e; padding: 11px 32px; display: flex; align-items: center; justify-content: space-between; }
  .top-bar .brand { font-family: 'DM Sans', sans-serif; font-size: 14px; font-weight: 600; color: #ffffff; letter-spacing: 3px; }
  .top-bar .web-link { font-size: 11px; color: #8ab8d0; text-decoration: none; letter-spacing: 0.5px; }

  /* HERO */
  .hero { background: #f0f6fa; padding: 0px; text-align: center; border-bottom: 3px solid #b8d8ea; }
  .hero-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; color: #3a7fa0; letter-spacing: 2px; margin-bottom: 14px; }
  .hero-eyebrow::before, .hero-eyebrow::after { content: ''; display: block; width: 22px; height: 1px; background: #3a7fa0; }
  .hero h1 { font-size: 28px; font-weight: 700; color: #1a2e3a; line-height: 1.4; margin-bottom: 8px; }
  .hero h1 em { font-style: normal; color: #2a7fa8; }
  .hero .hero-sub { font-size: 13px; color: #5a7a8a; font-weight: 300; line-height: 1.9; margin-bottom: 20px; }
  .hero-banner { width: 100%;  margin-bottom: 10px; overflow: hidden; display: block; }
  .hero-banner img { width: 100%; height: auto; display: block; }
  .hero-badges { display: flex; justify-content: center; gap: 10px; margin-bottom: 22px; flex-wrap: wrap; }
  .badge { font-size: 12px; font-weight: 700; padding: 7px 16px; border-radius: 20px; }
  .badge-blue { background: #2a7fa8; color: #fff; }
  .badge-outline { background: transparent; color: #2a7fa8; border: 1.5px solid #2a7fa8; }
  .hero-btn { display: inline-block; background: #2a4a5e; color: #fff; font-size: 13px; font-weight: 500; padding: 13px 34px; border-radius: 4px; text-decoration: none; letter-spacing: 1px; }

  /* SECTION */
  .section { padding: 20px 12px; }
  .section-label { font-size: 10px; font-weight: 700; color: #3a7fa0; letter-spacing: 2.5px; text-transform: uppercase; margin-bottom: 18px; display: flex; align-items: center; gap: 8px; }
  .section-label::after { content: ''; flex: 1; height: 1px; background: #daeaf2; }
  .divider-wrap { background: #ea001b; padding: 0 40px; }
  .divider { border: none; border-top: 1px solid rgba(255,255,255,0.3); }

  /* COUPON ROW WRAPPERS (PC: flatten to original flex layout) */
  .coupon-top-row { display: contents; }
  .coupon-bottom-row { display: contents; }
  .coupon-amount-block { text-align: center; padding-right: 18px; border-right: 1px dashed #b8d8ea; flex-shrink: 0; min-width: 10px; display: flex; flex-direction: column; align-items: center; }
  .coupon-amount-block .c-off { margin-left: 0; }
  .coupon-note { font-size: 11px; color: #888; margin-bottom: 16px; }
  .coupon-grid { display: flex; flex-direction: column; gap: 12px; }
  .coupon-card { border: 1.5px dashed #a8cfe0; border-radius: 10px; display: flex; overflow: hidden; }
  .coupon-strip { width: 7px; flex-shrink: 0; background: #2a7fa8; }
  .coupon-inner { flex: 1; display: flex; align-items: center; padding: 18px 20px; gap: 16px; background: #f8fcfe; }
  .coupon-amount-block { text-align: center; padding-right: 18px; border-right: 1px dashed #b8d8ea; flex-shrink: 0; min-width: 10px; }
  .c-yen { font-size: 13px; color: #2a7fa8; font-weight: 600; vertical-align: top; margin-top: 6px; display: inline-block; }
  .c-num { font-family: 'DM Sans', sans-serif; font-size: 42px; font-weight: 300; color: #2a7fa8; line-height: 1; }
  .c-off { font-size: 12px; font-weight: 700; color: #2a7fa8; }
  .c-min { font-size: 11px; color: #888; margin-top: 3px; }
  .coupon-info { flex: 1; }
  .coupon-info h3 { font-size: 14px; font-weight: 600; color: #1a2e3a; margin-bottom: 5px; }
  .coupon-info p { font-size: 11px; color: #6a8a9a; line-height: 1.8; }
  .coupon-code-block { text-align: center; flex-shrink: 0; }
  .code-lbl { font-size: 9px; color: #aaa; letter-spacing: 1px; margin-bottom: 5px; }
  .code-val { font-family: 'DM Sans', monospace; font-size: 16px; font-weight: 700; color: #1a2e3a; background: #eef6fb; padding: 7px 12px; border-radius: 5px; letter-spacing: 2px; border: 1px solid #b8d8ea; }
  .code-period { font-size: 9px; color: #bbb; margin-top: 5px; }

  /* GOLD COUPON OVERRIDES */
  .coupon-gold .coupon-strip { background: #b8860b; }
  .coupon-gold .coupon-inner { background: #fffdf5; }
  .coupon-gold { border-color: #ddc87a; }
  .coupon-gold .coupon-amount-block { border-right-color: #e8d89a; }
  .coupon-gold .c-yen, .coupon-gold .c-num, .coupon-gold .c-off { color: #9a6f0a; }
  .coupon-gold .code-val { background: #fef9e7; border-color: #e8d89a; color: #7a5c0a; }

  /* HOW TO USE */
  .howto { background: #f3f9fc; border: 1px solid #c8e0ec; border-radius: 8px; padding: 14px 18px; }
  .howto p { font-size: 12px; color: #3a5a6a; line-height: 1.8; }
  .howto strong { color: #2a7fa8; font-weight: 600; }

  /* PRODUCTS */
  .section-sub-text { font-size: 12px; color: #888; margin-bottom: 16px; margin-top: -8px; }
  .products-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; grid-auto-rows: 1fr; }
  .product-card { border: 1px solid #d8eaf2; border-radius: 10px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
  .product-thumb { width: 100%; height: 100px; display: flex; align-items: center; justify-content: center; font-size: 28px; flex-shrink: 0; }
  .product-body { padding: 11px 12px 10px; flex: 1; display: flex; flex-direction: column; }
  .product-maker { font-size: 10px; color: #2a7fa8; font-weight: 600; letter-spacing: 0.5px; margin-bottom: 3px; }
  .product-name { font-size: 11px; font-weight: 500; color: #1a1a1a; line-height: 1.5; margin-bottom: 3px; flex: 1; }
  .product-spec { font-size: 10px; color: #aaa; margin-bottom: 8px; display: none; }
  .product-pricing { border-top: 1px dashed #d8eaf2; padding-top: 8px; display: flex; flex-direction: column; gap: 3px; }
  .price-original { font-size: 10px; color: #c0c0c0; text-decoration: line-through; }
  .price-coupon-row { display: flex; align-items: center; justify-content: space-between; margin-top: 1px; }
  .price-after { font-size: 16px; font-weight: 700; color: #1a2e3a; font-family: 'DM Sans', sans-serif; }
  .price-save-tag { font-size: 9px; font-weight: 700; background: #eef6fb; color: #2a7fa8; padding: 2px 6px; border-radius: 3px; border: 1px solid #b8d8ea; white-space: nowrap; }
  .price-coupon-label { font-size: 9px; color: #aaa; margin-bottom: 2px; }
  .product-btn-link { display: block; text-align: center; font-size: 11px; font-weight: 500; color: #2a7fa8; background: #eef6fb; padding: 8px; text-decoration: none; border-top: 1px solid #d8eaf2; letter-spacing: 0.5px; flex-shrink: 0; }

  /* BULK TAG */
  .bulk-tag { display: inline-block; font-size: 9px; font-weight: 700; background: #fff3cd; color: #856404; padding: 2px 7px; border-radius: 3px; margin-bottom: 6px; }

  /* CATEGORY NAV */
  .cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .cat-item { display: flex; align-items: center; justify-content: center; padding: 12px 8px; background: #f3f9fc; border: 1px solid #c8e0ec; border-radius: 8px; font-size: 12px; font-weight: 500; color: #1a2e3a; text-decoration: none; gap: 6px; text-align: center; }
  .cat-item span { font-size: 16px; }

  /* BRAND NAV */
  .brand-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
  .brand-item { padding: 10px 6px; background: #fff; border: 1px solid #d8eaf2; border-radius: 6px; font-size: 10px; font-weight: 500; color: #2a4a5e; text-align: center; text-decoration: none; line-height: 1.5; }
  .brand-item img {width:80%;}
  /* OTHER PROMOS */
  .promo-list { display: flex; flex-direction: column; gap: 10px; }
  .promo-item { display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; background: #f8fbfd; border: 1px solid #d8eaf2; border-radius: 10px; }
  .promo-icon { width: 38px; height: 38px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
  .ico-blue { background: #daeef8; }
  .ico-sky { background: #e2f2fa; }
  .ico-peach { background: #fce8de; }
  .promo-text h4 { font-size: 13px; font-weight: 600; color: #1a2e3a; margin-bottom: 3px; }
  .promo-text p { font-size: 11px; color: #6a8a9a; line-height: 1.7; }
  .promo-pill { margin-left: auto; flex-shrink: 0; align-self: center; font-size: 9px; font-weight: 700; padding: 3px 9px; border-radius: 20px; white-space: nowrap; }
  .pill-hot { background: #fde8e4; color: #b03020; }
  .pill-new { background: #ddedf8; color: #1a55a0; }
  .pill-ltd { background: #fef3d8; color: #9a6000; }

  /* FOOTER */
  .footer { background: #ea001b;; padding: 28px 40px 32px; text-align: center; }
  .footer-contact { display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 6px; }
  .footer-contact .tel { font-family: 'DM Sans', sans-serif; font-size: 20px; font-weight: 600; color: #fff; }
  .footer-contact .tel-label { font-size: 11px; color: #fff; }
  .footer-tel-time { font-size: 11px; color: #fff; margin-bottom: 16px; }
  .footer-links { display: flex; justify-content: center; gap: 16px; margin-bottom: 12px; flex-wrap: wrap; }
  .footer-links a { font-size: 11px; color: #fff; text-decoration: none; }
  .footer p { font-size: 10px; color: #fff; line-height: 1.9; }
  .footer .copyright { font-size: 10px; color: #bbb; margin-top: 10px; }

  /* ══ SP RESPONSIVE ══ */
  @media (max-width: 480px) {

    /* TOP BAR */
    .top-bar { padding: 10px 16px; }
    .top-bar .brand { font-size: 13px; letter-spacing: 2px; }
    .top-bar .web-link { font-size: 10px; }

    /* HERO */
    .hero-eyebrow { font-size: 10px; letter-spacing: 1.5px; margin-bottom: 10px; }
    .hero h1 { font-size: 22px; margin-bottom: 8px; }
    .hero .hero-sub { font-size: 12px; margin-bottom: 16px; line-height: 1.8; }
    .hero-banner { margin-bottom: 16px; }
    .hero-badges { gap: 8px; margin-bottom: 16px; }
    .badge { font-size: 11px; padding: 6px 12px; }
    .hero-btn { display: block; width: 100%; text-align: center; padding: 15px 20px; font-size: 14px; border-radius: 6px; }

    /* SECTION */
    .section { padding: 24px 16px; }
    .section-label { font-size: 9px; letter-spacing: 2px; margin-bottom: 14px; }
    .divider { margin: 0 16px; }

    /* COUPONS SP — 新レイアウト */
    .coupon-inner { flex-direction: column; align-items: stretch; padding: 14px 16px; gap: 0; }
    .coupon-amount-block {
      display: flex; align-items: baseline; gap: 0;
      padding-right: 0; padding-bottom: 0;
      border-right: none; border-bottom: none;
      min-width: unset; justify-content: flex-start; flex-direction: row;
    }
    /* 上段: 金額 左 / 最低購入金額 右 */
    .coupon-top-row { display: flex; align-items: baseline; justify-content: space-between; width: 100%; padding-bottom: 10px; border-bottom: 1px dashed #b8d8ea; margin-bottom: 10px; }
    .coupon-gold .coupon-top-row { border-bottom-color: #e8d89a; }
    /* 下段: 名前・説明 左 / コード 右 */
    .coupon-bottom-row { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 10px; }
    .c-num { font-size: 36px; }
    .c-yen { margin-top: 4px; }
    .c-off { font-size: 13px; margin-left: 4px; }
    .c-min { font-size: 11px; margin: 0; color: #888; }
    .coupon-gold .c-min { color: #9a6f0a; }
    .coupon-info { order: unset; flex: 1; }
    .coupon-info h3 { font-size: 13px; margin-bottom: 4px; }
    .coupon-info p { font-size: 11px; }
    .coupon-code-block { order: unset; display: flex; flex-direction: column; align-items: center; gap: 3px; flex-shrink: 0; }
    .code-lbl { font-size: 9px; margin-bottom: 0; white-space: nowrap; }
    .code-val { font-size: 16px; padding: 6px 12px; letter-spacing: 2px; }
    .code-period { margin-top: 0; font-size: 10px; white-space: nowrap; }

    /* HOW TO USE */
    .howto { padding: 12px 14px; }
    .howto p { font-size: 12px; }

    /* PRODUCTS — 3列→2列 */
    .products-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; grid-auto-rows: unset; }
    .product-thumb { height: 90px; }
    .product-body { padding: 10px 10px 8px; }
    .product-maker { font-size: 10px; }
    .product-name { font-size: 11px; }
    .product-spec { font-size: 10px; }
    .price-original { font-size: 10px; }
    .price-coupon-label { font-size: 9px; }
    .price-after { font-size: 15px; }
    .price-save-tag { font-size: 9px; padding: 2px 5px; }
    .product-btn-link { font-size: 12px; padding: 10px; }
    .bulk-tag { font-size: 9px; }

    /* CATEGORY NAV — 3列維持・高さ調整 */
    .cat-grid { gap: 6px; }
    .cat-item { padding: 11px 4px; font-size: 11px; flex-direction: column; gap: 4px; }
    .cat-item span { font-size: 18px; }

    /* BRAND NAV — 4列→3列 */
    .brand-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
    .brand-item { padding: 10px 4px; font-size: 10px; }

    /* OTHER PROMOS */
    .promo-item { padding: 14px 12px; gap: 12px; }
    .promo-icon { width: 34px; height: 34px; font-size: 16px; flex-shrink: 0; }
    .promo-text h4 { font-size: 12px; }
    .promo-text p { font-size: 11px; }
    .promo-pill { font-size: 9px; padding: 3px 7px; }

    /* FOOTER */
    .footer { padding: 22px 16px 28px; }
    .footer-contact { flex-direction: column; gap: 3px; }
    .footer-contact .tel { font-size: 22px; }
    .footer-contact .tel-label { font-size: 11px; }
    .footer-tel-time { font-size: 11px; }
    .footer-links { gap: 10px; }
    .footer-links a { font-size: 11px; }
    .footer p { font-size: 10px; }
  }

  /* PROMO IMAGE GRID */
  .promo-img-grid { display: flex; flex-direction: column; gap: 10px; }
  .promo-img-item { border-radius: 8px; overflow: hidden; }
  .promo-img-item a { display: block; }
  .promo-img-item img { width: 100%; height: auto; display: block; border-radius: 8px; transition: opacity 0.2s; }
  .promo-img-item img:hover { opacity: 0.88; }

  /* BRAND COLOR SECTIONS */
  .section-brand-bg { background: #ea001b; }
  .section-brand-bg .section-label { color: rgba(255,255,255); }
  .section-brand-bg .section-label::after { background: rgba(255,255,255,0.25); }

  /* cat-item on red bg */
  .section-brand-bg .cat-item { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.25); color: #ffffff; }




 /* Header (from 2602_ll-new-lp) */
    .header { background: #ea001b; padding:10px 12px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
    .logo { flex-shrink:0; }
    .logo img { max-width:160px; }
    .header-actions { display:flex; align-items:center; gap:10px; }
    .search-area { display:flex; align-items:center; justify-content:flex-end; gap:10px; position:relative; }
    header .search-area .search { position:relative; font-size:13px; width:100%; max-width:360px; }
    header .search-area .search input[type="text"] { height:40px; border:1px solid #ea001b; width:300px; margin:5px 0; text-align:left; padding-right:50px; outline:none !important; box-shadow:none !important; }
    header .search-area .search input[type="submit"] { font-size:0; background:url(https://www.lens-smile.com/image/base/icon-search.png) no-repeat center / 39px auto !important; width:40px; height:40px; position:absolute; right:13px; top:5px; cursor:pointer; border:1px solid #ea001b; border-left:none; }
    .search-toggle { width:40px; height:40px; background:url(https://www.lens-smile.com/image/base/icon-search.png) no-repeat center / 60px auto; border:1px solid #fff; border-radius:6px; background-color:#fff; cursor:pointer; display:none; }
    .header-icon { width:40px; height:40px; border-radius:6px; background-color:#fff; display:inline-block; margin:6px 10px; }
    .header-icon.icon-1 { background:url(https://www.lens-smile.com/pc/image/base/icon-nav-login.png) no-repeat center / 40px auto; }
    .header-icon.icon-2 { background:url(https://www.lens-smile.com/pc/image/base/icon-nav-cart.png) no-repeat center / 40px auto; }
    .mobile-search-overlay { position:fixed; left:50%; width:min(720px,100%); z-index:9999; opacity:0; pointer-events:none; transform-origin:top; transform:translateX(-50%) scaleY(0.88); background:#fff;  box-shadow:0 8px 18px rgba(0,0,0,0.10); }
    .mobile-search-overlay.is-open { pointer-events:auto; animation:overlayReveal 260ms ease-out forwards; }
    @keyframes overlayReveal { from{ opacity:0; transform:translateX(-50%) scaleY(0.88); } to{ opacity:1; transform:translateX(-50%) scaleY(1); } }
    .mobile-search-overlay .inner { padding:10px 12px; top:108px;}
    .mobile-search-overlay form { position:relative; width:100%; margin:0 auto; }
    .mobile-search-overlay input[type="search"], .mobile-search-overlay input[type="text"] { height:40px; border:1px solid #ea001b; width:100%; padding-right:50px; box-sizing:border-box; outline:none !important; box-shadow:none !important; }
    .mobile-search-overlay input[type="submit"] { font-size:0; background:url(https://www.lens-smile.com/pc/image/base/icon-search.png) no-repeat center / 39px auto !important; width:40px; height:40px; position:absolute; right:0; top:0; cursor:pointer; border:1px solid #ea001b; border-left:none; }
    @media (max-width:768px) { .search-toggle{ display:block; } .search-area .search{ display:none; } .header-icon{ margin:4px 6px; } }
    @media (min-width:769px) { .mobile-search-overlay{ display:none !important; } }
  /* ══ SP STICKY HEADER ══ */
  @media (max-width: 768px) {
    .header {
      position: fixed;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 100%;
      max-width: 620px;
      z-index: 1000;
      box-shadow: 0 2px 8px rgba(0,0,0,0.12);
      transition: transform 0.3s ease, opacity 0.3s ease;
    }
    .header.header--hidden {
      transform: translateX(-50%) translateY(-100%);
      opacity: 0;
      pointer-events: none;
    }
    /* ヘッダー分の余白を確保 */
    .email-wrapper {
      padding-top: 62px;
    }
  }