/*
Theme Name: Hanford Child
Template: welcart_basic
*/

/* =========================================================
   01. Base / Layout
========================================================= */
:root {
  --hanford-navy: #073b67;
  --hanford-navy-dark: #082f4b;
  --hanford-blue: #075f7a;
  --hanford-text: #222;
  --hanford-muted: #666;
  --hanford-line: #e7e4df;
  --hanford-bg: #f7f6f3;
  --hanford-white: #fff;
  --hanford-radius: 6px;
  --hanford-shadow: 0 16px 36px rgba(7, 59, 103, .10);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--hanford-text);
}

img {
  max-width: 100%;
  height: auto;
}

#wrapper,
#header,
#main,
#content,
#container,
#primary,
.site,
.site-content,
.inner,
.wrap {
  width: min(94%, 1280px);
  margin-right: auto;
  margin-left: auto;
}

.page #main,
.single #main,
.archive #main,
.blog #main,
.search #main,
.post-type-archive-usces_item #main,
.tax-itemgenre #main,
.single-usces_item #main,
.usces_cart #main,
.usces_member #main {
  width: min(94%, 1280px);
  margin-right: auto;
  margin-left: auto;
}

.page .entry-content,
.single .entry-content {
  max-width: 1080px;
  margin-right: auto;
  margin-left: auto;
}

.post-type-archive-usces_item .entry-content,
.tax-itemgenre .entry-content,
.single-usces_item .entry-content {
  max-width: none;
}

#primary,
#secondary,
.sidebar {
  box-sizing: border-box;
}

.home #main,
.home #content,
.home #container,
.home .site-content {
  width: 100%;
  max-width: none;
}

.hanford-section,
.brand-section {
  width: min(92%, 1400px);
  margin: 0 auto;
  padding: 80px 0;
}

.brand-hero {
  width: 100%;
  min-height: 70vh;
  background-position: center;
  background-size: cover;
  display: flex;
  align-items: center;
}

.brand-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
}

.brand-card img,
.product-card img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

/* =========================================================
   02. Header
========================================================= */
.hanford-header {
  padding: 26px 4vw;
  background: #fff;
  border-bottom: 1px solid #eee;
}

.hanford-header-inner {
  width: min(100%, 1280px);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 32px;
}

.hanford-copy {
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 600;
}

.hanford-logo {
  display: block;
  width: min(520px, 40vw);
  color: var(--hanford-navy-dark);
  font-size: 72px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
}

.hanford-logo img {
  display: block;
  width: 100%;
  height: auto;
}

.hanford-logo span {
  font-family: serif;
  font-style: italic;
}

.hanford-nav {
  display: flex;
  gap: 40px;
  margin-top: 34px;
}

.hanford-nav a {
  color: #2b2b2b;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
}

.hanford-right {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 38px;
}

.header-action {
  min-width: 86px;
  height: 44px;
  padding: 0 14px;
  border: 1px solid #ded8cf;
  border-radius: 999px;
  background: #fff;
  color: #2b2b2b;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.header-action:hover {
  background: #f6f3ee;
}

.action-icon {
  font-size: 20px;
  line-height: 1;
}

.action-text {
  font-size: 11px;
}

.cart-action {
  color: #fff;
  background: #0b2c45;
  border-color: #0b2c45;
}

.cart-action:hover {
  color: #fff;
  background: #153f5f;
}

.hanford-right span {
  margin-top: 0;
  font-size: 14px;
}

/* =========================================================
   03. Top page
========================================================= */
.hanford-main {
  width: min(94%, 1320px);
  margin: 0 auto;
  padding: 44px 0 96px;
}

.hanford-top-section,
.pickup-section,
.original-section,
.industry-section {
  margin-top: 76px;
}

.main-visual {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  gap: 24px;
}

.main-banner {
  display: block;
  height: 420px;
  overflow: hidden;
  background: #f1f1ef;
}

.main-banner-large {
  height: 420px;
}

.main-banner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.main-banner:hover img {
  transform: scale(1.025);
}

.section-heading {
  display: block;
  margin-bottom: 30px;
}

.section-heading__en {
  margin: 0 0 7px;
  color: var(--hanford-blue);
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
}

.section-heading h2,
.original-section > h2,
.industry-section > h2 {
  position: relative;
  margin: 0;
  padding-bottom: 16px;
  color: #162f3f;
  font-size: clamp(25px, 2.2vw, 34px);
  font-weight: 700;
  letter-spacing: .06em;
}

.section-heading h2::after,
.original-section > h2::after,
.industry-section > h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 48px;
  height: 3px;
  background: var(--hanford-blue);
}

.original-section > h2,
.industry-section > h2 {
  margin-bottom: 30px;
}

.pickup-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px 24px;
}

.pickup-item {
  display: block;
  color: #222;
  text-align: left;
  text-decoration: none;
}

.pickup-thumb {
  aspect-ratio: 1 / 1;
  margin-bottom: 15px;
  overflow: hidden;
  background: #f2f2ef;
}

.pickup-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}

.pickup-item:hover .pickup-thumb img {
  transform: scale(1.04);
}

.pickup-item p {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: .03em;
}

.original-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.original-card {
  display: block;
  aspect-ratio: 1.25 / 1;
  overflow: hidden;
  background: #f1f1ef;
}

.original-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}

.original-card:hover img {
  transform: scale(1.035);
}

.industry-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.industry-card {
  min-height: 126px;
  padding: 14px;
  border: 1px solid var(--hanford-line);
  background: #fff;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  color: #222;
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.industry-card:hover {
  transform: translateY(-4px);
  border-color: transparent;
  box-shadow: var(--hanford-shadow);
}

.industry-card img {
  display: block;
  width: 92px;
  height: 92px;
  object-fit: cover;
}

.industry-card h3 {
  margin: 0 0 7px;
  color: #163b50;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .08em;
  overflow-wrap: anywhere;
}

.industry-card p {
  margin: 0;
  color: #555;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.65;
}

/* =========================================================
   04. Contact / Footer
========================================================= */
.hanford-contact {
  padding: 56px 20px 72px;
  text-align: center;
  background-color: #e8f7fb;
  background-image:
    linear-gradient(rgba(80, 180, 210, .18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(80, 180, 210, .18) 1px, transparent 1px);
  background-size: 24px 24px;
}

.footer-logo img {
  width: 360px;
  max-width: 80%;
}

.contact-sub {
  margin: 34px 0 16px;
  color: #006b95;
  font-size: 18px;
  font-weight: 700;
}

.hanford-contact h2 {
  margin: 0 0 34px;
  font-size: 30px;
}

.contact-buttons {
  display: flex;
  justify-content: center;
  gap: 36px;
}

.contact-btn {
  width: 360px;
  max-width: 100%;
  min-height: 78px;
  padding: 14px 24px;
  border-radius: 999px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  font-size: 24px;
  font-weight: 700;
  text-decoration: none;
  transition: transform .2s ease, opacity .2s ease;
}

.contact-btn:hover {
  transform: translateY(-2px);
  opacity: .9;
}

.line-btn {
  color: #fff;
  background: #54b96a;
}

.mail-btn {
  color: #222;
  background: #fff;
  border: 1px solid #55bfa6;
}

.contact-btn span {
  font-size: 28px;
}

.hanford-footer {
  padding: 90px 40px;
  color: #fff;
  background: var(--hanford-blue);
}

.hanford-footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: center;
}

.footer-calendar {
  padding: 22px;
  color: #333;
  background: #fff;
}

.footer-calendar h3 {
  margin: 0 0 15px;
  font-size: 16px;
  text-align: center;
}

.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 55px;
}

.footer-nav h4 {
  margin: 0 0 16px;
  font-size: 14px;
}

.footer-nav a {
  display: block;
  margin-bottom: 13px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

/* =========================================================
   05. Shared responsive
========================================================= */
@media (max-width: 1024px) {
  #wrapper,
  #header,
  #main,
  #content,
  #container,
  #primary,
  .site,
  .site-content,
  .inner,
  .wrap {
    width: 94%;
    max-width: none;
  }

  .hanford-header-inner {
    align-items: center;
    flex-wrap: wrap;
  }

  .hanford-logo {
    width: min(420px, 55vw);
  }

  .hanford-right {
    padding-top: 0;
  }

  .pickup-grid,
  .industry-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  #wrapper,
  #header,
  #main,
  #content,
  #container,
  #primary,
  .site,
  .site-content,
  .inner,
  .wrap {
    width: 92%;
  }

  .page .entry-content,
  .single .entry-content {
    max-width: none;
  }

  .hanford-section,
  .brand-section {
    width: 90%;
    padding: 50px 0;
  }

  .brand-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .brand-hero {
    min-height: 56vh;
  }

  .hanford-header {
    padding: 18px 20px;
  }

  .hanford-header-inner {
    gap: 18px;
  }

  .hanford-logo {
    width: min(320px, 72vw);
    font-size: 46px;
  }

  .hanford-copy {
    font-size: 13px;
  }

  .hanford-nav {
    order: 3;
    width: 100%;
    margin-top: 0;
    gap: 18px;
    overflow-x: auto;
  }

  .hanford-nav a {
    font-size: 14px;
    white-space: nowrap;
  }

  .hanford-right {
    margin-left: auto;
  }

  .header-action {
    min-width: 44px;
    padding: 0 10px;
  }

  .action-text {
    display: none;
  }

  .hanford-main {
    width: 92%;
    padding: 28px 0 70px;
  }

  .hanford-top-section,
  .pickup-section,
  .original-section,
  .industry-section {
    margin-top: 56px;
  }

  .main-visual {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .main-banner,
  .main-banner-large {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .main-visual .main-banner:not(.main-banner-large) {
    aspect-ratio: 4 / 3;
  }

  .pickup-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px 14px;
  }

  .original-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .industry-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .industry-card {
    grid-template-columns: 84px minmax(0, 1fr);
    min-height: 112px;
  }

  .industry-card img {
    width: 84px;
    height: 84px;
  }

  .contact-buttons {
    flex-direction: column;
    align-items: center;
    gap: 18px;
  }

  .hanford-footer {
    padding: 64px 20px;
  }

  .hanford-footer-inner {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .footer-nav {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

@media (max-width: 480px) {
  #wrapper,
  #header,
  #main,
  #content,
  #container,
  #primary,
  .site,
  .site-content,
  .inner,
  .wrap {
    width: 90%;
  }

  .section-heading h2,
  .original-section > h2,
  .industry-section > h2 {
    font-size: 24px;
  }

  .contact-btn {
    min-height: 68px;
    font-size: 20px;
  }
}

/* =========================================================
   06. Existing LP sections
   ここから下は既存LP用CSSを維持
========================================================= */

/* =========================================
ラバーコースターLP
========================================= */

.coaster-hero {
  width: 100%;
  background: #f5f1eb;
  padding: 80px 0;
}
.coaster-hero__inner {
  max-width: 1600px;
  margin: 0 auto;

  padding: 0 80px;

  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 80px;
}

.coaster-label {
  display: inline-block;
  padding: 7px 16px;
  border: 1px solid #9aa6b2;
  border-radius: 6px;
  font-size: 14px;
  margin-bottom: 22px;
}

.coaster-hero h1 {
  font-size: 32px;
  line-height: 1.5;
  letter-spacing: .06em;
  margin: 0 0 24px;
}

.coaster-hero__text p {
  font-size: 16px;
  line-height: 2;
}

.coaster-icons {
  display: flex;
  gap: 28px;
  margin-top: 36px;
}

.coaster-icons div {
  text-align: center;
}

.coaster-icons span {
  width: 68px;
  height: 68px;
  background: #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 28px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

.coaster-icons p {
  font-size: 13px;
  font-weight: 700;
  margin-top: 10px;
}

.coaster-hero__visual {
  text-align: center;
}

#mainCoaster {
  width: min(520px, 100%);
  transition: opacity .25s ease, transform .25s ease;
}

#mainCoaster.is-changing {
  opacity: 0;
  transform: scale(.97);
}

.coaster-thumbs {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
}

.coaster-thumbs button {
  width: 74px;
  height: 74px;
  border: 2px solid transparent;
  border-radius: 8px;
  background: #fff;
  padding: 4px;
  cursor: pointer;
}

.coaster-thumbs button.active {
  border-color: #0b4f8a;
}

.coaster-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (max-width: 768px) {
  .coaster-hero__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .coaster-hero h1 {
    font-size: 34px;
  }

  .coaster-icons {
    gap: 16px;
  }

  .coaster-thumbs {
    overflow-x: auto;
    justify-content: flex-start;
  }
}

/* =========================================
固定ページLP調整
========================================= */

body.page #primary,
body.page .content-area,
body.page .site-main,
body.page main {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

/* LP本体 */
body.page .coaster-hero {
  width: 100%;
  max-width: 100%;
}

body.page .coaster-hero__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 70px 80px;
}

/* 固定ページの本文幅制限を解除 */
body.page .entry-content,
body.page .page-content,
body.page .content,
body.page .site-content,
body.page .container,
body.page .wrap,
body.page .inner {
  max-width: none !important;
  width: 100% !important;
}

/* ラバーコースターLP：親幅を無視して画面いっぱい */
body.page .entry-content > .coaster-hero {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  max-width: 100vw;
  background: #f5f1eb;
  padding: 80px 0;
}

body.page .coaster-hero__inner {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 80px;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  align-items: center;
  gap: 80px;
}

/* 4ステップ */
.coaster-steps {
  padding: 70px 5%;
  background: #fff;
  text-align: center;
}

.coaster-steps h2 {
  font-size: 28px;
  margin-bottom: 36px;
  letter-spacing: .08em;
}

.coaster-steps__grid {
  max-width: 1500px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.step-card {
  position: relative;
  background: #f7f7f7;
  border-radius: 14px;
  padding: 30px 26px;
  text-align: left;
  min-height: 330px;
}

.step-num {
  width: 34px;
  height: 34px;
  background: #073b67;
  color: #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: bold;
  margin-bottom: 12px;
}

.step-card h3 {
  color: #073b67;
  font-size: 18px;
  margin: 0 0 8px;
}

.step-card p {
  font-size: 13px;
  margin-bottom: 22px;
}

.shape-list div {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 18px;
}

.shape {
  width: 52px;
  height: 52px;
  border: 1.5px solid #333;
  display: inline-block;
}

.shape.circle {
  border-radius: 50%;
}

.shape.square {
  border-radius: 8px;
}

.shape.original {
  border-radius: 45% 55% 50% 48%;
}

.color-grid {
  display: grid;
  grid-template-columns: repeat(3, 48px);
  gap: 18px;
}

.color-grid span {
  width: 48px;
  height: 48px;
  border-radius: 4px;
  border: 1px solid #ddd;
  display: block;
}

.color-grid .selected {
  outline: 3px solid #073b67;
  outline-offset: 4px;
}

.design-box {
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 18px;
  margin-bottom: 12px;
  background: #fff;
  font-weight: bold;
}

.design-box.active {
  border-color: #0b4f8a;
}

.note-box {
  background: #dcebf8;
  color: #073b67;
  border-radius: 8px;
  padding: 18px;
  text-align: center;
  font-weight: bold;
}

.step-card select {
  width: 100%;
  padding: 14px;
  border-radius: 8px;
  border: 1px solid #ccc;
  margin-bottom: 22px;
}

.price-box {
  background: #fff;
  border-radius: 10px;
  padding: 18px;
}

.price-box div {
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
}

@media (max-width: 900px) {
  .coaster-steps__grid {
    grid-template-columns: 1fr;
  }
}

/* プレビュー・価格・お問い合わせ */
.coaster-summary {
  max-width: 1500px;
  margin: 0 auto;
  padding: 40px 5% 80px;
  display: grid;
  grid-template-columns: 1.3fr .75fr .75fr;
  gap: 24px;
  background: #fff;
}

.preview-card,
.price-card,
.contact-card {
  border-radius: 14px;
  background: #fff;
}

.preview-card {
  border: 1px solid #d8e5f1;
  padding: 26px;
}

.preview-card h3,
.price-card h3 {
  color: #073b67;
  margin: 0 0 20px;
  font-size: 18px;
}

.preview-card__body {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 30px;
  align-items: center;
}

.preview-card__body img {
  width: 220px;
  height: auto;
}

.preview-spec p {
  margin: 0 0 12px;
  font-size: 15px;
}

.preview-spec span {
  display: inline-block;
  width: 80px;
  color: #555;
}

.preview-spec small {
  display: block;
  margin-top: 20px;
  font-size: 12px;
  line-height: 1.8;
  color: #666;
}

.price-card {
  padding: 26px;
}

.price-card small {
  color: #333;
  font-size: 12px;
}

.price-note {
  font-size: 12px;
  line-height: 1.7;
  margin-bottom: 22px;
}

.main-price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 24px;
}

.main-price strong {
  color: #d71920;
  font-size: 34px;
}

.price-card dl {
  border-bottom: 1px solid #ccc;
  padding-bottom: 16px;
  margin-bottom: 18px;
}

.price-card dl div,
.total-price {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 12px;
}

.price-card dt,
.price-card dd {
  font-size: 14px;
  margin: 0;
}

.total-price strong {
  font-size: 26px;
}

.contact-card {
  background: linear-gradient(135deg, #073b67, #0b4f8a);
  color: #fff;
  padding: 34px 28px;
  text-decoration: none;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.mail-icon {
  font-size: 34px;
  margin-bottom: 18px;
}

.contact-card strong {
  font-size: 22px;
  line-height: 1.6;
}

.contact-card p {
  font-size: 13px;
  line-height: 1.8;
  margin-top: 22px;
}

@media (max-width: 900px) {
  .coaster-summary {
    grid-template-columns: 1fr;
  }

  .preview-card__body {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .preview-card__body img {
    margin: 0 auto;
  }
}


/* 固定ページ上部に出るWelcartカレンダーだけ非表示 */
body.page > .widget.widget_welcart_calendar,
body.page main + .widget.widget_welcart_calendar {
  display: none !important;
}

/* フッター以外のWelcartカレンダーだけ非表示 */
body.page .widget.widget_welcart_calendar {
  display: none !important;
}

body.page footer .widget.widget_welcart_calendar,
body.page .site-footer .widget.widget_welcart_calendar {
  display: block !important;
}


/* =========================================
フッター営業日カレンダー調整
========================================= */

body.page footer .widget.widget_welcart_calendar {
  max-width: 620px;
  margin: 0 auto;
  padding: 34px 46px;
  background: #fff;
  text-align: center;
  border-radius: 2px;
}

body.page footer .widget.widget_welcart_calendar .widgettitle,
body.page footer .widget.widget_welcart_calendar h2,
body.page footer .widget.widget_welcart_calendar h3 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 22px;
  letter-spacing: .05em;
}

body.page footer .usces_calendar {
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

body.page footer .usces_calendar table {
  width: 100%;
  max-width: 360px;
  margin: 12px auto 22px;
  border-collapse: separate;
  border-spacing: 8px 6px;
}

body.page footer .usces_calendar th,
body.page footer .usces_calendar td {
  text-align: center;
  font-size: 14px;
  line-height: 1.4;
  padding: 2px 4px;
}

body.page footer .usces_calendar caption {
  font-size: 15px;
  font-weight: 500;
  margin-bottom: 8px;
}

body.page footer .usces_calendar p,
body.page footer .usces_calendar div {
  text-align: center;
}

/* =========================================
ショッパー袋LP ヒーロー
========================================= */

.shopper-hero {
  background: linear-gradient(90deg, #fffaf3 0%, #f8f3ec 100%);
  padding: 80px 0;
}

.shopper-hero__inner {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 70px;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: center;
  gap: 60px;
}

.shopper-hero__en {
  font-family: serif;
  font-style: italic;
  color: #073b67;
  font-size: 20px;
  margin: 0 0 14px;
}

.shopper-hero h1 {
  color: #073b67;
  font-size: 42px;
  line-height: 1.4;
  letter-spacing: .06em;
  margin: 0 0 18px;
}

.shopper-hero__lead {
  color: #073b67;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .06em;
  margin-bottom: 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(7,59,103,.25);
}

.shopper-hero__desc {
  font-size: 15px;
  line-height: 2;
  margin-bottom: 0;
}

.shopper-hero__visual img {
  width: 100%;
  max-width: 680px;
  display: block;
  margin: 0 auto;
}

.shopper-features {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  margin-top: 48px;
}

.shopper-feature {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  min-width: 0;
}

.shopper-feature span {
  width: 68px;
  height: 68px;
  border: 1px solid #9bb7cf;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #073b67;
  font-weight: 700;
  font-size: 22px;
  background: #fff;
  flex: 0 0 68px;
}

.shopper-feature div {
  min-width: 0;
}

.shopper-feature strong {
  display: block;
  color: #111;
  font-size: 16px;
  line-height: 1.5;
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
}

.shopper-feature p {
  font-size: 13px;
  line-height: 1.7;
  margin: 6px 0 0;
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
}

@media (max-width: 900px) {
  .shopper-hero__inner {
    grid-template-columns: 1fr;
    padding: 0 24px;
  }

  .shopper-hero h1 {
    font-size: 30px;
  }

  .shopper-features {
    grid-template-columns: 1fr;
  }
}

.shopper-feature *,
.shopper-feature strong,
.shopper-feature p,
.shopper-feature div {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
}

.shopper-features {
  display: flex !important;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: nowrap;
}

.shopper-feature {
  flex: 1;
  min-width: 0;
}

.shopper-hero__inner {
  grid-template-columns: 0.8fr 1.2fr !important;
}



/* ショッパーLP：親幅を無視して画面いっぱい */
body.page .entry-content > .shopper-hero {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  max-width: 100vw;
  background: linear-gradient(90deg, #fffaf3 0%, #f8f3ec 100%);
  padding: 80px 0;
}

/* 中身を広く中央配置 */
body.page .shopper-hero__inner {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 70px;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: center;
  gap: 60px;
}

/* 特徴4つを下段で横並び */
body.page .shopper-features {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  margin-top: 48px;
}

/* =========================================
ショッパー サイズ一覧
========================================= */

.shopper-spec {
  padding: 90px 0;
  background: #fff;
}

.shopper-spec__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 60px;
}

.shopper-spec__title {
  text-align: center;
  font-size: 34px;
  color: #073b67;
  margin-bottom: 60px;
}

.shopper-size-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 28px;
  margin-bottom: 26px;
}

.shopper-size {
  text-align: center;
}

.shopper-size img {
  width: 100%;
  max-width: 150px;
  margin-bottom: 14px;
}

.shopper-size h3 {
  font-size: 18px;
  margin-bottom: 6px;
  color: #111;
}

.shopper-size p {
  font-size: 13px;
  color: #666;
}

.shopper-size-note {
  text-align: center;
  color: #777;
  margin-bottom: 70px;
}

.shopper-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

.shopper-info-box {
  border: 1px solid #e7e7e7;
  padding: 36px;
  background: #fff;
}

.shopper-info-box h3 {
  font-size: 22px;
  margin-bottom: 28px;
  color: #073b67;
}

.shopper-info-item + .shopper-info-item {
  margin-top: 24px;
}

.shopper-info-item strong {
  display: block;
  font-size: 17px;
  margin-bottom: 8px;
}

.shopper-info-item p {
  color: #666;
  line-height: 1.8;
}

/* 印刷・材質カード */
.shopper-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

.shopper-info-box {
  border: 1px solid #e7e7e7;
  padding: 34px 36px;
  background: #fff;
}

.shopper-info-box h3 {
  text-align: center;
  font-size: 22px;
  color: #073b67;
  margin-bottom: 30px;
}

.shopper-info-box {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.shopper-info-box h3 {
  grid-column: 1 / -1;
}

.shopper-info-item {
  text-align: center;
  border-left: 1px solid #eee;
  padding: 0 18px;
}

.shopper-info-item:first-of-type {
  border-left: none;
}

.shopper-info-item strong {
  display: block;
  font-size: 16px;
  margin-bottom: 10px;
}

.shopper-info-item p {
  font-size: 13px;
  line-height: 1.7;
  color: #555;
}
.shopper-info-item img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  margin: 0 auto 18px;
  display: block;
}

/* 固定ページタイトルを非表示 */
body.page .entry-header,
body.page .entry-title,
body.page h1.entry-title,
body.page .post-title {
  display: none !important;
}

.hanford-nav ul,
.hanford-nav-list {
  display: flex;
  gap: 40px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.hanford-nav li {
  list-style: none;
}

.hanford-nav a {
  text-decoration: none;
  font-weight: 700;
}

/* =========================================
ヘッダーメニュー
========================================= */

.hanford-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.hanford-nav > ul {
  display: flex;
  gap: 40px;
  align-items: center;
}

.hanford-nav li {
  position: relative;
}

/* リンク色 */
.hanford-nav a {
  color: #073b67;
  text-decoration: none;
  font-weight: 700;
  transition: .3s;
}

.hanford-nav a:hover {
  opacity: .7;
}

/* 子メニュー非表示 */
.hanford-nav .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: #fff;
  padding: 14px 0;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
  
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: .3s;
  z-index: 999;
}

/* hoverで表示 */
.hanford-nav li:hover > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* 子メニュー項目 */
.hanford-nav .sub-menu li {
  width: 100%;
}

.hanford-nav .sub-menu a {
  display: block;
  padding: 12px 20px;
  color: #222;
  font-weight: 500;
}

.hanford-nav .sub-menu a:hover {
  background: #f7f7f7;
}

.hanford-nav .sub-menu a {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: nowrap;
}
.hanford-nav .sub-menu {
  display: flex;
  flex-direction: column;
  gap: 0;
}


/* =========================================
ロゴマーク作成 ヒーロー
========================================= */

body.page .entry-content > .logo-design-hero {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  max-width: 100vw;
  min-height: 720px;
  overflow: hidden;

  background-image:
    linear-gradient(
      90deg,
      rgba(245,242,237,.96) 0%,
      rgba(245,242,237,.88) 34%,
      rgba(245,242,237,.42) 52%,
      rgba(245,242,237,0) 70%
    ),
    url("/store/wp-content/themes/welcart_basic_child/assets/img/logo/logo-hero.webp");

  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.logo-design-hero__inner {
  width: 100%;
  max-width: 1500px;
  margin: 0 auto;
  min-height: 720px;
  display: flex;
  align-items: center;
}

.logo-design-hero__text {
  width: 48%;
  max-width: 720px;
}

.logo-design-hero__visual {
  display: none;
}

.logo-design-hero__visual img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.logo-design-hero__label {
  color: #9b6843;
  font-size: 20px;
  letter-spacing: .12em;
  font-weight: 700;
  margin: 0 0 18px;
}

.logo-design-hero h1 {
  color: #073b67;
  font-size: 58px;
  line-height: 1.25;
  letter-spacing: .08em;
  margin: 0 0 22px;
}

.logo-design-hero__catch {
  color: #b0784f;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: .08em;
  margin: 0 0 30px;
}

.logo-design-hero__lead {
  font-size: 15px;
  line-height: 2;
  color: #222;
  margin: 0 0 46px;
}

.logo-design-hero__visual img {
  width: 100%;
  display: block;
}

.logo-design-features{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:0 !important;
  margin-top:50px;
  padding-top:26px;
  border-top:1px solid rgba(7,59,103,.18);
  max-width:620px;
}

.logo-design-feature{
  text-align:center;
  padding:0 18px !important;
  border-right:1px solid rgba(7,59,103,.18);
}

.logo-design-feature:last-child{
  border-right:none;
}

.logo-design-feature span{
  display:block !important;
  font-size:34px;
  line-height:1;
  margin:0 auto 14px;
}

.logo-design-feature strong{
  display:block;
  font-size:13px;
  line-height:1.6;
  margin-bottom:10px;
}

.logo-design-feature p{
  font-size:11px;
  line-height:1.8;
  margin:0;
}
@media (max-width:900px){

  .logo-design-hero__inner{
      flex-direction:column-reverse;
  }

  .logo-design-hero__text {
    width: 100%;
    padding: 40px 24px 56px;
  }

  .logo-design-hero__visual {
    width: 100%;
    height: 360px;
  }

  .logo-design-hero h1 {
    font-size: 38px;
  }

  .logo-design-hero__catch {
    font-size: 20px;
  }

  .logo-design-features {
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }

  .logo-design-feature {
    border-right: none;
    padding: 0;
  }
}
/* =========================================
ロゴマーク作成 料金プラン
========================================= */

.logo-plan {
  background: #fff;
  padding: 86px 0;
}

.logo-plan__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 60px;
}

.logo-section-title {
  text-align: center;
  margin-bottom: 42px;
}

.logo-section-title h2 {
  color: #073b67;
  font-size: 34px;
  letter-spacing: .08em;
  margin: 0 0 14px;
}

.logo-section-title p {
  font-size: 15px;
  color: #555;
  margin: 0;
}

.logo-plan__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 42px;
  align-items: stretch;
}

.logo-plan-card {
  position: relative;
  background: #fff;
  border: 1px solid #ded6cd;
  border-radius: 10px;
  padding: 42px 42px 36px;
  text-align: center;
}

.logo-plan-card--recommend {
  border-color: #b8784f;
  box-shadow: 0 14px 34px rgba(120, 74, 43, .12);
  transform: translateY(-8px);
}

.logo-plan-card__badge {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(90deg, #b8784f, #d39a68);
  color: #fff;
  font-weight: 700;
  padding: 8px;
  border-radius: 10px 10px 0 0;
  font-size: 13px;
}

.logo-plan-card__en {
  color: #b8784f;
  font-size: 13px;
  letter-spacing: .12em;
  font-weight: 700;
  margin: 0 0 12px;
}

.logo-plan-card--recommend .logo-plan-card__en {
  margin-top: 20px;
}

.logo-plan-card h3 {
  color: #073b67;
  font-size: 24px;
  margin: 0 0 16px;
}

.logo-plan-card__desc {
  font-size: 15px;
  line-height: 1.8;
  margin: 0 0 28px;
}

.logo-plan-card__price {
  color: #073b67;
  font-size: 36px;
  font-weight: 700;
  margin: 0 0 26px;
  padding-bottom: 24px;
  border-bottom: 1px solid #ded6cd;
}

.logo-plan-card__price span {
  font-size: 13px;
  margin-left: 4px;
}

.logo-plan-card ul {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  text-align: left;
}

.logo-plan-card li {
  font-size: 14px;
  margin-bottom: 12px;
  padding-left: 24px;
  position: relative;
}

.logo-plan-card li::before {
  content: "◎";
  position: absolute;
  left: 0;
  color: #b8784f;
  font-size: 13px;
}

.logo-plan-card__btn {
  display: block;
  background: #073b67;
  color: #fff !important;
  text-decoration: none;
  border-radius: 999px;
  padding: 15px 20px;
  font-weight: 700;
}

.logo-plan-card--recommend .logo-plan-card__btn {
  background: #b8784f;
}

.logo-plan__note {
  text-align: center;
  margin-top: 32px;
  color: #666;
  font-size: 13px;
}

@media (max-width: 900px) {
  .logo-plan__inner {
    padding: 0 24px;
  }

  .logo-plan__grid {
    grid-template-columns: 1fr;
  }

  .logo-plan-card--recommend {
    transform: none;
  }
}
/* =========================================
ロゴマーク作成 共通サービス
========================================= */

.logo-common-service {
  background: #fff;
  padding: 50px 0 80px;
}

.logo-common-service__inner {
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 50px;
  border: 1px solid #e4ded7;
  border-radius: 14px;
  padding-top: 36px;
  padding-bottom: 42px;
}

.logo-common-service h2 {
  text-align: center;
  color: #073b67;
  font-size: 32px;
  letter-spacing: .08em;
  margin: 0 0 34px;
}

.logo-common-service__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}

.logo-common-card {
  background: #fff;
  border: 1px solid #e7e2dc;
  border-radius: 10px;
  padding: 30px 20px 26px;
  text-align: center;
  box-shadow: 0 8px 24px rgba(0,0,0,.03);
}

.logo-common-card__icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 20px;
  border: 2px solid #073b67;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #073b67;
  font-size: 30px;
  font-weight: 700;
}

.logo-common-card h3 {
  color: #073b67;
  font-size: 18px;
  margin: 0 0 14px;
  line-height: 1.5;
}

.logo-common-card p {
  font-size: 14px;
  line-height: 1.8;
  margin: 0;
  color: #333;
}

.logo-common-card small {
  display: block;
  margin-top: 10px;
  font-size: 11px;
  line-height: 1.6;
  color: #777;
}

@media (max-width: 900px) {
  .logo-common-service__inner {
    padding: 30px 24px;
    border-radius: 10px;
  }

  .logo-common-service__grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================
ロゴ制作 オプションサービス
========================================= */

.logo-option{
  padding:90px 0;
  background:#fff;
}

.logo-option__inner{
  max-width:1500px;
  margin:auto;
  padding:0 50px;
}

.logo-option__title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  margin-bottom:40px;
}

.logo-option__title span{
  width:70px;
  height:1px;
  background:#b7b7b7;
}

.logo-option__title h2{
  margin:0;
  color:#073b67;
  font-size:36px;
  letter-spacing:.08em;
}

.logo-option__grid{
  border:1px solid #e3ddd5;
  border-radius:16px;
  overflow:hidden;

  display:grid;
  grid-template-columns:repeat(3,1fr);
}

.logo-option-card{
  display:flex;
  gap:24px;
  padding:42px;
  align-items:flex-start;
  background:#fff;

  border-right:1px solid #e3ddd5;
}

.logo-option-card:last-child{
  border-right:none;
}

.logo-option-card__icon{
  width:90px;
  height:90px;

  flex-shrink:0;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:48px;
  color:#073b67;
}

.logo-option-card__content h3{
  margin:0 0 14px;
  color:#073b67;
  font-size:28px;
}

.logo-option-card__content p{
  margin:0;
  font-size:15px;
  line-height:2;
  color:#444;
}

.logo-option-btn{
  display:inline-block;
  margin-top:24px;

  padding:14px 30px;

  background:#c98a58;
  color:#fff !important;

  text-decoration:none;
  border-radius:999px;

  font-weight:700;
  transition:.3s;
}

.logo-option-btn:hover{
  opacity:.85;
}

@media(max-width:900px){

.logo-option__grid{
  grid-template-columns:1fr;
}

.logo-option-card{
  border-right:none;
  border-bottom:1px solid #e3ddd5;
}

.logo-option-card:last-child{
  border-bottom:none;
}

.logo-option__title h2{
  font-size:28px;
}

}

.logo-flow-section {
  padding: 90px 20px;
  background: #f8f7f3;
  color: #2f3437;
}

.logo-flow-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.logo-flow-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 26px;
  margin-bottom: 56px;
}

.logo-flow-heading span {
  display: block;
  width: 220px;
  height: 1px;
  background: #d8d4cc;
}

.logo-flow-heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: #2b2f31;
}

.logo-flow-list {
  display: grid;
  grid-template-columns: 1fr 36px 1fr 36px 1fr 36px 1fr 36px 1fr;
  align-items: start;
  gap: 12px;
}

.logo-flow-item {
  text-align: center;
}

.logo-flow-icon {
  width: 104px;
  height: 104px;
  margin: 0 auto 22px;
  border: 1px solid #d7d2c9;
  border-radius: 50%;
  background: #fffdfa;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 14px 30px rgba(40, 34, 25, 0.06);
}

.logo-flow-icon span {
  font-size: 36px;
  line-height: 1;
  color: #263038;
}

.logo-flow-item h3 {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #2d3336;
}

.logo-flow-item p {
  margin: 0;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #5d6264;
}

.logo-flow-arrow {
  padding-top: 42px;
  text-align: center;
  font-size: 34px;
  font-weight: 300;
  color: #9b958b;
}

/* タブレット */
@media (max-width: 960px) {
  .logo-flow-heading span {
    width: 120px;
  }

  .logo-flow-list {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .logo-flow-arrow {
    padding-top: 0;
    font-size: 28px;
    transform: rotate(90deg);
  }

  .logo-flow-item {
    max-width: 360px;
    margin: 0 auto;
  }
}

/* スマホ */
@media (max-width: 560px) {
  .logo-flow-section {
    padding: 64px 18px;
  }

  .logo-flow-heading {
    gap: 16px;
    margin-bottom: 40px;
  }

  .logo-flow-heading span {
    width: 54px;
  }

  .logo-flow-heading h2 {
    font-size: 23px;
  }

  .logo-flow-icon {
    width: 88px;
    height: 88px;
    margin-bottom: 18px;
  }

  .logo-flow-icon span {
    font-size: 30px;
  }

  .logo-flow-item h3 {
    font-size: 14px;
  }

  .logo-flow-item p {
    font-size: 13px;
  }
}

.menu-stand-hero {
  background-image:
    linear-gradient(
      90deg,
      rgba(245, 241, 234, 1) 0%,
      rgba(245, 241, 234, 0.96) 38%,
      rgba(245, 241, 234, 0.72) 52%,
      rgba(245, 241, 234, 0.05) 70%
    ),
    url("assets/img/standingsign/standingsign-hero.webp");
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
}

.menu-stand-hero__bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(
      90deg,
      rgba(250, 247, 241, 0.98) 0%,
      rgba(250, 247, 241, 0.94) 28%,
      rgba(250, 247, 241, 0.55) 45%,
      rgba(250, 247, 241, 0.05) 62%,
      rgba(250, 247, 241, 0) 100%
    ),
    url("assets/img/standingsign/standingsign-hero.webp");
  background-size: cover;
  background-position: center right;
}

.menu-stand-hero__content {
  position: relative;
  z-index: 2;
  max-width: 720px;
  padding: 72px 0 54px 6vw;
}

.menu-stand-hero__eyebrow {
  margin: 0 0 24px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #8a4c1f;
}

.menu-stand-hero h1 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(48px, 5.2vw, 82px);
  line-height: 1.35;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.menu-stand-hero__lead {
  margin: 28px 0 28px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: clamp(24px, 2.2vw, 36px);
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #9a4f18;
}

.menu-stand-hero__text {
  margin: 0;
  font-size: 17px;
  line-height: 2.05;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.menu-stand-hero__features {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  max-width: 680px;
  margin-top: 56px;
}

.menu-stand-hero__feature {
  position: relative;
  text-align: center;
  padding: 0 18px;
}

.menu-stand-hero__feature:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 10px;
  right: 0;
  width: 1px;
  height: 132px;
  background: rgba(70, 55, 42, 0.22);
}

.menu-stand-hero__icon {
  width: 66px;
  height: 66px;
  margin: 0 auto 16px;
  border-radius: 50%;
  border: 1px solid rgba(80, 60, 45, 0.16);
  background: rgba(255, 255, 255, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  line-height: 1;
  color: #111;
}

.menu-stand-hero__feature h3 {
  margin: 0 0 10px;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.menu-stand-hero__feature p {
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: #444;
}

.menu-stand-hero__badge {
  position: absolute;
  z-index: 3;
  right: 6vw;
  bottom: 38px;
  width: 174px;
  height: 174px;
  border-radius: 50%;
  background: linear-gradient(135deg, #b36b21, #8d4d15);
  border: 2px solid rgba(255, 255, 255, 0.85);
  box-shadow:
    0 0 0 2px rgba(145, 82, 26, 0.55),
    0 18px 34px rgba(0, 0, 0, 0.22);
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  transform: rotate(-4deg);
}

.menu-stand-hero__badge span {
  font-size: 22px;
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.menu-stand-hero__badge small {
  display: block;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.55;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* タブレット */
@media (max-width: 1024px) {
  .menu-stand-hero {
    min-height: auto;
  }

  .menu-stand-hero__bg {
    background-position: center right;
  }

  .menu-stand-hero__content {
    max-width: 620px;
    padding: 64px 24px 48px;
  }

  .menu-stand-hero__features {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 0;
    max-width: 520px;
  }

  .menu-stand-hero__feature:nth-child(2)::after {
    display: none;
  }

  .menu-stand-hero__badge {
    right: 24px;
    bottom: 28px;
    width: 150px;
    height: 150px;
  }

  .menu-stand-hero__badge span {
    font-size: 19px;
  }

  .menu-stand-hero__badge small {
    font-size: 12px;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .menu-stand-hero {
    background: #f7f2ea;
  }

  .menu-stand-hero__bg {
    position: relative;
    height: 330px;
    background-image:
      linear-gradient(
        180deg,
        rgba(247, 242, 234, 0) 0%,
        rgba(247, 242, 234, 0.9) 100%
      ),
      url("images/menu-stand-hero.jpg");
    background-size: cover;
    background-position: center right;
  }

  .menu-stand-hero__content {
    padding: 36px 20px 48px;
  }

  .menu-stand-hero__eyebrow {
    font-size: 13px;
    margin-bottom: 16px;
  }

  .menu-stand-hero h1 {
    font-size: 42px;
    line-height: 1.35;
  }

  .menu-stand-hero__lead {
    margin: 22px 0 20px;
    font-size: 22px;
  }

  .menu-stand-hero__text {
    font-size: 14px;
    line-height: 1.9;
  }

  .menu-stand-hero__features {
    grid-template-columns: repeat(2, 1fr);
    margin-top: 38px;
    gap: 26px 0;
  }

  .menu-stand-hero__feature {
    padding: 0 10px;
  }

  .menu-stand-hero__feature::after {
    display: none;
  }

  .menu-stand-hero__icon {
    width: 58px;
    height: 58px;
    font-size: 26px;
  }

  .menu-stand-hero__feature h3 {
    font-size: 13px;
  }

  .menu-stand-hero__feature p {
    font-size: 12px;
  }

  .menu-stand-hero__badge {
    top: 235px;
    right: 18px;
    bottom: auto;
    width: 124px;
    height: 124px;
  }

  .menu-stand-hero__badge span {
    font-size: 16px;
  }

  .menu-stand-hero__badge small {
    margin-top: 8px;
    font-size: 10px;
  }
}
.menu-stand-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: 760px;
  overflow: hidden;
  background: #f5f0e8;
  color: #111;
}

.menu-stand-hero__content {
  position: relative;
  z-index: 2;
  max-width: 720px;
  padding: 72px 0 54px max(6vw, 64px);
}

@media (max-width: 640px) {
  .menu-stand-hero {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  .menu-stand-hero__content {
    padding: 36px 20px 48px;
  }
}

.stand-size-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 80px 20px;
  background: #fbfaf7;
  color: #1c1c1c;
}

.stand-size-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.stand-size-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  margin-bottom: 28px;
}

.stand-size-heading span {
  display: block;
  width: 270px;
  height: 1px;
  background: #b8b0a6;
}

.stand-size-heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #111;
}

.stand-size-box {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid #ded6cc;
  border-radius: 10px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.9), rgba(248,244,238,0.9));
  box-shadow: 0 18px 45px rgba(50, 35, 20, 0.05);
}

.stand-size-card {
  position: relative;
  min-height: 470px;
  padding: 34px 28px 26px;
  display: flex;
  flex-direction: column;
}

.stand-size-card:not(:last-child) {
  border-right: 1px solid #ded6cc;
}

.stand-size-text h3 {
  margin: 0 0 18px;
  font-family: Georgia, "Times New Roman", "Yu Mincho", serif;
  font-size: 42px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #9a4f18;
}

.stand-size-text h3 span {
  margin-left: 6px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 18px;
  letter-spacing: 0.06em;
}

.stand-size-catch {
  margin: 0;
  font-size: 15px;
  line-height: 1.85;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.stand-size-image {
  position: absolute;
  right: 14px;
  top: 56px;
  width: 54%;
  height: 260px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  pointer-events: none;
}

.stand-size-image img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 18px 20px rgba(0,0,0,0.18));
}

.stand-size-detail {
  margin-top: auto;
  padding-top: 210px;
}

.stand-size-detail p {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.75;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.stand-size-price {
  margin: 18px 0 0;
  font-family: Georgia, "Times New Roman", "Yu Mincho", serif;
  font-size: 34px;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #9a4f18;
  text-align: center;
}

.stand-size-price span {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 14px;
  color: #1c1c1c;
}

.stand-size-note {
  margin: 14px 6px 0;
  text-align: right;
  font-size: 13px;
  letter-spacing: 0.04em;
  color: #5a5149;
}

/* タブレット */
@media (max-width: 1100px) {
  .stand-size-heading span {
    width: 160px;
  }

  .stand-size-box {
    grid-template-columns: repeat(2, 1fr);
  }

  .stand-size-card:nth-child(2) {
    border-right: none;
  }

  .stand-size-card:nth-child(1),
  .stand-size-card:nth-child(2) {
    border-bottom: 1px solid #ded6cc;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .stand-size-section {
    padding: 56px 16px;
  }

  .stand-size-heading {
    gap: 14px;
    margin-bottom: 24px;
  }

  .stand-size-heading span {
    width: 42px;
  }

  .stand-size-heading h2 {
    font-size: 22px;
    letter-spacing: 0.08em;
  }

  .stand-size-box {
    grid-template-columns: 1fr;
    border-radius: 8px;
  }

  .stand-size-card {
    min-height: 430px;
    padding: 30px 22px 26px;
    border-right: none !important;
    border-bottom: 1px solid #ded6cc;
  }

  .stand-size-card:last-child {
    border-bottom: none;
  }

  .stand-size-text h3 {
    font-size: 38px;
  }

  .stand-size-image {
    right: 8px;
    top: 70px;
    width: 58%;
    height: 230px;
  }

  .stand-size-detail {
    padding-top: 190px;
  }

  .stand-size-price {
    font-size: 31px;
  }

  .stand-size-note {
    text-align: left;
    font-size: 12px;
  }
}

.hand-size-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 70px 20px 90px;
  background: #fbfaf7;
  color: #1c1c1c;
}

.hand-size-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.hand-size-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  margin-bottom: 28px;
}

.hand-size-heading span {
  display: block;
  width: 270px;
  height: 1px;
  background: #b8b0a6;
}

.hand-size-heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #111;
}

.hand-size-box {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid #ded6cc;
  border-radius: 10px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.96), rgba(248,244,238,0.94));
  box-shadow: 0 18px 45px rgba(50, 35, 20, 0.05);
}

.hand-size-card {
  position: relative;
  min-height: 420px;
  padding: 34px 28px 26px;
  display: flex;
  flex-direction: column;
}

.hand-size-card:not(:last-child) {
  border-right: 1px solid #ded6cc;
}

.hand-size-text h3 {
  margin: 0 0 18px;
  font-family: Georgia, "Times New Roman", "Yu Mincho", serif;
  font-size: 42px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #9a4f18;
}

.hand-size-text h3 span {
  margin-left: 6px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 18px;
  letter-spacing: 0.06em;
}

.hand-size-text p {
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.hand-size-image {
  position: absolute;
  right: 12px;
  top: 58px;
  width: 58%;
  height: 250px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  pointer-events: none;
}

.hand-size-image img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 18px 22px rgba(0, 0, 0, 0.18));
}

.hand-size-detail {
  margin-top: auto;
  padding-top: 210px;
}

.hand-size-detail p {
  margin: 0;
  font-size: 13px;
  line-height: 1.75;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.hand-size-price {
  margin: 18px 0 0;
  font-family: Georgia, "Times New Roman", "Yu Mincho", serif;
  font-size: 34px;
  line-height: 1;
  letter-spacing: 0.03em;
  color: #9a4f18;
}

.hand-size-price span {
  margin-left: 4px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 14px;
  color: #1c1c1c;
}

/* タブレット */
@media (max-width: 1100px) {
  .hand-size-heading span {
    width: 160px;
  }

  .hand-size-box {
    grid-template-columns: repeat(2, 1fr);
  }

  .hand-size-card:nth-child(2) {
    border-right: none;
  }

  .hand-size-card:nth-child(1),
  .hand-size-card:nth-child(2) {
    border-bottom: 1px solid #ded6cc;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .hand-size-section {
    padding: 56px 16px 70px;
  }

  .hand-size-heading {
    gap: 14px;
    margin-bottom: 24px;
  }

  .hand-size-heading span {
    width: 42px;
  }

  .hand-size-heading h2 {
    font-size: 22px;
    letter-spacing: 0.08em;
  }

  .hand-size-box {
    grid-template-columns: 1fr;
    border-radius: 8px;
  }

  .hand-size-card {
    min-height: 400px;
    padding: 30px 22px 26px;
    border-right: none !important;
    border-bottom: 1px solid #ded6cc;
  }

  .hand-size-card:last-child {
    border-bottom: none;
  }

  .hand-size-text h3 {
    font-size: 36px;
  }

  .hand-size-text h3 span {
    font-size: 15px;
  }

  .hand-size-text p {
    font-size: 14px;
  }

  .hand-size-image {
    right: 6px;
    top: 68px;
    width: 60%;
    height: 220px;
  }

  .hand-size-detail {
    padding-top: 185px;
  }

  .hand-size-price {
    font-size: 31px;
  }
}

.menu-feature-section,
.menu-order-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #fbfaf7;
  color: #222;
}

.menu-feature-section {
  padding: 60px 20px 34px;
}

.menu-feature-inner,
.menu-order-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.menu-feature-box {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border: 1px solid #e2d9cf;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 14px 36px rgba(50, 35, 20, 0.04);
  overflow: hidden;
}

.menu-feature-item {
  position: relative;
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 20px;
  align-items: center;
  padding: 28px 26px;
}

.menu-feature-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 24px;
  width: 1px;
  height: calc(100% - 48px);
  background: #ded6cc;
}

.menu-feature-icon {
  font-size: 50px;
  line-height: 1;
  color: #a7642d;
  text-align: center;
}

.menu-feature-item h3 {
  margin: 0 0 10px;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #a15a22;
}

.menu-feature-item p {
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #444;
}

/* ご注文の流れ */
.menu-order-section {
  padding: 24px 20px 86px;
}

.menu-order-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 34px;
  margin-bottom: 34px;
}

.menu-order-heading span {
  display: block;
  flex: 1;
  height: 1px;
  background: #b8b0a6;
}

.menu-order-heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 32px;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: #111;
  white-space: nowrap;
}

.menu-order-list {
  display: grid;
  grid-template-columns: 1.1fr 32px 1.25fr 32px 1.25fr 32px 1.35fr 32px 1.25fr;
  align-items: center;
  gap: 14px;
}

.menu-order-item {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 20px;
  align-items: center;
}

.menu-order-icon {
  width: 88px;
  height: 88px;
  border: 1px solid #e0d5cc;
  border-radius: 50%;
  background: #fffdf9;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  line-height: 1;
  color: #111;
  box-shadow: 0 10px 24px rgba(50, 35, 20, 0.05);
}

.menu-order-text h3 {
  margin: 0 0 10px;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.menu-order-text p {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #444;
}

.menu-order-arrow {
  text-align: center;
  font-size: 30px;
  font-weight: 300;
  color: #9b958b;
}

/* タブレット */
@media (max-width: 1180px) {
  .menu-feature-box {
    grid-template-columns: repeat(2, 1fr);
  }

  .menu-feature-item::after {
    display: none;
  }

  .menu-feature-item {
    border-bottom: 1px solid #e2d9cf;
  }

  .menu-feature-item:nth-child(odd) {
    border-right: 1px solid #e2d9cf;
  }

  .menu-feature-item:nth-last-child(1) {
    border-bottom: none;
  }

  .menu-order-list {
    grid-template-columns: 1fr;
    max-width: 620px;
    margin: 0 auto;
    gap: 16px;
  }

  .menu-order-arrow {
    transform: rotate(90deg);
    font-size: 26px;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .menu-feature-section {
    padding: 44px 16px 28px;
  }

  .menu-feature-box {
    grid-template-columns: 1fr;
  }

  .menu-feature-item {
    grid-template-columns: 58px 1fr;
    gap: 16px;
    padding: 22px 20px;
    border-right: none !important;
  }

  .menu-feature-icon {
    font-size: 38px;
  }

  .menu-feature-item h3 {
    font-size: 15px;
  }

  .menu-feature-item p {
    font-size: 13px;
  }

  .menu-order-section {
    padding: 22px 16px 64px;
  }

  .menu-order-heading {
    gap: 16px;
    margin-bottom: 30px;
  }

  .menu-order-heading h2 {
    font-size: 24px;
    letter-spacing: 0.1em;
  }

  .menu-order-item {
    grid-template-columns: 76px 1fr;
    gap: 16px;
  }

  .menu-order-icon {
    width: 72px;
    height: 72px;
    font-size: 30px;
  }

  .menu-order-text h3 {
    font-size: 14px;
  }

  .menu-order-text p {
    font-size: 13px;
  }
}

.qr-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 38px 46px;
  background: linear-gradient(90deg, #fbfaf7 0%, #f3f1ec 100%);
  color: #0b1e3a;
}

.qr-hero__inner {
  max-width: 1440px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 0.9fr 1.8fr;
  gap: 42px;
  align-items: center;
}

.qr-hero__eyebrow {
  margin: 0 0 22px;
  font-size: 22px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #0b1e3a;
}

.qr-hero h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(64px, 6vw, 104px);
  line-height: 0.95;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #10264b;
}

.qr-hero__line {
  width: 150px;
  height: 1px;
  margin: 30px 0 24px;
  background: #b87346;
}

.qr-hero__lead {
  margin: 0 0 40px;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #0b1e3a;
}

.qr-hero__text {
  margin: 0;
  font-size: 16px;
  line-height: 2.05;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #102033;
}

.qr-hero__visual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.qr-hero__image {
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(15, 28, 45, 0.08);
}

.qr-hero__image img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  display: block;
}

.qr-hero__image--main img {
  object-position: center center;
}

.qr-hero__image--sub img {
  object-position: center center;
}

/* タブレット */
@media (max-width: 1024px) {
  .qr-hero {
    padding: 42px 24px;
  }

  .qr-hero__inner {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .qr-hero__content {
    max-width: 620px;
  }

  .qr-hero__image img {
    height: 420px;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .qr-hero {
    padding: 34px 18px 46px;
  }

  .qr-hero__eyebrow {
    font-size: 15px;
    margin-bottom: 18px;
  }

  .qr-hero h1 {
    font-size: 54px;
  }

  .qr-hero__line {
    width: 110px;
    margin: 24px 0 20px;
  }

  .qr-hero__lead {
    margin-bottom: 26px;
    font-size: 19px;
  }

  .qr-hero__text {
    font-size: 14px;
    line-height: 1.9;
  }

  .qr-hero__visual {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .qr-hero__image img {
    height: 300px;
  }
}
.qr-feature-section {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background: #faf8f5;
    padding: 50px 20px;
}

.qr-feature-inner {
    max-width: 1440px;
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(4, 1fr);

    border-top: 1px solid #d9d5cf;
    border-bottom: 1px solid #d9d5cf;
}

.qr-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 22px;

    padding: 28px 26px;
    position: relative;
}

.qr-feature-item:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: 25px;
    width: 1px;
    height: calc(100% - 50px);
    background: #e1ddd7;
}

.qr-feature-icon {
    width: 58px;
    height: 58px;
    border-radius: 50%;

    background: #08294c;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;
}

.qr-feature-icon i {
    color: #fff;
    font-size: 22px;
}

.qr-feature-content h3 {
    margin: 0 0 12px;

    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;

    color: #08294c;
}

.qr-feature-content p {
    margin: 0;

    font-size: 15px;
    line-height: 2;

    color: #333;
}

.qr-variation-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 56px 28px 70px;
  background: #fbfaf7;
  color: #102033;
}

.qr-variation-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.qr-variation-title {
  margin: 0 0 26px;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #0b1e3a;
}

.qr-variation-layout {
  display: grid;
  grid-template-columns: 1fr 250px;
  gap: 28px;
  align-items: start;
}

.qr-variation-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.qr-variation-card {
  padding: 18px 18px 20px;
  border: 1px solid #ddd8d1;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 30px rgba(15, 28, 45, 0.04);
}

.qr-variation-card h3 {
  margin: 0 0 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #ddd8d1;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #0b1e3a;
}

.qr-variation-card img {
  width: 100%;
  height: 250px;
  object-fit: contain;
  display: block;
  margin-bottom: 16px;
}

.qr-variation-card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #222;
}

.qr-spec-box {
  padding: 28px 24px;
  background: rgba(255, 255, 255, 0.65);
  border-left: 1px solid #d9d4cc;
}

.qr-spec-box h3 {
  margin: 0 0 18px;
  font-size: 17px;
  font-weight: 700;
  color: #0b1e3a;
}

.qr-spec-box dl {
  margin: 0;
}

.qr-spec-box dt {
  margin-top: 14px;
  font-size: 13px;
  font-weight: 700;
  color: #333;
}

.qr-spec-box dd {
  margin: 4px 0 0;
  font-size: 13px;
  line-height: 1.8;
  color: #333;
}

.qr-spec-box hr {
  border: none;
  border-top: 1px solid #d9d4cc;
  margin: 28px 0;
}

.qr-spec-note {
  margin: 28px 0 0;
  font-size: 12px;
  line-height: 1.9;
  color: #555;
}

.qr-custom-box {
  margin-top: 22px;
  padding: 24px 28px;
  border: 1px solid #ddd8d1;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.76);
  display: grid;
  grid-template-columns: 70px 1fr 1.4fr;
  gap: 24px;
  align-items: center;
}

.qr-custom-icon {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #a7642d;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
}

.qr-custom-text {
  padding-right: 24px;
  border-right: 1px solid #d9d4cc;
}

.qr-custom-text h3 {
  margin: 0 0 10px;
  font-size: 21px;
  color: #0b1e3a;
}

.qr-custom-text p {
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  font-weight: 600;
}

.qr-custom-icons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  text-align: center;
}

.qr-custom-icons span {
  font-size: 12px;
  color: #8f5a35;
}

/* タブレット */
@media (max-width: 1180px) {
  .qr-variation-layout {
    grid-template-columns: 1fr;
  }

  .qr-variation-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .qr-spec-box {
    border-left: none;
    border: 1px solid #ddd8d1;
    border-radius: 10px;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .qr-variation-section {
    padding: 44px 16px 58px;
  }

  .qr-variation-title {
    font-size: 20px;
  }

  .qr-variation-grid {
    grid-template-columns: 1fr;
  }

  .qr-variation-card img {
    height: 230px;
  }

  .qr-custom-box {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 24px 20px;
  }

  .qr-custom-text {
    padding-right: 0;
    border-right: none;
  }

  .qr-custom-icons {
    grid-template-columns: repeat(2, 1fr);
    text-align: left;
  }
}

body.page .entry-content > .clinic-card-hero {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  max-width: 100vw;
  min-height: 720px;
  overflow: hidden;

  background-image:
    linear-gradient(
      90deg,
      rgba(245,242,237,.96) 0%,
      rgba(245,242,237,.88) 34%,
      rgba(245,242,237,.42) 52%,
      rgba(245,242,237,0) 70%
    ),
    url("/store/wp-content/themes/welcart_basic_child/assets/img/medcard/medcard-hero.webp");

  background-size: cover;
  background-position:right center; /* ←ここ */
  background-repeat: no-repeat;
}

.clinic-card-hero__inner{
    width:100%;
    max-width:none;
    min-height:720px;
    display:flex;
    align-items:center;
}

.clinic-card-hero__content{
    width:45%;
    max-width:700px;
    margin-left:5vw;
}

.clinic-card-hero__eyebrow {
  margin: 0 0 28px;
  font-size: 25px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #071b35;
}

.clinic-card-hero h1 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(60px, 5vw, 100px);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #071b35;
}

.clinic-card-hero__sub {
  margin: 24px 0 32px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(32px, 3vw, 48px);
  line-height: 1;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: #b78662;
}

.clinic-card-hero__line {
  width: 130px;
  height: 1px;
  margin: 0 0 44px;
  background: #b78662;
}

.clinic-card-hero__lead {
  margin: 0 0 28px;
  font-size: 30px;
  line-height: 1.7;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #071b35;
}

.clinic-card-hero__text {
  margin: 0;
  font-size: 17px;
  line-height: 2.05;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #102033;
}

/* タブレット */
@media (max-width: 1024px) {
  .clinic-card-hero,
  .clinic-card-hero__inner {
    min-height: 620px;
  }

  .clinic-card-hero__content {
    max-width: 560px;
    padding-left: 28px;
  }

  .clinic-card-hero__bg {
    background-position: center right;
  }

  .clinic-card-hero__lead {
    font-size: 25px;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .clinic-card-hero {
    min-height: auto;
    background: #f7f5f0;
  }

  .clinic-card-hero__bg {
    position: relative;
    height: 320px;
    background-image:
      linear-gradient(
        180deg,
        rgba(247, 245, 240, 0) 0%,
        rgba(247, 245, 240, 0.95) 100%
      ),
      url("images/clinic-card-hero.jpg");
    background-size: cover;
    background-position: center right;
  }

 .clinic-card-hero__inner{
    width:100%;
    max-width:1500px;
    margin:0 auto;
    min-height:720px;
    display:flex;
    align-items:center;
}

.clinic-card-hero__content{
    max-width:650px;
    padding-left:80px;
    padding-right:40px;
    box-sizing:border-box;
}

  .clinic-card-hero__eyebrow {
    margin-bottom: 18px;
    font-size: 15px;
  }

  .clinic-card-hero h1 {
    font-size: 58px;
  }

  .clinic-card-hero__sub {
    margin: 18px 0 22px;
    font-size: 28px;
  }

  .clinic-card-hero__line {
    width: 100px;
    margin-bottom: 30px;
  }

  .clinic-card-hero__lead {
    margin-bottom: 18px;
    font-size: 21px;
  }

  .clinic-card-hero__text {
    font-size: 14px;
    line-height: 1.9;
  }
}

.clinic-feature-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 44px 20px;
  background: #fbfaf7;
  color: #071b35;
}

.clinic-feature-inner {
  max-width: 1440px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid #d9d5cf;
  border-bottom: 1px solid #d9d5cf;
}

.clinic-feature-item {
  position: relative;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 18px;
  align-items: start;
  padding: 28px 24px;
}

.clinic-feature-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 34px;
  width: 1px;
  height: calc(100% - 68px);
  background: #ded8cf;
}

.clinic-feature-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #071b35;
  color: #fff;
  border: 2px solid rgba(255,255,255,0.8);
  box-shadow: 0 0 0 1px rgba(7,27,53,0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
}

.clinic-feature-item h3 {
  margin: 0 0 12px;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #071b35;
}

.clinic-feature-item p {
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #333a44;
}

/* タブレット */
@media (max-width: 1180px) {
  .clinic-feature-inner {
    grid-template-columns: repeat(2, 1fr);
    border: 1px solid #ded8cf;
    border-radius: 10px;
    overflow: hidden;
  }

  .clinic-feature-item::after {
    display: none;
  }

  .clinic-feature-item {
    border-bottom: 1px solid #ded8cf;
  }

  .clinic-feature-item:nth-child(odd) {
    border-right: 1px solid #ded8cf;
  }

  .clinic-feature-item:last-child {
    border-bottom: none;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .clinic-feature-section {
    padding: 34px 16px;
  }

  .clinic-feature-inner {
    grid-template-columns: 1fr;
  }

  .clinic-feature-item {
    grid-template-columns: 52px 1fr;
    gap: 16px;
    padding: 22px 18px;
    border-right: none !important;
  }

  .clinic-feature-icon {
    width: 46px;
    height: 46px;
    font-size: 17px;
  }

  .clinic-feature-item h3 {
    font-size: 15px;
  }

  .clinic-feature-item p {
    font-size: 13px;
  }
}

.clinic-type-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 62px 24px 50px;
  background: #fbfaf7;
  color: #071b35;
}

.clinic-type-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.clinic-type-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 34px;
  margin-bottom: 38px;
}

.clinic-type-heading span {
  display: block;
  flex: 1;
  height: 1px;
  background: #aeb4ba;
}

.clinic-type-heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.16em;
  white-space: nowrap;
}

.clinic-type-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}

.clinic-type-card {
  padding: 34px 38px 28px;
  border: 1px solid #ded9d2;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 16px 38px rgba(15, 28, 45, 0.04);
}

.clinic-type-title h3 {
  margin: 0 0 10px;
  font-size: 25px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.clinic-type-title p {
  margin: 0 0 32px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: #b78662;
}

.clinic-type-body {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 34px;
  align-items: center;
}

.clinic-type-image img {
  width: 100%;
  display: block;
  border-radius: 12px;
  filter: drop-shadow(0 18px 24px rgba(0, 0, 0, 0.16));
}

.clinic-type-desc {
  margin: 0 0 26px;
  font-size: 16px;
  line-height: 2;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #333a44;
}

.clinic-type-recommend {
  display: inline-block;
  min-width: 230px;
  margin-bottom: 18px;
  padding: 12px 22px;
  border: 1px solid #ded4ca;
  background: rgba(255, 255, 255, 0.7);
  color: #b78662;
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.06em;
}

.clinic-type-text ul {
  margin: 0;
  padding-left: 1.1em;
}

.clinic-type-text li {
  margin-bottom: 8px;
  font-size: 15px;
  line-height: 1.7;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #333a44;
}

.clinic-type-tags {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 34px;
  padding-top: 24px;
}

.clinic-type-tags span {
  position: relative;
  padding-left: 34px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.clinic-type-tags span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 24px;
  height: 24px;
  border: 1px solid #9fa8b0;
  border-radius: 50%;
  transform: translateY(-50%);
}

.clinic-type-note {
  margin: 24px 0 0;
  text-align: center;
  font-size: 14px;
  line-height: 1.8;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #333a44;
}

/* タブレット */
@media (max-width: 1100px) {
  .clinic-type-grid {
    grid-template-columns: 1fr;
  }

  .clinic-type-body {
    grid-template-columns: 0.9fr 1fr;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .clinic-type-section {
    padding: 48px 16px 42px;
  }

  .clinic-type-heading {
    gap: 16px;
    margin-bottom: 28px;
  }

  .clinic-type-heading h2 {
    font-size: 23px;
  }

  .clinic-type-card {
    padding: 26px 20px 24px;
  }

  .clinic-type-title h3 {
    font-size: 20px;
  }

  .clinic-type-title p {
    margin-bottom: 24px;
    font-size: 16px;
  }

  .clinic-type-body {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .clinic-type-desc {
    font-size: 14px;
    line-height: 1.9;
  }

  .clinic-type-recommend {
    min-width: 100%;
    font-size: 14px;
  }

  .clinic-type-text li {
    font-size: 14px;
  }

  .clinic-type-tags {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .clinic-type-note {
    text-align: left;
    font-size: 12px;
  }
}

.clinic-use-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 64px 24px 78px;
  background: #fbfaf7;
  color: #071b35;
}

.clinic-use-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.clinic-use-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 34px;
  margin-bottom: 36px;
}

.clinic-use-heading span {
  display: block;
  flex: 1;
  height: 1px;
  background: #aeb4ba;
}

.clinic-use-heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.16em;
  white-space: nowrap;
}

.clinic-use-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 22px;
  padding-bottom: 42px;
  border-bottom: 1px solid #d9d5cf;
}

.clinic-use-card img {
  width: 100%;
  height: 190px;
  display: block;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(15, 28, 45, 0.06);
}

.clinic-use-card h3 {
  margin: 16px 0 0;
  text-align: center;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.clinic-bottom-layout {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 42px;
  margin-top: 34px;
}

.clinic-spec-block {
  padding-right: 36px;
  border-right: 1px solid #d9d5cf;
}

.clinic-spec-block h2,
.clinic-order-block h2 {
  margin: 0 0 26px;
  font-size: 27px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.clinic-spec-block dl {
  margin: 0;
}

.clinic-spec-block div {
  display: grid;
}

.clinic-spec-block dt,
.clinic-spec-block dd {
  font-size: 15px;
  line-height: 1.9;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.clinic-spec-block dt {
  float: left;
  width: 72px;
  clear: both;
  color: #071b35;
}

.clinic-spec-block dd {
  margin: 0 0 8px 82px;
  color: #333a44;
}

.clinic-spec-block p {
  margin: 18px 0 0;
  font-size: 13px;
  line-height: 1.8;
  font-weight: 600;
  color: #333a44;
}

.clinic-order-flow {
  display: grid;
  grid-template-columns: 1fr 34px 1fr 34px 1fr 34px 1fr 34px 1fr;
  gap: 10px;
  align-items: start;
}

.clinic-order-item {
  text-align: center;
}

.clinic-order-icon {
  width: 92px;
  height: 92px;
  margin: 0 auto 18px;
  border: 1px solid #9fa8b0;
  border-radius: 50%;
  background: #fffdf9;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
  color: #071b35;
}

.clinic-order-item h3 {
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.clinic-order-item p {
  margin: 0;
  font-size: 13px;
  line-height: 1.85;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #333a44;
}

.clinic-order-arrow {
  padding-top: 28px;
  text-align: center;
  font-size: 30px;
  color: #7b858e;
}

/* タブレット */
@media (max-width: 1180px) {
  .clinic-use-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .clinic-bottom-layout {
    grid-template-columns: 1fr;
  }

  .clinic-spec-block {
    padding-right: 0;
    border-right: none;
    border-bottom: 1px solid #d9d5cf;
    padding-bottom: 32px;
  }

  .clinic-order-flow {
    grid-template-columns: 1fr;
    max-width: 520px;
  }

  .clinic-order-arrow {
    padding-top: 0;
    transform: rotate(90deg);
  }
}

/* スマホ */
@media (max-width: 640px) {
  .clinic-use-section {
    padding: 48px 16px 58px;
  }

  .clinic-use-heading {
    gap: 16px;
    margin-bottom: 28px;
  }

  .clinic-use-heading h2 {
    font-size: 23px;
  }

  .clinic-use-grid {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-bottom: 34px;
  }

  .clinic-use-card img {
    height: 190px;
  }

  .clinic-use-card h3 {
    font-size: 16px;
  }

  .clinic-bottom-layout {
    gap: 32px;
  }

  .clinic-spec-block h2,
  .clinic-order-block h2 {
    font-size: 23px;
  }

  .clinic-spec-block dt,
  .clinic-spec-block dd {
    font-size: 13px;
  }

  .clinic-spec-block dt {
    width: 64px;
  }

  .clinic-spec-block dd {
    margin-left: 72px;
  }

  .clinic-order-icon {
    width: 78px;
    height: 78px;
    font-size: 28px;
  }
}

.neon-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: 720px;
  overflow: hidden;
  background: #080807;
  color: #fff;
}

.neon-hero__bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.94) 0%,
      rgba(0, 0, 0, 0.86) 24%,
      rgba(0, 0, 0, 0.56) 46%,
      rgba(0, 0, 0, 0.18) 70%,
      rgba(0, 0, 0, 0.08) 100%
    ),
    url("images/neon-hero.jpg");
  background-size: cover;
  background-position: center right;
}

.neon-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 1440px;
  min-height: 720px;
  margin: 0 auto;
  display: flex;
  align-items: center;
}

.neon-hero__content {
  max-width: 710px;
  padding: 72px 20px 70px 48px;
}

.neon-hero__eyebrow {
  margin: 0 0 38px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: #a86b3d;
}

.neon-hero h1 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(44px, 4.6vw, 76px);
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #fff;
  text-shadow:
    0 0 10px rgba(255, 255, 255, 0.18),
    0 0 28px rgba(255, 177, 105, 0.22);
}

.neon-hero__text {
  margin: 38px 0 0;
  font-size: 18px;
  line-height: 2.2;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.88);
}

.neon-hero__features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 660px;
  margin-top: 58px;
}

.neon-hero__feature {
  position: relative;
  text-align: center;
  padding: 0 28px;
}

.neon-hero__feature:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 18px;
  width: 1px;
  height: 120px;
  background: rgba(255, 255, 255, 0.28);
}

.neon-hero__icon {
  margin: 0 auto 18px;
  font-size: 46px;
  line-height: 1;
  color: #fff;
  text-shadow:
    0 0 12px rgba(255, 255, 255, 0.35),
    0 0 22px rgba(255, 180, 105, 0.35);
}

.neon-hero__feature h3 {
  margin: 0 0 12px;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #fff;
}

.neon-hero__feature p {
  margin: 0;
  font-size: 13px;
  line-height: 1.8;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.82);
}

/* タブレット */
@media (max-width: 1024px) {
  .neon-hero,
  .neon-hero__inner {
    min-height: 650px;
  }

  .neon-hero__content {
    max-width: 650px;
    padding-left: 28px;
  }

  .neon-hero h1 {
    font-size: 50px;
  }

  .neon-hero__text {
    font-size: 16px;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .neon-hero {
    min-height: auto;
  }

  .neon-hero__bg {
    position: relative;
    height: 360px;
    background-image:
      linear-gradient(
        180deg,
        rgba(8, 8, 7, 0.05) 0%,
        rgba(8, 8, 7, 0.95) 100%
      ),
      url("images/neon-hero.jpg");
    background-size: cover;
    background-position: center right;
  }

  .neon-hero__inner {
    min-height: auto;
    display: block;
  }

  .neon-hero__content {
    padding: 34px 20px 52px;
  }

  .neon-hero__eyebrow {
    margin-bottom: 22px;
    font-size: 15px;
  }

  .neon-hero h1 {
    font-size: 36px;
    line-height: 1.55;
  }

  .neon-hero__text {
    margin-top: 26px;
    font-size: 14px;
    line-height: 2;
  }

  .neon-hero__features {
    grid-template-columns: 1fr;
    margin-top: 38px;
    gap: 24px;
  }

  .neon-hero__feature {
    padding: 0;
  }

  .neon-hero__feature:not(:last-child)::after {
    display: none;
  }

  .neon-hero__icon {
    font-size: 38px;
  }

  .neon-hero__feature h3 {
    font-size: 15px;
  }

  .neon-hero__feature p {
    font-size: 13px;
  }
}

.neon-size-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 70px 24px 90px;
  background: #fbfaf7;
  color: #111;
}

.neon-size-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.neon-size-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  margin-bottom: 38px;
}

.neon-size-heading span {
  width: 64px;
  height: 1px;
  background: #b8b0a8;
}

.neon-size-heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 34px;
  font-weight: 500;
  letter-spacing: 0.16em;
}

.neon-size-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
}

.neon-size-card {
  position: relative;
  min-height: 690px;
  padding: 26px 38px 86px;
  border: 1px solid #777;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.76);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.05);
}

.neon-size-title {
  text-align: center;
  margin-bottom: 26px;
}

.neon-size-title h3 {
  margin: 0;
  font-family: "Arial Narrow", Arial, sans-serif;
  font-size: 36px;
  line-height: 1;
  letter-spacing: 0.08em;
  font-weight: 800;
}

.neon-size-title p {
  margin: 8px 0 0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.neon-size-visual {
  position: relative;
  height: 220px;
  margin-bottom: 24px;
}

.neon-size-box-shape {
  position: absolute;
  left: 50%;
  top: 60px;
  transform: translateX(-50%);
  height: 118px;
  border-radius: 8px;
  background: linear-gradient(145deg, #222, #3b3b3b);
  box-shadow:
    inset 0 0 16px rgba(255,255,255,0.06),
    0 18px 28px rgba(0,0,0,0.18);
}

.neon-size-box-shape--compact {
  width: 230px;
}

.neon-size-box-shape--middle {
  width: 260px;
}

.neon-size-box-shape--large {
  width: 300px;
}

.neon-size-measure {
  position: absolute;
  font-size: 15px;
  font-weight: 600;
  color: #777;
  letter-spacing: 0.04em;
}

.neon-size-measure--w {
  left: 50%;
  top: 20px;
  transform: translateX(-50%);
  padding: 0 38px;
  white-space: nowrap;
}

.neon-size-measure--w::before,
.neon-size-measure--w::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 44px;
  height: 1px;
  background: #aaa;
}

.neon-size-measure--w::before {
  right: 100%;
}

.neon-size-measure--w::after {
  left: 100%;
}

.neon-size-measure--h {
  left: 18px;
  top: 104px;
  transform: translateY(-50%);
  writing-mode: horizontal-tb;
}

.neon-size-measure--h::before,
.neon-size-measure--h::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 1px;
  height: 42px;
  background: #aaa;
  transform: translateX(-50%);
}

.neon-size-measure--h::before {
  bottom: 100%;
}

.neon-size-measure--h::after {
  top: 100%;
}

.neon-size-desc {
  margin: 0 0 28px;
  text-align: center;
  font-size: 15px;
  line-height: 1.7;
  font-weight: 600;
  color: #555;
}

.neon-size-price {
  margin: 0 0 28px;
  text-align: center;
  font-size: 20px;
  font-weight: 600;
}

.neon-size-price strong {
  font-size: 38px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.neon-size-price span {
  font-size: 15px;
}

.neon-size-list {
  margin: 0;
}

.neon-size-list div {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  min-height: 38px;
  padding: 8px 14px;
  background: rgba(0, 0, 0, 0.035);
}

.neon-size-list div:nth-child(even) {
  background: rgba(0, 0, 0, 0.015);
}

.neon-size-list dt,
.neon-size-list dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 600;
}

.neon-size-list dd {
  text-align: right;
}

.neon-size-badge {
  position: absolute;
  left: 50%;
  bottom: -38px;
  transform: translateX(-50%);
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: #000;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.08em;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.2);
}

/* タブレット */
@media (max-width: 1100px) {
  .neon-size-grid {
    grid-template-columns: 1fr;
    max-width: 560px;
    margin: 0 auto;
    gap: 70px;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .neon-size-section {
    padding: 52px 16px 80px;
  }

  .neon-size-heading {
    gap: 18px;
  }

  .neon-size-heading h2 {
    font-size: 26px;
  }

  .neon-size-heading span {
    width: 42px;
  }

  .neon-size-card {
    min-height: auto;
    padding: 24px 20px 78px;
  }

  .neon-size-title h3 {
    font-size: 30px;
  }

  .neon-size-visual {
    height: 200px;
  }

  .neon-size-box-shape--compact,
  .neon-size-box-shape--middle,
  .neon-size-box-shape--large {
    width: 220px;
  }

  .neon-size-measure--h {
    left: 0;
    font-size: 13px;
  }

  .neon-size-price strong {
    font-size: 32px;
  }

  .neon-size-list dt,
  .neon-size-list dd {
    font-size: 13px;
  }
}

.neon-color-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 70px 24px 86px;
  background: #fbfaf7;
  color: #111;
}

.neon-color-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.neon-color-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  margin-bottom: 44px;
}

.neon-color-heading span {
  flex: 1;
  height: 1px;
  background: #b8b0a8;
}

.neon-color-heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 34px;
  font-weight: 500;
  letter-spacing: 0.16em;
  white-space: nowrap;
}

.neon-color-layout {
  display: grid;
  grid-template-columns: 680px 1fr;
  gap: 72px;
  align-items: center;
  padding-bottom: 62px;
  border-bottom: 1px solid #d4cec6;
}

.neon-color-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px 18px;
}

.neon-color-item img {
  width: 100%;
  height: 112px;
  display: block;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12);
}

.neon-color-item p {
  margin: 8px 0 0;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.neon-color-text > p {
  margin: 0;
  font-size: 17px;
  line-height: 2.1;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #333;
}

.neon-color-message {
  max-width: 430px;
  margin: 72px auto 0;
  padding: 28px 34px;
  border: 1px solid #bfb8b0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.62);
  text-align: center;
}

.neon-color-message h3 {
  margin: 0 0 18px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.neon-color-message p {
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  font-weight: 600;
  color: #444;
}

.neon-set-area {
  display: grid;
  grid-template-columns: 420px 1fr 330px;
  gap: 48px;
  align-items: center;
  padding-top: 58px;
}

.neon-set-text p {
  margin: 0 0 28px;
  font-size: 17px;
  line-height: 2;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.neon-set-text ul {
  margin: 0;
  padding-left: 1.2em;
}

.neon-set-text li {
  margin-bottom: 10px;
  font-size: 15px;
  line-height: 1.7;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.neon-set-visual {
  position: relative;
  min-height: 260px;
}

.neon-board {
  position: absolute;
  left: 50px;
  top: 36px;
  width: 360px;
  height: 150px;
  border-radius: 10px;
  background: rgba(230, 230, 230, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
}

.neon-board span {
  font-family: Arial, sans-serif;
  font-size: 46px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #fff;
  -webkit-text-stroke: 2px #1492ff;
  text-shadow:
    0 0 8px rgba(20, 146, 255, 0.75),
    0 0 18px rgba(20, 146, 255, 0.55);
}

.neon-parts-label {
  position: absolute;
  right: 0;
  top: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.neon-parts-label li {
  position: relative;
  margin-bottom: 26px;
  padding-left: 82px;
  font-size: 15px;
  line-height: 1.6;
  font-weight: 700;
}

.neon-parts-label li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  width: 70px;
  height: 1px;
  background: #777;
}

.neon-option-box {
  padding: 24px 22px 18px;
  background: #eefafa;
  text-align: center;
}

.neon-option-box h3 {
  margin: 0 0 18px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 26px;
  letter-spacing: 0.12em;
}

.neon-option-box p {
  margin: 0 0 22px;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.neon-option-box img {
  max-width: 190px;
  width: 100%;
  display: block;
  margin: 0 auto 18px;
}

.neon-option-box small {
  display: block;
  font-size: 13px;
  line-height: 1.8;
  font-weight: 600;
}

/* タブレット */
@media (max-width: 1100px) {
  .neon-color-layout {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .neon-set-area {
    grid-template-columns: 1fr;
  }

  .neon-set-visual {
    min-height: 300px;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .neon-color-section {
    padding: 52px 16px 64px;
  }

  .neon-color-heading {
    gap: 18px;
  }

  .neon-color-heading h2 {
    font-size: 26px;
  }

  .neon-color-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 18px 12px;
  }

  .neon-color-item img {
    height: 92px;
  }

  .neon-color-text > p {
    font-size: 14px;
    line-height: 1.9;
  }

  .neon-color-message {
    margin-top: 34px;
    padding: 24px 18px;
  }

  .neon-set-text p {
    font-size: 15px;
  }

  .neon-board {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: 130px;
  }

  .neon-board span {
    font-size: 34px;
  }

  .neon-parts-label {
    position: relative;
    right: auto;
    top: auto;
    margin-top: 26px;
  }

  .neon-parts-label li {
    padding-left: 0;
    margin-bottom: 12px;
  }

  .neon-parts-label li::before {
    display: none;
  }
}

.neon-design-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 58px 24px 70px;
  background: #fbfaf7;
  color: #111;
}

.neon-design-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.neon-design-area {
  display: grid;
  grid-template-columns: 430px 1fr;
  gap: 58px;
  align-items: center;
  padding-top: 28px;
  padding-bottom: 54px;
  border-top: 1px solid #b8b0a8;
  border-bottom: 1px solid #b8b0a8;
}

.neon-design-text h2 {
  margin: 0 0 28px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 31px;
  line-height: 1.55;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #071b35;
}

.neon-design-text p {
  margin: 0 0 22px;
  font-size: 15px;
  line-height: 1.9;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #333;
}

.neon-design-text p:last-child {
  margin-bottom: 0;
}

.neon-design-visual {
  display: grid;
  grid-template-columns: 1fr 86px 1fr;
  gap: 28px;
  align-items: center;
  text-align: center;
}

.neon-design-before p,
.neon-design-after p {
  margin: 0 0 28px;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #555;
}

.neon-design-before img,
.neon-design-after img {
  width: 100%;
  max-height: 250px;
  object-fit: contain;
  display: block;
}

.neon-design-arrow {
  font-size: 68px;
  font-weight: 700;
  color: #ffd400;
  text-shadow: 0 4px 10px rgba(255, 212, 0, 0.25);
}

.neon-design-after span {
  display: block;
  margin-top: 22px;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #22aef2;
}

.neon-spec-area {
  padding-top: 32px;
}

.neon-spec-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 22px;
}

.neon-spec-heading span {
  flex: 1;
  height: 1px;
  background: #b8b0a8;
}

.neon-spec-heading h2 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 34px;
  font-weight: 500;
  letter-spacing: 0.14em;
  white-space: nowrap;
}

.neon-spec-heading p {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 600;
  color: #555;
  white-space: nowrap;
}

.neon-spec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 42px;
}

.neon-spec-table dl {
  margin: 0;
}

.neon-spec-table dl > div {
  display: grid;
  grid-template-columns: 260px 1fr;
  border-bottom: 2px solid #fbfaf7;
}

.neon-spec-table dt,
.neon-spec-table dd {
  margin: 0;
  padding: 18px 22px;
  font-size: 15px;
  line-height: 1.75;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.neon-spec-table dt {
  background: #eeece8;
  color: #333;
}

.neon-spec-table dd {
  color: #333;
}

/* タブレット */
@media (max-width: 1100px) {
  .neon-design-area {
    grid-template-columns: 1fr;
  }

  .neon-spec-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

/* スマホ */
@media (max-width: 640px) {
  .neon-design-section {
    padding: 46px 16px 56px;
  }

  .neon-design-text h2 {
    font-size: 24px;
  }

  .neon-design-visual {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .neon-design-arrow {
    font-size: 48px;
    transform: rotate(90deg);
  }

  .neon-design-after span {
    font-size: 22px;
  }

  .neon-spec-heading {
    flex-wrap: wrap;
  }

  .neon-spec-heading span {
    display: none;
  }

  .neon-spec-heading h2 {
    font-size: 26px;
  }

  .neon-spec-heading p {
    width: 100%;
    text-align: center;
  }

  .neon-spec-table dl > div {
    grid-template-columns: 1fr;
  }

  .neon-spec-table dt,
  .neon-spec-table dd {
    padding: 14px 16px;
    font-size: 13px;
  }
}


.mat-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: #f5f1ea;
}

.mat-hero__visual {
  min-height: 620px !important;
  background-image:
    linear-gradient(
      90deg,
      #f5f1ea 0%,
      rgba(245,241,234,.85) 55%,
      rgba(245,241,234,0) 100%
    ),
    url("https://hanford.jp/store/wp-content/themes/welcart_basic_child/assets/img/mat/mat-hero.webp") !important;

  background-size: cover !important;
  background-position: right center !important;
  background-repeat: no-repeat !important;
}
.mat-hero__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 80px 48px;
}

.mat-hero__content {
  max-width: 620px;
  padding: 70px 20px 64px 48px;
}

.mat-hero__eyebrow {
  margin: 0 0 22px;
  font-size: 15px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.mat-hero h1 {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(43px, 4.5vw, 72px);
  line-height: 1.45;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #111;
}

.mat-hero__text {
  margin: 34px 0 0;
  font-size: 15px;
  line-height: 2.1;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #222;
}

.mat-hero__features {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  max-width: 610px;
  margin-top: 48px;
}

.mat-hero__feature {
  position: relative;
  text-align: center;
  padding: 0 18px;
}

.mat-hero__feature:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 18px;
  width: 1px;
  height: 105px;
  background: rgba(50, 45, 40, 0.2);
}

.mat-hero__icon {
  margin: 0 auto 14px;
  font-size: 38px;
  line-height: 1;
  color: #9a6a37;
}

.mat-hero__feature h3 {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.mat-hero__feature p {
  margin: 0;
  font-size: 11px;
  line-height: 1.75;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #333;
}

/* タブレット */
@media (max-width: 1024px) {
  .mat-hero,
  .mat-hero__inner {
    min-height: 640px;
  }

  .mat-hero__content {
    max-width: 590px;
    padding-left: 28px;
  }

  .mat-hero h1 {
    font-size: 52px;
  }
}

/* スマホ */
@media (max-width: 768px) {

  .mat-hero {
    width: 100%;
    margin-left: 0;
    background: #f5f1ea;
  }

  .mat-hero__visual {
    min-height: auto;
    background-image:
      linear-gradient(
        180deg,
        rgba(245,241,234,0.96) 0%,
        rgba(245,241,234,0.92) 42%,
        rgba(245,241,234,0.55) 68%,
        rgba(245,241,234,0.12) 100%
      ),
      url("https://hanford.jp/store/wp-content/themes/welcart_basic_child/assets/img/mat/mat-hero.webp");

    background-size: cover;
    background-position: center bottom;
    background-repeat: no-repeat;
  }

  .mat-hero__inner {
    padding: 96px 22px 360px;
  }

  .mat-hero__content {
    max-width: 100%;
  }

  .mat-hero h1 {
    font-size: 38px;
    line-height: 1.35;
  }

  .mat-hero__text {
    font-size: 14px;
    line-height: 2;
  }

  .mat-hero__text br {
    display: none;
  }

  .mat-hero__features {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-top: 36px;
  }

  .mat-hero__feature {
    padding: 18px 12px;
  }

  .mat-hero__feature h3 {
    font-size: 14px;
  }

  .mat-hero__feature p {
    font-size: 12px;
    line-height: 1.6;
  }
}

/* ==============================
   マットタイプ一覧
============================== */

.mat-type-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: #fff;
  padding: 70px 24px 60px;
}

.mat-type-inner {
  max-width: 1500px;
  margin: 0 auto;
}

.mat-type-section h2 {
  text-align: center;
  font-size: 30px;
  margin: 0 0 12px;
  letter-spacing: .08em;
}

.mat-type-lead {
  text-align: center;
  font-size: 14px;
  margin: 0 0 28px;
}

.mat-type-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.mat-type-card {
  background: #f8f5ef;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #eadfd2;
  text-align: center;
}

.mat-type-card h3 {
  font-size: 15px;
  line-height: 1.5;
  margin: 14px 10px 10px;
  font-weight: 700;
}

.mat-type-card img {
  display: block !important;
  width: 100%;
  height: 230px;
  object-fit: cover;
  margin: 0;
}

.mat-type-card p {
  font-size: 13px;
  line-height: 1.8;
  margin: 18px 18px 12px;
}

.mat-type-use {
  display: inline-block;
  margin: 0 0 18px;
  padding: 5px 12px;
  border-radius: 999px;
  background: #b07a3b;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

/* スマホ */
@media (max-width: 768px) {
  .mat-type-section {
    padding: 48px 18px;
  }

  .mat-type-section h2 {
    font-size: 24px;
  }

  .mat-type-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .mat-type-card img {
    height: 220px;
  }
}

/* スマホ */
@media (max-width: 768px) {
  .mat-type-section {
    padding: 56px 20px;
  }

  .mat-type-section h2 {
    font-size: 24px;
    text-align: left;
  }

  .mat-type-lead {
    text-align: left;
    margin-bottom: 32px;
  }

  .mat-type-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .mat-type-card {
    padding: 20px;
  }
}

/* ==============================
   マット：選ばれる理由・ご注文の流れ
============================== */

.mat-reason-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: #fff;
  padding: 36px 24px 46px;
}

.mat-reason-inner {
  max-width: 1500px;
  margin: 0 auto;
}

.mat-reason-box {
  background: linear-gradient(90deg, #f8f4ec, #fffaf3);
  border-radius: 10px;
  padding: 32px 36px;
  margin-bottom: 32px;
}

.mat-reason-box h2 {
  text-align: center;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 26px;
  margin: 0 0 28px;
  letter-spacing: .08em;
}

.mat-reason-list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
}

.mat-reason-item {
  text-align: center;
  padding: 0 24px;
  border-right: 1px solid rgba(70,55,42,.18);
}

.mat-reason-item:last-child {
  border-right: none;
}

.mat-reason-icon {
  font-size: 38px;
  color: #9a6a37;
  margin-bottom: 14px;
  line-height: 1;
}

.mat-reason-item h3 {
  font-size: 15px;
  margin: 0 0 10px;
  line-height: 1.5;
}

.mat-reason-item p {
  font-size: 12px;
  line-height: 1.7;
  margin: 0;
}


/* ご注文の流れ */

.mat-flow-area {
  background: #fff;
  padding: 0 0 12px;
}

.mat-flow-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-bottom: 26px;
}

.mat-flow-heading span {
  width: 80px;
  height: 1px;
  background: #d8d1c8;
  display: block;
}

.mat-flow-heading h2 {
  text-align: center;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 26px;
  margin: 0;
  letter-spacing: .08em;
}

.mat-flow-list {
  display: grid;
  grid-template-columns: 1fr 32px 1fr 32px 1fr 32px 1fr 32px 1fr;
  gap: 10px;
  align-items: start;
}

.mat-flow-item {
  text-align: center;
  padding: 0 8px;
}

.mat-flow-icon {
  width: 76px;
  height: 76px;
  margin: 0 auto 14px;
  border: 1px solid #ddd;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 30px;
  background: #fff;
}

.mat-flow-item h3 {
  font-size: 13px;
  margin: 0 0 8px;
  line-height: 1.5;
}

.mat-flow-item p {
  font-size: 11px;
  line-height: 1.7;
  margin: 0;
}

.mat-flow-arrow {
  text-align: center;
  padding-top: 28px;
  color: #999;
  font-size: 20px;
}


/* スマホ */

@media (max-width: 768px) {

  .mat-reason-section {
    padding: 32px 18px 44px;
  }

  .mat-reason-box {
    padding: 28px 20px;
  }

  .mat-reason-box h2,
  .mat-flow-heading h2 {
    font-size: 22px;
  }

  .mat-reason-list {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .mat-reason-item {
    border-right: none;
    border-bottom: 1px solid rgba(70,55,42,.18);
    padding: 0 0 24px;
  }

  .mat-reason-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .mat-flow-heading span {
    width: 42px;
  }

  .mat-flow-list {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .mat-flow-arrow {
    padding-top: 0;
    font-size: 18px;
    transform: rotate(90deg);
  }
}

/* ==============================
   スマホ
============================== */

@media (max-width: 768px) {

  .mat-reason {
    padding: 32px 18px 20px;
  }

  .mat-reason__inner {
    padding: 28px 20px;
  }

  .mat-reason h2,
  .mat-flow h2 {
    font-size: 22px;
  }

  .mat-reason__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .mat-reason__item {
    border-right: none;
    border-bottom: 1px solid rgba(70,55,42,.18);
    padding: 0 0 24px;
  }

  .mat-reason__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .mat-flow {
    padding: 36px 18px 44px;
  }

  .mat-flow__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .mat-flow__item:not(:last-child)::after {
    content: "↓";
    right: 50%;
    transform: translateX(50%);
    top: auto;
    bottom: -24px;
  }
}


/* =========================================================
   HANFORD STORE - RESPONSIVE FIX PACK
   2026-06-03
   既存CSSの末尾に追加して使えるスマホ対応まとめ
========================================================= */

html,
body {
  overflow-x: hidden;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
video,
iframe {
  max-width: 100%;
  height: auto;
}

/* -------------------------
   HEADER / NAV
------------------------- */
@media screen and (max-width: 1024px) {
  .hanford-header {
    padding: 22px 24px;
  }

  .hanford-header-inner {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px;
  }

  .hanford-logo {
    width: min(320px, 68vw) !important;
    font-size: 44px !important;
  }

  .hanford-copy {
    font-size: 13px;
    margin-bottom: 6px;
  }

  .hanford-nav {
    order: 3;
    width: 100%;
    margin-top: 10px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
  }

  .hanford-nav > ul,
  .hanford-nav ul,
  .hanford-nav-list {
    display: flex;
    flex-wrap: nowrap;
    gap: 20px;
    width: max-content;
    min-width: 100%;
  }

  .hanford-nav a {
    font-size: 14px;
    white-space: nowrap;
  }

  .hanford-nav .sub-menu {
    position: static;
    display: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border-radius: 8px;
    min-width: 180px;
    margin-top: 8px;
    padding: 6px 0;
  }

  .hanford-nav li:hover > .sub-menu {
    display: flex;
  }

  .hanford-right {
    margin-left: auto;
    padding-top: 0;
    gap: 8px;
  }

  .header-action {
    min-width: 42px;
    height: 40px;
    padding: 0 10px;
  }

  .header-action .action-text {
    display: none;
  }
}

@media screen and (max-width: 640px) {
  .hanford-header {
    padding: 18px 16px;
  }

  .hanford-header-inner {
    align-items: flex-start;
  }

  .hanford-logo {
    width: min(260px, 62vw) !important;
    font-size: 36px !important;
  }

  .hanford-right {
    width: 100%;
    justify-content: flex-end;
    order: 2;
  }

  .hanford-nav {
    order: 3;
    margin-top: 2px;
  }

  .hanford-main {
    padding: 28px 16px 56px;
  }
}

/* -------------------------
   COMMON LAYOUT
------------------------- */
@media screen and (max-width: 768px) {
  #wrapper,
  #header,
  #main,
  #content,
  #container,
  #primary,
  .site,
  .site-content,
  .inner,
  .wrap {
    width: 100% !important;
    max-width: none !important;
  }

  .page .entry-content,
  .single .entry-content,
  body.page .entry-content,
  body.page .page-content,
  body.page .content,
  body.page .site-content,
  body.page .container,
  body.page .wrap,
  body.page .inner {
    width: 100% !important;
    max-width: none !important;
  }

  .hanford-section,
  .brand-section {
    width: 90%;
    padding: 56px 0;
  }

  h1 {
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
}

/* -------------------------
   TOP PAGE
------------------------- */
@media screen and (max-width: 768px) {
  .main-visual {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .main-banner-large,
  .main-banner {
    aspect-ratio: 1.35 / 1;
  }

  .pickup-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 20px 14px;
  }

  .pickup-item p {
    font-size: 13px;
  }

  .original-grid,
  .industry-grid,
  .brand-grid {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .industry-card {
    min-height: auto;
    padding: 14px;
    gap: 14px;
  }

  .industry-card img {
    width: 92px;
    height: 74px;
  }

  .industry-card h3 {
    font-size: 20px;
  }
}

/* -------------------------
   CONTACT / FOOTER
------------------------- */
@media screen and (max-width: 768px) {
  .hanford-contact {
    padding: 44px 18px 56px;
  }

  .footer-logo img {
    width: 260px;
  }

  .contact-sub {
    font-size: 14px;
  }

  .hanford-contact h2 {
    font-size: 24px;
    line-height: 1.5;
  }

  .contact-buttons {
    flex-direction: column !important;
    gap: 16px;
    align-items: center;
  }

  .contact-btn {
    width: 100%;
    max-width: 340px;
    height: 64px;
    font-size: 18px;
  }

  .hanford-footer {
    padding: 56px 20px;
  }

  .hanford-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 36px;
  }

  .footer-nav {
    grid-template-columns: 1fr 1fr !important;
    gap: 28px 20px;
  }

  body.page footer .widget.widget_welcart_calendar {
    padding: 24px 14px;
  }

  body.page footer .usces_calendar table {
    max-width: 300px;
    border-spacing: 4px;
  }
}

/* -------------------------
   LP HERO COMMON
------------------------- */
@media screen and (max-width: 768px) {
  body.page .entry-content > .coaster-hero,
  body.page .entry-content > .shopper-hero,
  body.page .entry-content > .logo-design-hero,
  .menu-stand-hero,
  .mat-hero,
  .qr-hero,
  .clinic-card-hero,
  .neon-hero {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }

  body.page .coaster-hero__inner,
  body.page .shopper-hero__inner,
  .logo-design-hero__inner,
  .qr-hero__inner,
  .clinic-card-hero__inner,
  .neon-hero__inner {
    width: 100% !important;
    max-width: none !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }

  .coaster-hero h1,
  .shopper-hero h1,
  .logo-design-hero h1,
  .menu-stand-hero h1,
  .mat-hero h1,
  .qr-hero h1,
  .clinic-card-hero h1,
  .neon-hero h1 {
    font-size: clamp(32px, 10vw, 42px) !important;
    line-height: 1.38 !important;
    letter-spacing: 0.04em !important;
  }

  .coaster-hero__text p,
  .shopper-hero__desc,
  .logo-design-hero__lead,
  .menu-stand-hero__text,
  .mat-hero__text,
  .qr-hero__text,
  .clinic-card-hero__text,
  .neon-hero__text {
    font-size: 14px !important;
    line-height: 1.9 !important;
  }

  .coaster-hero br,
  .shopper-hero br,
  .logo-design-hero br,
  .menu-stand-hero br,
  .mat-hero__text br,
  .qr-hero br,
  .clinic-card-hero br,
  .neon-hero br {
    display: none;
  }
}

/* -------------------------
   COASTER LP
------------------------- */
@media screen and (max-width: 768px) {
  body.page .entry-content > .coaster-hero {
    padding: 54px 0 !important;
  }

  body.page .coaster-hero__inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .coaster-icons {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px 10px;
  }

  .coaster-icons span {
    width: 58px;
    height: 58px;
    font-size: 24px;
    margin: 0 auto;
  }

  .coaster-steps__grid,
  .coaster-summary {
    grid-template-columns: 1fr !important;
  }

  .step-card {
    min-height: auto;
  }

  .preview-card__body {
    grid-template-columns: 1fr !important;
    text-align: center;
  }
}

/* -------------------------
   SHOPPER LP
------------------------- */
@media screen and (max-width: 768px) {
  body.page .entry-content > .shopper-hero {
    padding: 54px 0 !important;
  }

  body.page .shopper-hero__inner,
  .shopper-hero__inner {
    grid-template-columns: 1fr !important;
    padding: 0 22px !important;
  }

  .shopper-features,
  body.page .shopper-features {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    margin-top: 34px !important;
  }

  .shopper-size-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px 14px;
  }

  .shopper-info-grid,
  .shopper-info-box {
    grid-template-columns: 1fr !important;
  }

  .shopper-info-item {
    border-left: none !important;
    border-top: 1px solid #eee;
    padding-top: 20px;
  }

  .shopper-info-item:first-of-type {
    border-top: none;
  }
}

/* -------------------------
   LOGO LP
------------------------- */
@media screen and (max-width: 768px) {
  body.page .entry-content > .logo-design-hero {
    min-height: auto !important;
    background-position: 68% center !important;
  }

  .logo-design-hero__inner {
    min-height: auto !important;
    padding: 72px 22px 360px !important;
    display: block !important;
  }

  .logo-design-hero__text {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
  }

  .logo-design-features {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 22px 0 !important;
    max-width: none;
  }

  .logo-design-feature {
    border-right: none !important;
  }

  .logo-plan__grid,
  .logo-common-service__grid,
  .logo-option__grid {
    grid-template-columns: 1fr !important;
  }

  .logo-option-card {
    padding: 28px 22px;
    flex-direction: column;
    text-align: center;
    align-items: center;
  }

  .logo-flow-list {
    grid-template-columns: 1fr !important;
  }
}

/* -------------------------
   STANDING SIGN / MENU STAND LP
------------------------- */
@media screen and (max-width: 768px) {
  .menu-stand-hero {
    min-height: auto !important;
    background: #f7f2ea !important;
  }

  .menu-stand-hero__bg {
    position: relative !important;
    height: 340px !important;
    background-image:
      linear-gradient(180deg, rgba(247,242,234,0) 0%, rgba(247,242,234,.95) 100%),
      url("/store/wp-content/themes/welcart_basic_child/assets/img/standingsign/standingsign-hero.webp") !important;
    background-size: cover !important;
    background-position: center right !important;
  }

  .menu-stand-hero__content {
    padding: 34px 20px 46px !important;
    max-width: none !important;
  }

  .menu-stand-hero__lead {
    font-size: 20px !important;
  }

  .menu-stand-hero__features {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px 0 !important;
    max-width: none !important;
    margin-top: 34px !important;
  }

  .menu-stand-hero__feature::after {
    display: none !important;
  }

  .menu-stand-hero__badge {
    top: 250px !important;
    right: 18px !important;
    bottom: auto !important;
    width: 118px !important;
    height: 118px !important;
  }

  .menu-stand-hero__badge span {
    font-size: 15px !important;
  }

  .menu-stand-hero__badge small {
    font-size: 10px !important;
  }

  .stand-size-box,
  .hand-size-box,
  .menu-feature-inner,
  .menu-order-list {
    grid-template-columns: 1fr !important;
  }

  .stand-size-heading span,
  .hand-size-heading span,
  .menu-order-heading span {
    width: 44px !important;
  }
}

/* -------------------------
   MAT LP
------------------------- */
@media screen and (max-width: 768px) {
  .mat-hero {
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }

  .mat-hero__visual {
    min-height: auto !important;
    background-image:
      linear-gradient(180deg, rgba(245,241,234,.98) 0%, rgba(245,241,234,.92) 44%, rgba(245,241,234,.48) 72%, rgba(245,241,234,.08) 100%),
      url("https://hanford.jp/store/wp-content/themes/welcart_basic_child/assets/img/mat/mat-hero.webp") !important;
    background-size: cover !important;
    background-position: center bottom !important;
  }

  .mat-hero__inner {
    padding: 72px 20px 340px !important;
  }

  .mat-hero__content {
    max-width: none !important;
    padding: 0 !important;
  }

  .mat-hero__features {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 22px 0 !important;
    max-width: none !important;
    margin-top: 34px !important;
  }

  .mat-hero__feature {
    padding: 0 10px !important;
  }

  .mat-hero__feature::after {
    display: none !important;
  }
}

/* -------------------------
   QR PLATE LP
------------------------- */
@media screen and (max-width: 768px) {
  .qr-hero__inner,
  .qr-feature-inner,
  .qr-variation-layout,
  .qr-custom-box {
    grid-template-columns: 1fr !important;
  }

  .qr-hero__visual {
    min-height: 320px;
  }

  .qr-hero__image--sub {
    display: none !important;
  }

  .qr-variation-grid,
  .qr-custom-icons {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
}

/* -------------------------
   CLINIC CARD LP
------------------------- */
@media screen and (max-width: 768px) {
  .clinic-card-hero__inner {
    padding-top: 68px !important;
    padding-bottom: 320px !important;
  }

  .clinic-card-hero__bg {
    background-position: center bottom !important;
  }

  .clinic-type-card,
  .clinic-use-card,
  .clinic-order-flow {
    grid-template-columns: 1fr !important;
  }
}

/* -------------------------
   NEON LP
------------------------- */
@media screen and (max-width: 768px) {
  .neon-hero__inner {
    padding-top: 70px !important;
    padding-bottom: 320px !important;
  }

  .neon-hero__features {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 22px 0 !important;
  }

  .neon-hero__feature::after {
    display: none !important;
  }

  .neon-size-grid,
  .neon-color-grid,
  .neon-spec-grid,
  .neon-design-area,
  .neon-set-area {
    grid-template-columns: 1fr !important;
  }

  .neon-color-layout {
    grid-template-columns: 1fr !important;
  }

  .neon-design-arrow {
    transform: rotate(90deg);
  }
}

/* -------------------------
   SMALL PHONE FINE TUNING
------------------------- */
@media screen and (max-width: 480px) {
  .footer-nav {
    grid-template-columns: 1fr !important;
  }

  .pickup-grid,
  .shopper-size-grid,
  .qr-variation-grid,
  .qr-custom-icons {
    grid-template-columns: 1fr 1fr !important;
  }

  .logo-design-features,
  .menu-stand-hero__features,
  .mat-hero__features,
  .neon-hero__features {
    grid-template-columns: 1fr 1fr !important;
  }

  .contact-btn {
    max-width: none;
  }
}

/* ==============================
   診察券ヒーロー SP調整
============================== */
@media screen and (max-width: 768px) {

  body.page .entry-content > .clinic-card-hero {
    min-height: auto !important;

    background-image:
      linear-gradient(
        180deg,
        rgba(245,242,237,.98) 0%,
        rgba(245,242,237,.94) 42%,
        rgba(245,242,237,.68) 62%,
        rgba(245,242,237,.18) 100%
      ),
      url("/store/wp-content/themes/welcart_basic_child/assets/img/medcard/medcard-hero.webp") !important;

    background-size: cover !important;
    background-position: center bottom !important;
    background-repeat: no-repeat !important;
  }

  .clinic-card-hero__inner {
    min-height: auto !important;
    display: block !important;
    padding: 88px 22px 360px !important;
  }

  .clinic-card-hero__content {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }

  .clinic-card-hero__eyebrow {
    font-size: 15px !important;
    margin-bottom: 18px !important;
  }

  .clinic-card-hero h1 {
    font-size: 38px !important;
    line-height: 1.35 !important;
  }

  .clinic-card-hero__lead,
  .clinic-card-hero__text {
    font-size: 14px !important;
    line-height: 1.9 !important;
  }

  .clinic-card-hero br {
    display: none;
  }
}
/* =========================================
   お問い合わせCTA
========================================= */

.hanford-contact {
  position: relative;
  padding: 80px 24px 90px;
  overflow: hidden;
  text-align: center;
  background-color: #eaf7fa;
  background-image:
    linear-gradient(rgba(45, 143, 171, .09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45, 143, 171, .09) 1px, transparent 1px);
  background-size: 28px 28px;
}

.hanford-contact::before {
  content: "";
  position: absolute;
  top: -160px;
  left: 50%;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .45);
  transform: translateX(-50%);
  pointer-events: none;
}

.hanford-contact-inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
}

.footer-logo {
  margin-bottom: 30px;
}

.footer-logo img {
  display: block;
  width: 340px;
  max-width: 78%;
  height: auto;
  margin: 0 auto;
}

.contact-sub {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  color: #087397;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .08em;
}

.contact-sub::before,
.contact-sub::after {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
}

.hanford-contact h2 {
  margin: 0 0 40px;
  color: #15394b;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.45;
  letter-spacing: .06em;
}

.contact-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 400px));
  justify-content: center;
  gap: 24px;
}

.contact-btn {
  position: relative;
  min-height: 88px;
  padding: 16px 58px 16px 26px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  gap: 18px;
  text-align: left;
  text-decoration: none;
  box-sizing: border-box;
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    opacity .25s ease;
}

.contact-btn:hover {
  transform: translateY(-4px);
}

.contact-btn > i:first-child {
  flex: 0 0 auto;
  width: 44px;
  text-align: center;
  font-size: 38px;
}

.contact-btn__text {
  display: flex;
  flex-direction: column;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.45;
}

.contact-btn__text small {
  margin-bottom: 3px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  opacity: .8;
}

.contact-btn__arrow {
  position: absolute;
  top: 50%;
  right: 24px;
  font-size: 14px;
  transform: translateY(-50%);
}

.line-btn {
  color: #fff;
  background: #06c755;
  box-shadow: 0 12px 30px rgba(6, 199, 85, .20);
}

.line-btn:hover {
  color: #fff;
  box-shadow: 0 18px 36px rgba(6, 199, 85, .28);
}

.mail-btn {
  color: #17465a;
  border: 1px solid #8cc9d7;
  background: #fff;
  box-shadow: 0 12px 30px rgba(34, 106, 127, .10);
}

.mail-btn:hover {
  color: #17465a;
  box-shadow: 0 18px 36px rgba(34, 106, 127, .16);
}


/* =========================================
   フッター
========================================= */

.hanford-footer {
  padding: 78px 30px 24px;
  color: #fff;
  background: #075f7a;
}

.hanford-footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(360px, .9fr) minmax(0, 1.3fr);
  gap: 80px;
  align-items: start;
}


/* 営業日カレンダー */

.footer-calendar {
  padding: 30px;
  color: #30383c;
  border-radius: 8px;
  background: #fff;
  box-sizing: border-box;
}

.footer-calendar__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 20px;
  color: #075f7a;
}

.footer-calendar__heading i {
  font-size: 19px;
}

.footer-calendar__heading h3 {
  margin: 0;
  font-size: 16px;
  letter-spacing: .06em;
}

/* ウィジェット側のタイトルが重複する場合 */
.footer-calendar .widgettitle {
  display: none;
}

.footer-calendar .widget {
  margin: 0;
}

.footer-calendar .usces_calendar {
  width: 100%;
}

.footer-calendar .usces_calendar table {
  width: 100%;
  margin: 0 auto 18px;
  border-collapse: collapse;
}

.footer-calendar .usces_calendar caption {
  margin-bottom: 12px;
  font-size: 15px;
  font-weight: 700;
}

.footer-calendar .usces_calendar th,
.footer-calendar .usces_calendar td {
  padding: 7px 4px;
  text-align: center;
  font-size: 13px;
}


/* フッターナビ */

.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 42px;
}

.footer-nav__group h4 {
  min-height: 28px;
  margin: 0 0 22px;
  padding-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid rgba(255, 255, 255, .24);
  color: #fff;
  font-size: 15px;
  letter-spacing: .06em;
}

.footer-nav__group h4 i {
  width: 18px;
  color: #8ed7e9;
  text-align: center;
}

.footer-nav__group a {
  margin-bottom: 14px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: rgba(255, 255, 255, .88);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
  text-decoration: none;
  transition:
    color .2s ease,
    transform .2s ease;
}

.footer-nav__group a i {
  margin-top: 4px;
  color: #8ed7e9;
  font-size: 10px;
}

.footer-nav__group a:hover {
  color: #fff;
  transform: translateX(3px);
}


/* 最下部 */

.hanford-footer-bottom {
  max-width: 1240px;
  margin: 62px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .18);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.footer-copyright {
  margin: 0;
  color: rgba(255, 255, 255, .68);
  font-size: 11px;
  letter-spacing: .05em;
}

.footer-pagetop {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  text-decoration: none;
  transition:
    color .2s ease,
    background .2s ease;
}

.footer-pagetop:hover {
  color: #075f7a;
  background: #fff;
}


/* =========================================
   フッター レスポンシブ
========================================= */

@media screen and (max-width: 900px) {

  .hanford-footer-inner {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .footer-calendar {
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
  }

  .footer-nav {
    gap: 30px;
  }

}

@media screen and (max-width: 768px) {

  .hanford-contact {
    padding: 58px 20px 64px;
  }

  .footer-logo img {
    width: 280px;
  }

  .contact-sub {
    font-size: 13px;
  }

  .contact-sub::before,
  .contact-sub::after {
    width: 18px;
  }

  .hanford-contact h2 {
    margin-bottom: 30px;
    font-size: 25px;
  }

  .contact-buttons {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .contact-btn {
    width: 100%;
    min-height: 80px;
  }

  .hanford-footer {
    padding: 55px 20px 22px;
  }

  .footer-nav {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .footer-nav__group h4 {
    margin-bottom: 16px;
  }

  .hanford-footer-bottom {
    margin-top: 46px;
  }

}

@media screen and (max-width: 480px) {

  .contact-btn {
    padding-left: 20px;
    padding-right: 48px;
  }

  .contact-btn > i:first-child {
    width: 36px;
    font-size: 32px;
  }

  .contact-btn__text {
    font-size: 16px;
  }

  .footer-calendar {
    padding: 24px 16px;
  }

  .hanford-footer-bottom {
    gap: 20px;
  }

  .footer-copyright {
    max-width: 230px;
    line-height: 1.7;
  }

}
/* お問い合わせボタン文字サイズ調整 */
.contact-btn {
  min-height: 76px;
  padding: 14px 50px 14px 22px;
  gap: 14px;
}

.contact-btn > i:first-child {
  width: 36px;
  font-size: 30px;
}

.contact-btn__text {
  font-size: 15px;
  line-height: 1.35;
  white-space: nowrap;
}

.contact-btn__text small {
  margin-bottom: 2px;
  font-size: 10px;
}

.contact-btn__arrow {
  right: 20px;
  font-size: 12px;
}
/* =========================================
   コースター選択UI
========================================= */

.shape-option,
.color-option,
.design-box {
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  cursor: pointer;
}

/* 形 */

.shape-list {
  display: grid;
  gap: 12px;
}

.shape-option {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  display: flex;
  align-items: center;
  gap: 16px;
  color: #222;
  text-align: left;
  transition:
    border-color .2s ease,
    background-color .2s ease;
}

.shape-option:hover,
.shape-option.active {
  border-color: #0b4f8a;
  background: #fff;
}

.shape-option b {
  display: flex;
  flex-direction: column;
  font-size: 14px;
  line-height: 1.5;
}

.shape-option small {
  font-size: 10px;
  font-weight: 500;
  color: #666;
}

.shape {
  flex: 0 0 50px;
}

/* カラー */

.color-grid {
  display: grid;
  grid-template-columns: repeat(3, 48px);
  gap: 18px;
}

.color-option {
  position: relative;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid #ddd;
  border-radius: 5px;
  background: var(--coaster-color);
}

.color-option:hover,
.color-option.active {
  outline: 3px solid #073b67;
  outline-offset: 4px;
}

.color-option.active::after {
  content: "\f00c";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font-family: "Font Awesome 6 Free";
  font-size: 17px;
  font-weight: 900;
}

.color-option--white.active::after {
  color: #073b67;
}

/* デザイン方法 */

.design-options {
  display: grid;
  gap: 12px;
}

.design-box {
  width: 100%;
  min-height: 64px;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid #ccc;
  border-radius: 8px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #222;
  text-align: left;
  font-size: 13px;
  font-weight: 700;
}

.design-box i {
  width: 20px;
  color: #0b4f8a;
  text-align: center;
}

.design-box:hover,
.design-box.active {
  border-color: #0b4f8a;
  background: #f5f9fc;
  box-shadow: 0 0 0 1px #0b4f8a;
}

.note-box {
  margin-top: 14px;
}

/* 数量 */

#coasterQuantity {
  width: 100%;
  min-height: 48px;
  padding: 10px 42px 10px 14px;
  border: 1px solid #ccc;
  border-radius: 8px;
  background-color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.price-box {
  margin-top: 18px;
}

.price-box > b {
  display: block;
  margin-bottom: 14px;
}

.price-box div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-top: 10px;
  font-size: 12px;
}

.price-box strong {
  color: #073b67;
}
.coaster-thumbs {
  justify-content: center;
}

.coaster-thumbs:has(.coaster-thumb:only-child) {
  margin-top: 20px;
}
.coaster-thumbs {
  display: none;
}
.coaster-thumbs {
  display: none;
}
.coaster-hero__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  align-items: center;
  gap: 80px;
}

.coaster-hero__text {
  display: block;
}

.coaster-hero__visual {
  display: flex;
  align-items: center;
  justify-content: center;
}

.coaster-hero__visual #mainCoaster {
  display: block;
  width: min(520px, 100%);
  height: auto;
}
/* ラバーコースターLP 微調整 */

.coaster-hero {
  padding: 58px 0;
}

.coaster-hero__inner {
  max-width: 1280px;
  padding: 0 60px;
  gap: 64px;
}

.coaster-hero__visual #mainCoaster {
  width: min(430px, 100%);
}

.coaster-hero__text p {
  margin-bottom: 28px;
}

.coaster-icons {
  margin-top: 28px;
}

.coaster-steps {
  padding-top: 56px;
}

.coaster-steps h2 {
  margin-bottom: 30px;
}
.coaster-native-forms {
  display: none !important;
}

.coaster-product-page {
  width: 100%;
}

body.single .coaster-product-page {
  max-width: none;
}

body.single .coaster-hero,
body.single .coaster-steps,
body.single .coaster-summary {
  box-sizing: border-box;
}
/* セミオーダー：カートボタン操作感 */
button.contact-card {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  border: none;
  cursor: pointer;
  font: inherit;
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    background .25s ease;
}

button.contact-card:hover {
  background: linear-gradient(135deg, #0b4f8a, #1673b8);
  box-shadow: 0 18px 36px rgba(7, 59, 103, .28);
  transform: translateY(-4px);
}

button.contact-card:active {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(7, 59, 103, .22);
}

button.contact-card:focus-visible {
  outline: 3px solid rgba(11, 79, 138, .3);
  outline-offset: 4px;
}

button.contact-card i,
button.contact-card strong,
button.contact-card p {
  pointer-events: none;
}
/* =========================================
   Welcart カートページ
========================================= */

body.page-template-uscescart {

  --cart-navy: #073b67;
  --cart-blue: #0b5f8f;
  --cart-light: #f5f8fa;
  --cart-border: #dce5ea;
  --cart-text: #26343c;
  --cart-muted: #697780;
}


/* ページ全体 */

body.page-template-uscescart #primary {
  width: 100% !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 54px 30px 80px;
  float: none !important;
  box-sizing: border-box;
}

body.page-template-uscescart #content {
  width: 100% !important;
  max-width: none !important;
}

body.page-template-uscescart .entry-header,
body.page-template-uscescart .page-header {
  margin-bottom: 36px;
}

body.page-template-uscescart h1 {
  margin: 0 0 32px;
  color: var(--cart-navy);
  font-size: clamp(28px, 3vw, 40px);
  letter-spacing: .05em;
}


/* =========================================
   購入ステップ
========================================= */

body.page-template-uscescart .usccart_navi {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0 0 42px;
  padding: 0;
  list-style: none;
  counter-reset: cart-step;
}

body.page-template-uscescart .usccart_navi li {
  position: relative;
  margin: 0;
  padding: 18px 12px 18px 46px;
  color: #84919a;
  border-top: 1px solid var(--cart-border);
  border-bottom: 1px solid var(--cart-border);
  background: #fff;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  box-sizing: border-box;
  counter-increment: cart-step;
}

body.page-template-uscescart .usccart_navi li:first-child {
  border-left: 1px solid var(--cart-border);
  border-radius: 8px 0 0 8px;
}

body.page-template-uscescart .usccart_navi li:last-child {
  border-right: 1px solid var(--cart-border);
  border-radius: 0 8px 8px 0;
}

body.page-template-uscescart .usccart_navi li::before {
  content: counter(cart-step);
  position: absolute;
  top: 50%;
  left: 18px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: #b6c0c6;
  font-size: 12px;
  transform: translateY(-50%);
}

body.page-template-uscescart .usccart_navi li.ucart {
  color: #fff;
  border-color: var(--cart-navy);
  background: var(--cart-navy);
}

body.page-template-uscescart .usccart_navi li.ucart::before {
  color: var(--cart-navy);
  background: #fff;
}


/* =========================================
   案内文
========================================= */

body.page-template-uscescart .header_explanation,
body.page-template-uscescart .footer_explanation {
  color: var(--cart-muted);
  font-size: 13px;
  line-height: 1.8;
}

body.page-template-uscescart .header_explanation {
  margin-bottom: 18px;
}


/* =========================================
   カートテーブル
========================================= */

body.page-template-uscescart table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

body.page-template-uscescart .cart_table {
  margin: 0 0 28px;
  overflow: hidden;
  border: 1px solid var(--cart-border);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(7, 59, 103, .06);
}

body.page-template-uscescart .cart_table th {
  padding: 15px 12px;
  color: var(--cart-navy);
  border: 0;
  border-bottom: 1px solid var(--cart-border);
  background: var(--cart-light);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

body.page-template-uscescart .cart_table td {
  padding: 22px 12px;
  color: var(--cart-text);
  border: 0;
  border-bottom: 1px solid #edf1f3;
  background: #fff;
  font-size: 13px;
  line-height: 1.65;
  vertical-align: middle;
}

body.page-template-uscescart .cart_table tbody tr:last-child td {
  border-bottom: 0;
}


/* No. */

body.page-template-uscescart .cart_table .num {
  width: 38px;
  color: var(--cart-muted);
  text-align: center;
}


/* 商品画像 */

body.page-template-uscescart .cart_table .thumbnail {
  width: 82px;
}

body.page-template-uscescart .cart_table .thumbnail img {
  width: 72px;
  height: 72px;
  padding: 5px;
  border: 1px solid #e5ebee;
  border-radius: 6px;
  background: #fafafa;
  object-fit: contain;
}


/* 商品情報 */

body.page-template-uscescart .cart_table .productname {
  min-width: 280px;
  color: var(--cart-text);
  font-size: 14px;
  font-weight: 700;
  text-align: left;
}

body.page-template-uscescart .cart_table .productname a {
  color: var(--cart-navy);
  text-decoration: none;
}

body.page-template-uscescart .cart_table .productname a:hover {
  text-decoration: underline;
}

/* SKUやオプション文字 */

body.page-template-uscescart .cart_table .productname br {
  display: block;
  content: "";
  margin-top: 4px;
}

body.page-template-uscescart .cart_table .productname {
  line-height: 1.8;
}


/* 単価・金額 */

body.page-template-uscescart .cart_table .unitprice,
body.page-template-uscescart .cart_table .subtotal {
  color: var(--cart-navy);
  font-weight: 700;
  white-space: nowrap;
  text-align: right;
}


/* 数量入力 */

body.page-template-uscescart .cart_table input[type="text"],
body.page-template-uscescart .cart_table input[type="number"] {
  width: 64px;
  height: 40px;
  padding: 6px 8px;
  border: 1px solid #cfd9de;
  border-radius: 5px;
  background: #fff;
  font-size: 14px;
  text-align: center;
  box-sizing: border-box;
}

body.page-template-uscescart .cart_table input[type="text"]:focus,
body.page-template-uscescart .cart_table input[type="number"]:focus {
  border-color: var(--cart-blue);
  outline: 3px solid rgba(11, 95, 143, .12);
}


/* 在庫状態 */

body.page-template-uscescart .cart_table .stock {
  color: #39704d;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}


/* 削除ボタン */

body.page-template-uscescart .cart_table input[type="submit"][value*="削除"],
body.page-template-uscescart .cart_table .delButton,
body.page-template-uscescart .cart_table .delete {
  min-width: 48px;
  padding: 7px 10px;
  border: 1px solid #d8b8b8;
  border-radius: 5px;
  color: #a33838;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

body.page-template-uscescart .cart_table input[type="submit"][value*="削除"]:hover,
body.page-template-uscescart .cart_table .delButton:hover,
body.page-template-uscescart .cart_table .delete:hover {
  color: #fff;
  border-color: #b94343;
  background: #b94343;
}


/* =========================================
   合計行
========================================= */

body.page-template-uscescart .cart_table tfoot th,
body.page-template-uscescart .cart_table tfoot td {
  padding: 20px 14px;
  border-top: 2px solid var(--cart-navy);
  border-bottom: 0;
  background: #f7fafc;
}

body.page-template-uscescart .cart_table tfoot th {
  color: var(--cart-navy);
  font-size: 15px;
  text-align: right;
}

body.page-template-uscescart .cart_table tfoot td {
  color: var(--cart-navy);
  font-size: 20px;
  font-weight: 700;
  text-align: right;
}


/* =========================================
   数量更新
========================================= */

body.page-template-uscescart .upbutton,
body.page-template-uscescart input[name="upButton"] {
  min-height: 36px;
  padding: 7px 16px;
  border: 1px solid var(--cart-navy);
  border-radius: 5px;
  color: var(--cart-navy);
  background: #fff;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

body.page-template-uscescart .upbutton:hover,
body.page-template-uscescart input[name="upButton"]:hover {
  color: #fff;
  background: var(--cart-navy);
}


/* =========================================
   下部ボタン
========================================= */

body.page-template-uscescart .send {
  margin-top: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

body.page-template-uscescart .send input,
body.page-template-uscescart .send button,
body.page-template-uscescart .send a {
  min-width: 180px;
  min-height: 50px;
  padding: 12px 24px;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition:
    color .2s ease,
    background .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

/* 買い物を続ける */

body.page-template-uscescart .send input[name="backButton"],
body.page-template-uscescart .send .back_cart_button {
  border: 1px solid #c9d3d8;
  color: var(--cart-text);
  background: #fff;
}

body.page-template-uscescart .send input[name="backButton"]:hover,
body.page-template-uscescart .send .back_cart_button:hover {
  border-color: var(--cart-navy);
  color: var(--cart-navy);
}


/* 次へ */

body.page-template-uscescart .send input[name="customerinfo"],
body.page-template-uscescart .send input[name="next"],
body.page-template-uscescart .send .to_customerinfo_button {
  border: 1px solid var(--cart-navy);
  color: #fff;
  background: var(--cart-navy);
  box-shadow: 0 10px 24px rgba(7, 59, 103, .16);
}

body.page-template-uscescart .send input[name="customerinfo"]:hover,
body.page-template-uscescart .send input[name="next"]:hover,
body.page-template-uscescart .send .to_customerinfo_button:hover {
  background: #0d608e;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(7, 59, 103, .22);
}


/* =========================================
   通貨表示
========================================= */

body.page-template-uscescart .currency_code {
  margin: 24px 0 0;
  color: var(--cart-muted);
  font-size: 12px;
}


/* =========================================
   サイドバー非表示
========================================= */

body.page-template-uscescart #secondary,
body.page-template-uscescart .widget-area {
  display: none !important;
}


/* =========================================
   スマホ
========================================= */

@media screen and (max-width: 768px) {

  body.page-template-uscescart #primary {
    padding: 36px 16px 60px;
  }

  body.page-template-uscescart .usccart_navi {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  body.page-template-uscescart .usccart_navi li,
  body.page-template-uscescart .usccart_navi li:first-child,
  body.page-template-uscescart .usccart_navi li:last-child {
    border: 1px solid var(--cart-border);
    border-radius: 6px;
  }

  body.page-template-uscescart .cart_table,
  body.page-template-uscescart .cart_table tbody,
  body.page-template-uscescart .cart_table tr,
  body.page-template-uscescart .cart_table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  body.page-template-uscescart .cart_table thead {
    display: none;
  }

  body.page-template-uscescart .cart_table tbody tr {
    position: relative;
    padding: 18px;
    border-bottom: 1px solid var(--cart-border);
  }

  body.page-template-uscescart .cart_table td {
    padding: 6px 0;
    border: 0;
    text-align: left;
  }

  body.page-template-uscescart .cart_table .num {
    display: none;
  }

  body.page-template-uscescart .cart_table .thumbnail {
    width: 88px;
    float: left;
    margin: 0 16px 12px 0;
  }

  body.page-template-uscescart .cart_table .productname {
    min-width: 0;
    padding-top: 2px;
  }

  body.page-template-uscescart .cart_table .unitprice,
  body.page-template-uscescart .cart_table .subtotal {
    text-align: left;
  }

  body.page-template-uscescart .cart_table tfoot {
    display: block;
  }

  body.page-template-uscescart .cart_table tfoot tr {
    padding: 0;
  }

  body.page-template-uscescart .cart_table tfoot th,
  body.page-template-uscescart .cart_table tfoot td {
    display: block;
    width: 100%;
    padding: 14px 18px;
    text-align: right;
    box-sizing: border-box;
  }

  body.page-template-uscescart .send {
    flex-direction: column-reverse;
  }

  body.page-template-uscescart .send input,
  body.page-template-uscescart .send button,
  body.page-template-uscescart .send a {
    width: 100%;
  }

}
/* =========================================================
   Welcartカート 強制デザイン調整
========================================================= */

body.page-template-uscescart #content {
  color: #26343c;
}

/* タイトル */
body.page-template-uscescart #content > h1,
body.page-template-uscescart #content .entry-title {
  margin: 0 0 28px;
  color: #073b67;
  font-size: 34px;
  line-height: 1.4;
  letter-spacing: .05em;
}

/* 上部ステップ */
body.page-template-uscescart #content > ul:first-of-type {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0 0 38px;
  padding: 0;
  border: 1px solid #dce5ea;
  border-radius: 8px;
  overflow: hidden;
  list-style: none;
}

body.page-template-uscescart #content > ul:first-of-type li {
  position: relative;
  margin: 0;
  padding: 16px 10px;
  border-right: 1px solid #dce5ea;
  background: #f6f8f9;
  color: #75838c;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

body.page-template-uscescart #content > ul:first-of-type li:first-child {
  color: #fff;
  background: #073b67;
}

body.page-template-uscescart #content > ul:first-of-type li:last-child {
  border-right: 0;
}

/* 数量変更案内 */
body.page-template-uscescart #content form > div:first-child {
  margin-bottom: 18px;
}

/* カートテーブル全体 */
body.page-template-uscescart #content form table {
  width: 100%;
  margin: 0;
  border: 1px solid #dce5ea;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 12px 34px rgba(7, 59, 103, .07);
}

/* 見出し */
body.page-template-uscescart #content form table thead th {
  padding: 15px 12px;
  border: 0;
  border-bottom: 1px solid #dce5ea;
  background: #f1f5f7;
  color: #073b67;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

/* 商品行 */
body.page-template-uscescart #content form table tbody td {
  padding: 20px 12px;
  border: 0;
  border-bottom: 1px solid #edf1f3;
  background: #fff;
  font-size: 13px;
  line-height: 1.75;
  vertical-align: middle;
}

body.page-template-uscescart #content form table tbody tr:last-child td {
  border-bottom: 0;
}

/* 行ホバー */
body.page-template-uscescart #content form table tbody tr {
  transition: background .2s ease;
}

body.page-template-uscescart #content form table tbody tr:hover td {
  background: #fbfcfd;
}

/* 商品画像 */
body.page-template-uscescart #content form table img {
  width: 70px;
  height: 70px;
  padding: 5px;
  border: 1px solid #e3eaee;
  border-radius: 7px;
  background: #f8f9fa;
  object-fit: contain;
}

/* 商品名列 */
body.page-template-uscescart #content form table td:nth-child(3) {
  min-width: 310px;
  color: #26343c;
  font-weight: 500;
}

body.page-template-uscescart #content form table td:nth-child(3)::first-line {
  color: #073b67;
  font-size: 14px;
  font-weight: 700;
}

/* 単価・金額 */
body.page-template-uscescart #content form table td:nth-child(4),
body.page-template-uscescart #content form table td:nth-child(6) {
  color: #073b67;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}




/* 在庫 */
body.page-template-uscescart #content form table td:nth-last-child(2) {
  color: #3d7650;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

/* 削除 */
body.page-template-uscescart #content form table input[value="削除"] {
  padding: 7px 11px;
  border: 1px solid #ddbcbc;
  border-radius: 5px;
  background: #fff;
  color: #a23e3e;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: .2s;
}

body.page-template-uscescart #content form table input[value="削除"]:hover {
  border-color: #b94343;
  background: #b94343;
  color: #fff;
}

/* 合計 */
body.page-template-uscescart #content form table tfoot th,
body.page-template-uscescart #content form table tfoot td {
  padding: 22px 14px;
  border: 0;
  border-top: 2px solid #073b67;
  background: #f4f8fa;
}

body.page-template-uscescart #content form table tfoot th {
  color: #073b67;
  font-size: 15px;
  text-align: right;
}

body.page-template-uscescart #content form table tfoot td {
  color: #c71920;
  font-size: 22px;
  font-weight: 700;
  text-align: right;
}

/* 通貨 */
body.page-template-uscescart #content form + p,
body.page-template-uscescart #content .currency_code {
  margin-top: 16px;
  color: #7b878e;
  font-size: 11px;
}

/* 下部操作エリア */
body.page-template-uscescart #content form > div:last-child,
body.page-template-uscescart #content .send {
  margin-top: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

/* 買い物を続ける */
body.page-template-uscescart input[value*="買い物を続ける"] {
  min-width: 180px;
  min-height: 52px;
  padding: 12px 24px;
  border: 1px solid #bfcbd1;
  border-radius: 7px;
  background: #fff;
  color: #26343c;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: .25s;
}

body.page-template-uscescart input[value*="買い物を続ける"]:hover {
  border-color: #073b67;
  color: #073b67;
  background: #f5f8fa;
}

/* 次へ */
body.page-template-uscescart input[value="次へ"],
body.page-template-uscescart input[value*="次"] {
  min-width: 180px;
  min-height: 52px;
  padding: 12px 28px;
  border: 1px solid #073b67;
  border-radius: 7px;
  background: #073b67;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 12px 26px rgba(7, 59, 103, .18);
  transition: .25s;
}

body.page-template-uscescart input[value="次へ"]:hover,
body.page-template-uscescart input[value*="次"]:hover {
  border-color: #1476aa;
  background: #1476aa;
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(7, 59, 103, .24);
}

/* 数量更新ボタン */
body.page-template-uscescart input[value="数量更新"] {
  min-height: 36px;
  padding: 7px 16px;
  border: 1px solid #0b5f8f;
  border-radius: 5px;
  background: #fff;
  color: #0b5f8f;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

body.page-template-uscescart input[value="数量更新"]:hover {
  background: #0b5f8f;
  color: #fff;
}

/* 下のお問い合わせとの間隔 */
body.page-template-uscescart .hanford-contact {
  margin-top: 70px;
}
/* =========================================================
   Welcart カートページ 最終調整
========================================================= */

/* カートページ全体 */
body.page-template-uscescart #primary {
  max-width: 1180px !important;
  width: calc(100% - 48px) !important;
  margin: 46px auto 80px !important;
  padding: 46px 42px 56px !important;
  float: none !important;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(7, 59, 103, .08);
  box-sizing: border-box;
}

body.page-template-uscescart #content {
  width: 100% !important;
  max-width: none !important;
}


/* =========================================================
   ページタイトル
========================================================= */

body.page-template-uscescart .cart_page_title {
  margin: 0 0 28px;
  color: #073b67;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .05em;
}


/* =========================================================
   カートナビ
========================================================= */

body.page-template-uscescart .cart_navi {
  margin: 0 0 38px;
}

body.page-template-uscescart .cart_navi ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
  padding: 0;
  border: 1px solid #d9e2e7;
  border-radius: 10px;
  overflow: hidden;
  list-style: none;
  counter-reset: cart-step;
}

body.page-template-uscescart .cart_navi li {
  position: relative;
  min-height: 68px;
  margin: 0;
  padding: 16px 12px 16px 52px;
  border-right: 1px solid #d9e2e7;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7b8991;
  background: #f5f7f8;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  counter-increment: cart-step;
  box-sizing: border-box;
}

body.page-template-uscescart .cart_navi li:last-child {
  border-right: 0;
}

body.page-template-uscescart .cart_navi li::before {
  content: counter(cart-step);
  position: absolute;
  top: 50%;
  left: 18px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: #aebac0;
  font-size: 12px;
  transform: translateY(-50%);
}

body.page-template-uscescart .cart_navi li.current {
  color: #fff;
  background: linear-gradient(135deg, #073b67, #0c5c88);
}

body.page-template-uscescart .cart_navi li.current::before {
  color: #073b67;
  background: #fff;
}


/* =========================================================
   数量更新エリア
========================================================= */

body.page-template-uscescart .upbutton {
  min-height: 58px;
  margin: 0 0 28px;
  padding: 12px 16px;
  border: 1px solid #cfdce3;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 14px;
  color: #52636c;
  background: #f7fafb;
  font-size: 12px;
  font-weight: 700;
  box-sizing: border-box;
}

body.page-template-uscescart .upbutton input {
  min-height: 38px;
  padding: 8px 18px;
  border: 1px solid #0b5f8f;
  border-radius: 6px;
  color: #0b5f8f;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition:
    color .2s ease,
    background .2s ease,
    transform .2s ease;
}

body.page-template-uscescart .upbutton input:hover {
  color: #fff;
  background: #0b5f8f;
  transform: translateY(-1px);
}


/* =========================================================
   カートテーブル
========================================================= */

body.page-template-uscescart #cart_table {
  width: 100%;
  margin: 0;
  border: 1px solid #dce5ea;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 14px 34px rgba(7, 59, 103, .06);
}

body.page-template-uscescart #cart_table thead th {
  padding: 16px 12px;
  border: 0;
  border-bottom: 1px solid #dce5ea;
  color: #073b67;
  background: #edf3f6;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

body.page-template-uscescart #cart_table tbody td {
  padding: 20px 12px;
  border: 0;
  border-bottom: 1px solid #e8eef1;
  color: #26343c;
  background: #fff;
  font-size: 13px;
  line-height: 1.75;
  vertical-align: middle;
}

body.page-template-uscescart #cart_table tbody tr:last-child td {
  border-bottom: 0;
}

body.page-template-uscescart #cart_table tbody tr:hover td {
  background: #fbfcfd;
}


/* 商品画像 */
body.page-template-uscescart #cart_table img {
  width: 72px;
  height: 72px;
  padding: 5px;
  border: 1px solid #dde5e9;
  border-radius: 7px;
  background: #f5f7f8;
  object-fit: contain;
}


/* 商品名列 */
body.page-template-uscescart #cart_table td:nth-child(3) {
  min-width: 340px;
  color: #33434b;
  font-weight: 600;
}


/* 単価・金額 */
body.page-template-uscescart #cart_table td:nth-child(4),
body.page-template-uscescart #cart_table td:nth-child(6) {
  color: #073b67;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}


/* 数量 */
body.page-template-uscescart #cart_table input[type="text"],
body.page-template-uscescart #cart_table input[type="number"] {
  width: 64px !important;
  height: 40px;
  padding: 6px;
  border: 1px solid #cbd7dd;
  border-radius: 6px;
  background: #fff;
  font-size: 14px;
  text-align: center;
  box-sizing: border-box;
}

body.page-template-uscescart #cart_table input[type="text"]:focus,
body.page-template-uscescart #cart_table input[type="number"]:focus {
  border-color: #0b5f8f;
  outline: 3px solid rgba(11, 95, 143, .12);
}


/* 在庫 */
body.page-template-uscescart #cart_table td:nth-last-child(2) {
  color: #38704d;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}


/* 削除 */
body.page-template-uscescart #cart_table input[value="削除"] {
  min-width: 48px;
  padding: 8px 10px;
  border: 1px solid #e1baba;
  border-radius: 6px;
  color: #ad4343;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: .2s ease;
}

body.page-template-uscescart #cart_table input[value="削除"]:hover {
  color: #fff;
  border-color: #bd4545;
  background: #bd4545;
}


/* 合計 */
body.page-template-uscescart #cart_table tfoot th,
body.page-template-uscescart #cart_table tfoot td {
  padding: 22px 16px;
  border: 0;
  border-top: 2px solid #073b67;
  background: #f2f7f9;
}

body.page-template-uscescart #cart_table tfoot th {
  color: #073b67;
  font-size: 15px;
  font-weight: 700;
  text-align: right;
}

body.page-template-uscescart #cart_table tfoot td {
  color: #c71920;
  font-size: 22px;
  font-weight: 700;
  text-align: right;
}


/* =========================================================
   通貨表示
========================================================= */

body.page-template-uscescart .currency_code {
  margin: 18px 0 0;
  color: #7f8b92;
  font-size: 11px;
}


/* =========================================================
   下部ボタン
========================================================= */

body.page-template-uscescart .send {
  margin-top: 38px;
  padding-top: 28px;
  border-top: 1px solid #e1e8ec;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

body.page-template-uscescart .send input {
  min-width: 180px;
  min-height: 52px;
  padding: 12px 28px;
  border-radius: 7px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition:
    color .2s ease,
    background .2s ease,
    border-color .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}


/* 買い物を続ける */
body.page-template-uscescart .send input[value*="買い物を続ける"] {
  border: 1px solid #bdc9cf;
  color: #32434c;
  background: #fff;
}

body.page-template-uscescart .send input[value*="買い物を続ける"]:hover {
  color: #073b67;
  border-color: #073b67;
  background: #f5f8fa;
}


/* 次へ */
body.page-template-uscescart .send input[value*="次"] {
  border: 1px solid #073b67;
  color: #fff;
  background: linear-gradient(135deg, #073b67, #0c5c88);
  box-shadow: 0 12px 26px rgba(7, 59, 103, .18);
}

body.page-template-uscescart .send input[value*="次"]:hover {
  border-color: #1273a6;
  background: linear-gradient(135deg, #0c5c88, #1783bb);
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(7, 59, 103, .25);
}


/* =========================================================
   スマホ
========================================================= */

@media screen and (max-width: 768px) {

  body.page-template-uscescart #primary {
    width: calc(100% - 28px) !important;
    margin: 24px auto 54px !important;
    padding: 30px 16px 40px !important;
  }

  body.page-template-uscescart .cart_page_title {
    font-size: 28px;
  }

  body.page-template-uscescart .cart_navi ul {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    border: 0;
    border-radius: 0;
    overflow: visible;
  }

  body.page-template-uscescart .cart_navi li {
    min-height: 56px;
    padding: 12px 8px 12px 42px;
    border: 1px solid #d9e2e7 !important;
    border-radius: 7px;
    font-size: 12px;
  }

  body.page-template-uscescart .cart_navi li::before {
    left: 12px;
  }

  body.page-template-uscescart .upbutton {
    align-items: flex-start;
    flex-direction: column;
  }

  body.page-template-uscescart #cart_table,
  body.page-template-uscescart #cart_table tbody,
  body.page-template-uscescart #cart_table tr,
  body.page-template-uscescart #cart_table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  body.page-template-uscescart #cart_table thead {
    display: none;
  }

  body.page-template-uscescart #cart_table tbody tr {
    position: relative;
    padding: 18px;
    border-bottom: 1px solid #dce5ea;
  }

  body.page-template-uscescart #cart_table tbody td {
    padding: 5px 0;
    border: 0;
  }

  body.page-template-uscescart #cart_table td:nth-child(3) {
    min-width: 0;
  }

  body.page-template-uscescart #cart_table tfoot {
    display: block;
  }

  body.page-template-uscescart #cart_table tfoot tr,
  body.page-template-uscescart #cart_table tfoot th,
  body.page-template-uscescart #cart_table tfoot td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  body.page-template-uscescart .send {
    flex-direction: column-reverse;
  }

  body.page-template-uscescart .send input {
    width: 100%;
  }

}
/* =========================================================
   Welcart 購入フロー共通
========================================================= */

body.page-template-uscescart {
  background: #f5f8fa;
}

body.page-template-uscescart #primary {
  max-width: 1180px !important;
  width: calc(100% - 48px) !important;
  margin: 46px auto 80px !important;
  padding: 46px 42px 56px !important;
  float: none !important;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(7, 59, 103, .08);
  box-sizing: border-box;
}

body.page-template-uscescart #content {
  width: 100% !important;
  max-width: none !important;
}

body.page-template-uscescart .cart_page_title {
  margin: 0 0 30px;
  color: #073b67;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .05em;
}


/* =========================================================
   カートナビ共通
========================================================= */

body.page-template-uscescart .cart_navi {
  margin: 0 0 42px;
}

body.page-template-uscescart .cart_navi ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
  padding: 0;
  border: 1px solid #d9e2e7;
  border-radius: 10px;
  overflow: hidden;
  list-style: none;
  counter-reset: cart-step;
}

body.page-template-uscescart .cart_navi li {
  position: relative;
  min-height: 68px;
  margin: 0;
  padding: 16px 12px 16px 52px;
  border-right: 1px solid #d9e2e7;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7b8991;
  background: #f5f7f8;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  counter-increment: cart-step;
  box-sizing: border-box;
}

body.page-template-uscescart .cart_navi li:last-child {
  border-right: 0;
}

body.page-template-uscescart .cart_navi li::before {
  content: counter(cart-step);
  position: absolute;
  top: 50%;
  left: 18px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: #b7c2c8;
  font-size: 12px;
  transform: translateY(-50%);
}

body.page-template-uscescart .cart_navi li.current {
  color: #fff;
  background: linear-gradient(135deg, #073b67, #0c628e);
}

body.page-template-uscescart .cart_navi li.current::before {
  color: #073b67;
  background: #fff;
}


/* =========================================================
   お客様情報：見出し
========================================================= */

body.page-template-uscescart #customer-info h5 {
  margin: 32px 0 16px;
  padding: 12px 18px;
  border-left: 4px solid #0b5f8f;
  border-radius: 4px;
  color: #073b67;
  background: #f0f6f9;
  font-size: 15px;
  font-weight: 700;
}


/* =========================================================
   会員ログイン
========================================================= */

body.page-template-uscescart #customer-info form[name="customer_loginform"] {
  margin-bottom: 34px;
}

body.page-template-uscescart #customer-info form[name="customer_loginform"] table {
  width: 100%;
  overflow: hidden;
  border: 1px solid #dbe5ea;
  border-radius: 9px;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
}

body.page-template-uscescart #customer-info form[name="customer_loginform"] th,
body.page-template-uscescart #customer-info form[name="customer_loginform"] td {
  padding: 18px 24px;
  border-bottom: 1px solid #e7edf0;
}

body.page-template-uscescart #customer-info form[name="customer_loginform"] tr:last-child th,
body.page-template-uscescart #customer-info form[name="customer_loginform"] tr:last-child td {
  border-bottom: 0;
}

body.page-template-uscescart #customer-info form[name="customer_loginform"] th {
  width: 30%;
  color: #26343c;
  background: #f8fafb;
  font-size: 14px;
}

body.page-template-uscescart #customer-info input[type="text"],
body.page-template-uscescart #customer-info input[type="email"],
body.page-template-uscescart #customer-info input[type="password"],
body.page-template-uscescart #customer-info input[type="tel"],
body.page-template-uscescart #customer-info select,
body.page-template-uscescart #customer-info textarea,
body.page-template-uscescart #delivery-info select,
body.page-template-uscescart #delivery-info textarea {
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid #cbd8de;
  border-radius: 6px;
  background: #fff;
  color: #26343c;
  font-size: 14px;
  box-sizing: border-box;
  transition:
    border-color .2s ease,
    box-shadow .2s ease;
	margin-right: 14px;
}

body.page-template-uscescart #customer-info input[type="password"] {
  min-width: 260px;
}

body.page-template-uscescart #customer-info input:focus,
body.page-template-uscescart #customer-info select:focus,
body.page-template-uscescart #customer-info textarea:focus,
body.page-template-uscescart #delivery-info select:focus,
body.page-template-uscescart #delivery-info textarea:focus {
  border-color: #0b5f8f;
  outline: none;
  box-shadow: 0 0 0 3px rgba(11, 95, 143, .12);
}


/* パスワード忘れ */
body.page-template-uscescart #customer-info .lostpassword {
  display: inline-flex;
  margin: 12px 0 24px;
  padding: 9px 15px;
  border: 1px solid #c9d7dd;
  border-radius: 6px;
  color: #0b5f8f;
  background: #fff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

body.page-template-uscescart #customer-info .lostpassword:hover {
  color: #fff;
  border-color: #0b5f8f;
  background: #0b5f8f;
}


/* =========================================================
   非会員フォーム
========================================================= */

body.page-template-uscescart #customer-info .customer_form {
  width: 100%;
  border: 1px solid #dbe5ea;
  border-radius: 9px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background: #fff;
}

body.page-template-uscescart #customer-info .customer_form th,
body.page-template-uscescart #customer-info .customer_form td {
  padding: 18px 16px;
  border-bottom: 1px solid #e7edf0;
  vertical-align: middle;
}

body.page-template-uscescart #customer-info .customer_form tr:last-child th,
body.page-template-uscescart #customer-info .customer_form tr:last-child td {
  border-bottom: 0;
}

body.page-template-uscescart #customer-info .customer_form th {
  width: 24%;
  color: #26343c;
  background: #f8fafb;
  font-size: 14px;
  font-weight: 700;
}

body.page-template-uscescart #customer-info .customer_form td {
  font-size: 13px;
  line-height: 1.7;
}

body.page-template-uscescart #customer-info .customer_form input[type="text"],
body.page-template-uscescart #customer-info .customer_form input[type="email"],
body.page-template-uscescart #customer-info .customer_form input[type="password"],
body.page-template-uscescart #customer-info .customer_form input[type="tel"] {
  width: min(100%, 420px);
}

body.page-template-uscescart #customer-info .customer_form select {
  min-width: 220px;
  padding-right: 42px;
}






/* 郵便番号 */
body.page-template-uscescart #customer-info #customer_zip {
  width: 150px !important;
}


/* 都道府県 */
body.page-template-uscescart #customer-info #customer_pref {
  min-width: 220px;
}


/* 住所 */
body.page-template-uscescart #customer-info #customer_address1,
body.page-template-uscescart #customer-info #customer_address2,
body.page-template-uscescart #customer-info #customer_address3 {
  width: min(100%, 520px);
}


/* =========================================================
   必須表示
========================================================= */

body.page-template-uscescart #customer-info th {
  position: relative;
}

body.page-template-uscescart #customer-info th:first-letter {
  color: #d03434;
}

body.page-template-uscescart #customer-info th:has(+ td input[required])::after {
  content: "必須";
  display: inline-block;
  margin-left: 10px;
  padding: 2px 7px;
  border-radius: 3px;
  color: #fff;
  background: #d34a4a;
  font-size: 10px;
  line-height: 1.5;
  vertical-align: middle;
}


/* =========================================================
   セレクトフォーム共通
========================================================= */

body.page-template-uscescart select {
  min-height: 44px;
  padding: 9px 42px 9px 13px !important;
  border: 1px solid #cbd8de !important;
  border-radius: 6px !important;
  color: #26343c;
  background-color: #fff;
  font-size: 14px !important;
  cursor: pointer;
}


/* =========================================================
   配送・支払い方法
========================================================= */

body.page-template-uscescart #delivery-info .customer_form {
  width: 100%;
  margin-bottom: 22px;
  border: 1px solid #dbe5ea;
  border-radius: 9px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background: #fff;
}

body.page-template-uscescart #delivery-info .customer_form th,
body.page-template-uscescart #delivery-info .customer_form td {
  padding: 18px 22px;
  border-bottom: 1px solid #e7edf0;
  vertical-align: middle;
}

body.page-template-uscescart #delivery-info .customer_form th {
  width: 24%;
  background: #f8fafb;
  color: #26343c;
  font-size: 14px;
}

body.page-template-uscescart #delivery-info select {
  min-width: 260px;
}

body.page-template-uscescart #delivery-info textarea {
  width: min(100%, 520px);
  min-height: 100px;
}


/* =========================================================
   内容確認：商品表
========================================================= */

body.page-template-uscescart #confirm_table {
  width: 100%;
  border: 1px solid #dbe5ea;
  border-radius: 9px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}

body.page-template-uscescart #confirm_table tfoot th,
body.page-template-uscescart #confirm_table tfoot td {
  padding: 17px 18px !important;
  border-top: 1px solid #dbe5ea !important;
  background: #f2f7f9 !important;
  font-size: 14px !important;
}

body.page-template-uscescart #confirm_table tfoot th {
  color: #26343c;
  font-weight: 700;
  text-align: right;
}

body.page-template-uscescart #confirm_table tfoot td {
  color: #073b67;
  font-weight: 700;
  text-align: right;
}

body.page-template-uscescart #confirm_table tfoot tr:last-child th,
body.page-template-uscescart #confirm_table tfoot tr:last-child td {
  color: #fff !important;
  background: #073b67 !important;
  font-size: 17px !important;
}


/* =========================================================
   内容確認：お客様情報など
========================================================= */

body.page-template-uscescart #confirm_table + form + table,
body.page-template-uscescart table#confirm_table ~ table {
  width: 100%;
  margin-top: 24px;
}

body.page-template-uscescart table#confirm_table ~ table .ttl td,
body.page-template-uscescart table#confirm_table ~ table .ttl th {
  padding: 14px 18px;
  border-left: 4px solid #0b5f8f;
  color: #073b67;
  background: #f0f6f9;
}

body.page-template-uscescart table#confirm_table ~ table h3 {
  margin: 0;
  font-size: 17px;
}

body.page-template-uscescart table#confirm_table ~ table th,
body.page-template-uscescart table#confirm_table ~ table td {
  padding: 7px 14px;
  font-size: 13px;
  line-height: 1.65;
}

body.page-template-uscescart table#confirm_table ~ table th {
  width: 30%;
  color: #52616a;
}


/* =========================================================
   完了ページ
========================================================= */

body.page-template-uscescart .wcex_ordercompletion {
  padding: 18px 0 10px;
}

body.page-template-uscescart .wcex_ordercompletion .cart_page_title {
  margin-bottom: 18px;
  font-size: 0;
}

body.page-template-uscescart .wcex_ordercompletion .cart_page_title::after {
  content: "ご注文ありがとうございます";
  color: #073b67;
  font-size: 36px;
  font-weight: 700;
  letter-spacing: .04em;
}

body.page-template-uscescart .wcex_ordercompletion h3 {
  margin: 0 0 18px;
  color: #26343c;
  font-size: 0;
}

body.page-template-uscescart .wcex_ordercompletion h3::after {
  content: "ご注文を受け付けました";
  font-size: 20px;
  font-weight: 700;
}

body.page-template-uscescart .wcex_ordercompletion .header_explanation {
  margin: 0 0 28px;
  color: #596870;
  font-size: 15px;
  line-height: 1.9;
}

body.page-template-uscescart .wcex_ordercompletion .send {
  justify-content: flex-start;
}

body.page-template-uscescart .wcex_ordercompletion .send a,
body.page-template-uscescart .wcex_ordercompletion a {
  display: inline-flex;
  min-height: 48px;
  padding: 11px 22px;
  border: 1px solid #073b67;
  border-radius: 6px;
  align-items: center;
  justify-content: center;
  color: #073b67;
  background: #fff;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

body.page-template-uscescart .wcex_ordercompletion a:hover {
  color: #fff;
  background: #073b67;
}


/* =========================================================
   スマホ
========================================================= */

@media screen and (max-width: 768px) {

  body.page-template-uscescart #primary {
    width: calc(100% - 28px) !important;
    margin: 24px auto 54px !important;
    padding: 30px 16px 40px !important;
  }

  body.page-template-uscescart .cart_page_title {
    font-size: 28px;
  }

  body.page-template-uscescart .customer_form,
  body.page-template-uscescart .customer_form tbody,
  body.page-template-uscescart .customer_form tr,
  body.page-template-uscescart .customer_form th,
  body.page-template-uscescart .customer_form td {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
  }

  body.page-template-uscescart .customer_form th {
    padding-bottom: 8px !important;
    border-bottom: 0 !important;
  }

  body.page-template-uscescart .customer_form td {
    padding-top: 8px !important;
  }

  body.page-template-uscescart #customer-info input,
  body.page-template-uscescart #customer-info select,
  body.page-template-uscescart #delivery-info select,
  body.page-template-uscescart #delivery-info textarea {
    max-width: 100%;
  }

  body.page-template-uscescart #customer-info .name_td,
  body.page-template-uscescart #customer-info .furikana_td {
    display: grid;
    grid-template-columns: auto 1fr;
  }

  body.page-template-uscescart #customer-info .name_td input,
  body.page-template-uscescart #customer-info .furikana_td input {
    width: 100% !important;
  }

}
/* =========================================================
   内容確認：送料・内消費税・総合計の最終調整
========================================================= */

/* 送料・内消費税 */
body.page-template-uscescart #cart_table tfoot tr:not(:last-child) th,
body.page-template-uscescart #cart_table tfoot tr:not(:last-child) td {
  padding: 16px 18px !important;
  font-size: 14px !important;
  line-height: 1.4;
  background: #f4f8fa !important;
}

body.page-template-uscescart #cart_table tfoot tr:not(:last-child) th {
  color: #33434b !important;
  font-weight: 700 !important;
}

body.page-template-uscescart #cart_table tfoot tr:not(:last-child) td {
  color: #2f6f48 !important;
  font-weight: 700 !important;
}


/* 総合計金額 */
body.page-template-uscescart #cart_table tfoot tr:last-child th,
body.page-template-uscescart #cart_table tfoot tr:last-child td {
  padding: 24px 18px !important;
  background: #073b67 !important;
  color: #fff !important;
  border-top: 0 !important;
}

body.page-template-uscescart #cart_table tfoot tr:last-child th {
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: .04em;
}

body.page-template-uscescart #cart_table tfoot tr:last-child td {
  font-size: 26px !important;
  font-weight: 800 !important;
  white-space: nowrap;
}
/* =========================================================
   内容確認：お客様情報・配送先情報・その他
========================================================= */

body.page-template-uscescart #confirm_table {
  width: 100%;
  margin-top: 26px;
  border: 1px solid #dbe5ea;
  border-radius: 10px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 12px 30px rgba(7, 59, 103, .05);
}


/* セクション見出し */
body.page-template-uscescart #confirm_table tr.ttl td {
  padding: 16px 20px !important;
  border-top: 1px solid #dbe5ea;
  border-bottom: 1px solid #dbe5ea;
  border-left: 5px solid #0b5f8f;
  color: #073b67;
  background: #eef5f8;
}

body.page-template-uscescart #confirm_table tr.ttl:first-child td {
  border-top: 0;
}

body.page-template-uscescart #confirm_table tr.ttl h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .04em;
}


/* 通常行 */
body.page-template-uscescart #confirm_table tr:not(.ttl) th,
body.page-template-uscescart #confirm_table tr:not(.ttl) td {
  padding: 9px 18px;
  border: 0;
  border-bottom: 1px solid #eef2f4;
  background: #fff;
  font-size: 13px;
  line-height: 1.7;
  vertical-align: top;
}


/* 項目名 */
body.page-template-uscescart #confirm_table tr:not(.ttl) th {
  width: 28%;
  color: #52616a;
  font-weight: 700;
  text-align: left;
  background: #fafcfd;
}


/* 内容 */
body.page-template-uscescart #confirm_table tr:not(.ttl) td {
  color: #26343c;
  font-weight: 500;
}


/* 各セクション最後の行 */
body.page-template-uscescart #confirm_table tr:not(.ttl):has(+ tr.ttl) th,
body.page-template-uscescart #confirm_table tr:not(.ttl):has(+ tr.ttl) td {
  padding-bottom: 18px;
  border-bottom: 0;
}


/* 最終行 */
body.page-template-uscescart #confirm_table tr:last-child th,
body.page-template-uscescart #confirm_table tr:last-child td {
  padding-bottom: 18px;
  border-bottom: 0;
}


/* 不要な空白セル対策 */
body.page-template-uscescart #confirm_table td:empty,
body.page-template-uscescart #confirm_table th:empty {
  padding-top: 0;
  padding-bottom: 0;
}


/* セクション間を少し広く */

/* 内容確認：見出し左線を整える */
body.page-template-uscescart #confirm_table tr.ttl td {
  position: relative;
  padding: 16px 20px 16px 24px !important;
  border-left: 0 !important;
  background: #eef5f8;
}

body.page-template-uscescart #confirm_table tr.ttl td::before {
  content: "";
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 0;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: #0b5f8f;
}
body.page-template-uscescart #confirm_table tr.ttl:not(:first-child) td {
  box-shadow: inset 0 12px 0 #fff;
  padding-top: 28px !important;
}

body.page-template-uscescart #confirm_table tr.ttl:not(:first-child) td::before {
  top: 24px;
  bottom: 12px;
}
/* ヘッダーアクション */
.hanford-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.header-action {
  min-height: 42px;
  padding: 9px 16px;
  border: 1px solid #d9dfe3;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: #073b67;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition:
    color .2s ease,
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.header-action:hover {
  color: #fff;
  border-color: #073b67;
  background: #073b67;
  transform: translateY(-1px);
}

.header-action .action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.header-action .action-icon i {
  font-size: 12px;
}

.header-action.cart-action {
  color: #fff;
  border-color: #073b67;
  background: #073b67;
}

.header-action.cart-action:hover {
  border-color: #1477a9;
  background: #1477a9;
}
.header-action .action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.header-action .action-icon i {
  font-size: 12px;
}
/* Welcart ログアウトボタン */

.header-logout-action {
  cursor: pointer;
}

.header-logout-action .action-text {
  display: inline-flex;
  align-items: center;
}

.header-logout-action .action-text a {
  color: inherit;
  font: inherit;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.header-logout-action:hover .action-text a {
  color: #fff;
}

/* usces_loginoutが出す余計な余白対策 */
.header-logout-action p,
.header-logout-action span {
  margin: 0;
}
/* =========================================================
   HANFORD ヘッダー再調整
========================================================= */

.hanford-header {
  position: relative;
  z-index: 100;
  width: 100%;
  padding: 0;
  border-bottom: 1px solid rgba(7, 59, 103, .12);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 6px 24px rgba(7, 59, 103, .06);
}

.hanford-header-inner {
  width: min(1240px, calc(100% - 48px));
  min-height: 116px;
  margin: 0 auto;
  padding: 18px 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  box-sizing: border-box;
}


/* =========================================================
   左側
========================================================= */

.hanford-left {
  position: relative;
  flex: 1;
  min-width: 0;
  padding-top: 20px;
  display: flex;
  align-items: center;
  gap: 34px;
}

.hanford-copy {
  position: absolute;
  top: 0;
  left: 2px;
  margin: 0;
  color: #66747c;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .12em;
}

.hanford-logo {
  flex: 0 0 auto;
  display: block;
  line-height: 0;
}

.hanford-logo img {
  display: block;
  width: 280px;
  max-width: 100%;
  height: auto;
}


/* =========================================================
   ナビゲーション
========================================================= */

.hanford-nav {
  margin: 0;
}

.hanford-nav ul {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 24px;
  list-style: none;
}

.hanford-nav li {
  margin: 0;
}

.hanford-nav a {
  position: relative;
  display: inline-flex;
  padding: 10px 0;
  color: #073b67;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  letter-spacing: .04em;
}

.hanford-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 3px;
  left: 0;
  height: 2px;
  background: #0b6e9f;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .25s ease;
}

.hanford-nav a:hover::after {
  transform: scaleX(1);
  transform-origin: left center;
}


/* =========================================================
   右側ボタン
========================================================= */

.hanford-right {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 7px;
}

.header-action {
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid #d9e1e5;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #073b67;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  box-sizing: border-box;
  transition:
    color .2s ease,
    border-color .2s ease,
    background .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

.header-action:hover {
  color: #fff;
  border-color: #0b5f8f;
  background: #0b5f8f;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(7, 59, 103, .16);
}

.header-action .action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.header-action .action-icon i {
  font-size: 11px;
}

.header-action.cart-action {
  color: #fff;
  border-color: #073b67;
  background: #073b67;
}

.header-action.cart-action:hover {
  border-color: #1380b4;
  background: #1380b4;
}


/* ログアウト内のWelcartリンク */
.header-logout-action .action-text,
.header-logout-action .action-text a {
  margin: 0;
  color: inherit;
  font: inherit;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}


/* =========================================================
   スクロール時に使いたい場合
========================================================= */

.hanford-header {
  position: sticky;
  top: 0;
}


/* WordPress管理バー表示時 */
.admin-bar .hanford-header {
  top: 32px;
}


/* =========================================================
   タブレット
========================================================= */

@media screen and (max-width: 1050px) {

  .hanford-header-inner {
    width: min(100% - 32px, 1240px);
    gap: 18px;
  }

  .hanford-left {
    gap: 20px;
  }

  .hanford-logo img {
    width: 230px;
  }

  .hanford-nav ul {
    gap: 16px;
  }

  .header-action {
    padding-right: 11px;
    padding-left: 11px;
  }

  .header-action .action-text {
    font-size: 10px;
  }

}


/* =========================================================
   スマホ
========================================================= */

@media screen and (max-width: 768px) {

  .admin-bar .hanford-header {
    top: 46px;
  }

  .hanford-header-inner {
    width: 100%;
    min-height: 76px;
    padding: 12px 16px;
    gap: 12px;
  }

  .hanford-left {
    padding-top: 13px;
    gap: 0;
  }

  .hanford-copy {
    top: 0;
    font-size: 8px;
    letter-spacing: .08em;
  }

  .hanford-logo img {
    width: 190px;
  }

  .hanford-nav {
    display: none;
  }

  .hanford-right {
    gap: 5px;
  }

  .header-action {
    width: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
  }

  .header-action .action-icon i {
    font-size: 13px;
  }

  .header-action .action-text {
    display: none;
  }

}

body.page-template-uscescart #confirm_table tr.ttl:not(:first-child) td::before {
  top: 24px;
}
/* =========================================================
   Welcart マイページ
========================================================= */

body.page-template-uscesmember {
  background: #f5f8fa;
}

body.page-template-uscesmember #primary {
  width: calc(100% - 48px) !important;
  max-width: 1180px !important;
  margin: 46px auto 80px !important;
  padding: 46px 42px 56px !important;
  float: none !important;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(7, 59, 103, .08);
  box-sizing: border-box;
}

body.page-template-uscesmember #content {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}


/* =========================================================
   ページタイトル
========================================================= */

body.page-template-uscesmember .member_page_title {
  margin: 0 0 30px;
  color: #073b67;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .05em;
}


/* =========================================================
   会員基本情報
========================================================= */

body.page-template-uscesmember #memberpages {
  width: 100%;
}

body.page-template-uscesmember #memberinfo {
  margin-bottom: 24px;
}

body.page-template-uscesmember #memberinfo table {
  width: 100%;
  border: 1px solid #dbe5ea;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

body.page-template-uscesmember #memberinfo th,
body.page-template-uscesmember #memberinfo td {
  padding: 16px 20px;
  border: 0;
  border-bottom: 1px solid #e7edf0;
  font-size: 14px;
  line-height: 1.6;
  vertical-align: middle;
}

body.page-template-uscesmember #memberinfo tr:last-child th,
body.page-template-uscesmember #memberinfo tr:last-child td {
  border-bottom: 0;
}

body.page-template-uscesmember #memberinfo th {
  width: 150px;
  color: #52616a;
  background: #f6f9fa;
  font-weight: 700;
  text-align: left;
}

body.page-template-uscesmember #memberinfo td {
  color: #26343c;
  background: #fff;
  font-weight: 600;
}


/* =========================================================
   会員メニュー
========================================================= */

body.page-template-uscesmember .member_submenu {
  margin: 20px 0 44px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  list-style: none;
}

body.page-template-uscesmember .member_submenu li {
  margin: 0;
}

body.page-template-uscesmember .member_submenu a {
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid #cbd8de;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #073b67;
  background: #fff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition:
    color .2s ease,
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

body.page-template-uscesmember .member_submenu a:hover {
  color: #fff;
  border-color: #0b5f8f;
  background: #0b5f8f;
  transform: translateY(-2px);
}


/* =========================================================
   購入履歴見出し
========================================================= */

body.page-template-uscesmember #memberpages > h3,
body.page-template-uscesmember .history-area > h3 {
  margin: 0 0 20px;
  padding: 15px 20px;
  border-left: 4px solid #0b5f8f;
  border-radius: 6px;
  color: #073b67;
  background: #eef5f8;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}


/* =========================================================
   購入履歴 絞り込み
========================================================= */

body.page-template-uscesmember .usces_filter_history {
  margin: 0 0 22px;
  padding: 18px 20px;
  border: 1px solid #dbe5ea;
  border-radius: 9px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 18px;
  background: #f8fafb;
}

body.page-template-uscesmember .usces_filter_history label {
  color: #52616a;
  font-size: 13px;
  font-weight: 700;
}

body.page-template-uscesmember .usces_filter_history select {
  min-width: 160px;
  min-height: 42px;
  padding: 8px 40px 8px 12px;
  border: 1px solid #cbd8de;
  border-radius: 6px;
  color: #26343c;
  background: #fff;
  font-size: 13px;
}


/* =========================================================
   購入履歴ブロック
========================================================= */

body.page-template-uscesmember .history-area {
  margin-top: 20px;
}

body.page-template-uscesmember .history-area > div,
body.page-template-uscesmember .history-area .purchase_history {
  margin-bottom: 26px;
  padding: 0;
  border: 1px solid #dbe5ea;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 28px rgba(7, 59, 103, .05);
}


/* =========================================================
   購入履歴テーブル
========================================================= */

body.page-template-uscesmember .history-area table {
  width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
}

body.page-template-uscesmember .history-area th,
body.page-template-uscesmember .history-area td {
  padding: 13px 12px;
  border: 0;
  border-bottom: 1px solid #e7edf0;
  color: #26343c;
  font-size: 13px;
  line-height: 1.6;
  vertical-align: middle;
}

body.page-template-uscesmember .history-area th {
  color: #073b67;
  background: #edf3f6;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

body.page-template-uscesmember .history-area tr:last-child th,
body.page-template-uscesmember .history-area tr:last-child td {
  border-bottom: 0;
}


/* 注文情報の行 */
body.page-template-uscesmember .history-area table:first-of-type tr:first-child th,
body.page-template-uscesmember .history-area table:first-of-type tr:first-child td {
  background: #f3f7f9;
  font-weight: 700;
}


/* 商品画像 */
body.page-template-uscesmember .history-area img {
  width: 64px;
  height: 64px;
  padding: 5px;
  border: 1px solid #dfe7eb;
  border-radius: 6px;
  background: #f7f9fa;
  object-fit: contain;
}


/* 商品名 */
body.page-template-uscesmember .history-area a {
  color: #073b67;
  font-weight: 700;
  text-decoration: none;
}

body.page-template-uscesmember .history-area a:hover {
  color: #0b78aa;
  text-decoration: underline;
}


/* 金額 */
body.page-template-uscesmember .history-area td:nth-last-child(-n+3) {
  white-space: nowrap;
}


/* =========================================================
   通貨表示
========================================================= */

body.page-template-uscesmember .currency_code {
  margin: 0 0 12px;
  color: #7b878e;
  font-size: 11px;
}


/* =========================================================
   フォーム・ボタン共通
========================================================= */

body.page-template-uscesmember input[type="text"],
body.page-template-uscesmember input[type="email"],
body.page-template-uscesmember input[type="password"],
body.page-template-uscesmember input[type="tel"],
body.page-template-uscesmember select,
body.page-template-uscesmember textarea {
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid #cbd8de;
  border-radius: 6px;
  background: #fff;
  color: #26343c;
  font-size: 14px;
  box-sizing: border-box;
}

body.page-template-uscesmember input:focus,
body.page-template-uscesmember select:focus,
body.page-template-uscesmember textarea:focus {
  border-color: #0b5f8f;
  outline: none;
  box-shadow: 0 0 0 3px rgba(11, 95, 143, .12);
}

body.page-template-uscesmember input[type="submit"],
body.page-template-uscesmember input[type="button"],
body.page-template-uscesmember button {
  min-height: 44px;
  padding: 10px 20px;
  border: 1px solid #073b67;
  border-radius: 7px;
  color: #fff;
  background: #073b67;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition:
    background .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

body.page-template-uscesmember input[type="submit"]:hover,
body.page-template-uscesmember input[type="button"]:hover,
body.page-template-uscesmember button:hover {
  background: #1477a9;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(7, 59, 103, .18);
}


/* =========================================================
   サイドバー非表示
========================================================= */

body.page-template-uscesmember #secondary,
body.page-template-uscesmember .widget-area {
  display: none !important;
}


/* =========================================================
   スマホ
========================================================= */

@media screen and (max-width: 768px) {

  body.page-template-uscesmember #primary {
    width: calc(100% - 28px) !important;
    margin: 24px auto 54px !important;
    padding: 30px 16px 40px !important;
  }

  body.page-template-uscesmember .member_page_title {
    font-size: 28px;
  }

  body.page-template-uscesmember #memberinfo table,
  body.page-template-uscesmember #memberinfo tbody,
  body.page-template-uscesmember #memberinfo tr,
  body.page-template-uscesmember #memberinfo th,
  body.page-template-uscesmember #memberinfo td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  body.page-template-uscesmember #memberinfo th {
    padding-bottom: 6px;
    border-bottom: 0;
  }

  body.page-template-uscesmember #memberinfo td {
    padding-top: 6px;
  }

  body.page-template-uscesmember .member_submenu {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.page-template-uscesmember .member_submenu a {
    width: 100%;
  }

  body.page-template-uscesmember .usces_filter_history {
    align-items: flex-start;
    flex-direction: column;
  }

  body.page-template-uscesmember .history-area {
    overflow-x: auto;
  }

  body.page-template-uscesmember .history-area table {
    min-width: 760px;
  }

}
/* =========================================================
   マイページ：購入履歴の余白調整
========================================================= */

/* 注文ごとのまとまり */
body.page-template-uscesmember .history-area > table {
  margin-bottom: 0;
}

/* 注文情報テーブル */
body.page-template-uscesmember .history-area > table:nth-of-type(odd) {
  margin-top: 30px;
  border-radius: 10px 10px 0 0;
}

/* 商品明細テーブル */
body.page-template-uscesmember .history-area > table:nth-of-type(even) {
  margin-bottom: 34px;
  border-top: 0;
  border-radius: 0 0 10px 10px;
}

/* 最初の注文だけ上余白を少し抑える */
body.page-template-uscesmember .history-area > table:first-of-type {
  margin-top: 0;
}

/* 注文情報テーブルのセル */
body.page-template-uscesmember .history-area > table:nth-of-type(odd) th,
body.page-template-uscesmember .history-area > table:nth-of-type(odd) td {
  padding-top: 16px;
  padding-bottom: 16px;
}

/* 商品明細のセル */
body.page-template-uscesmember .history-area > table:nth-of-type(even) th,
body.page-template-uscesmember .history-area > table:nth-of-type(even) td {
  padding-top: 18px;
  padding-bottom: 18px;
}

/* 商品画像と商品名の間 */
body.page-template-uscesmember .history-area > table:nth-of-type(even) td:nth-child(2) {
  padding-right: 24px;
}

body.page-template-uscesmember .history-area > table:nth-of-type(even) td:nth-child(3) {
  padding-left: 20px;
  line-height: 1.8;
}

/* 注文ごとの境界を強く */
body.page-template-uscesmember .history-area > table:nth-of-type(even) {
  box-shadow: 0 14px 30px rgba(7, 59, 103, .06);
}

/* 次の注文との間隔 */
body.page-template-uscesmember .history-area > table:nth-of-type(even) + table {
  margin-top: 42px;
}
/* =========================================================
   マイページ：購入履歴フィルター調整
========================================================= */

body.page-template-uscesmember .usces_filter_history {
  padding: 20px 22px;
  gap: 18px 26px;
}

body.page-template-uscesmember .usces_filter_history .exclude_cancel,
body.page-template-uscesmember .usces_filter_history .usces_period {
  display: flex;
  align-items: center;
  gap: 10px;
}

body.page-template-uscesmember .usces_filter_history .usces_period span {
  display: inline-block;
  min-width: 42px;
  color: #52616a;
  font-size: 13px;
  font-weight: 700;
}

body.page-template-uscesmember .usces_filter_history .usces_period select {
  min-width: 150px;
  height: 42px;
  padding: 8px 38px 8px 12px;
  border: 1px solid #cbd8de;
  border-radius: 6px;
  background: #fff;
  color: #26343c;
  font-size: 13px;
}

body.page-template-uscesmember .usces_filter_history .exclude_cancel {
  padding-right: 4px;
}

body.page-template-uscesmember .usces_filter_history .exclude_cancel input {
  margin: 0;
}
body.page-template-uscesmember
.usces_filter_history
.usces_period span {
  margin-right: 14px;
}
/* 購入履歴フィルター：期間セレクト右側の余白 */
body.page-template-uscesmember
.usces_filter_history
.usces_period {
  padding-right: 24px;
}
body.page-template-uscesmember
.history-area > table:nth-of-type(odd) {
  margin-bottom: 18px;
  border-radius: 10px;
}

body.page-template-uscesmember
.history-area > table:nth-of-type(even) {
  border-radius: 10px;
}
body.page-template-uscesmember
.usces_filter_history
.usces_period {
  display: flex;
  align-items: center;
  gap: 18px;
}
body.page-template-uscesmember
#usces_history
.usce_period
select#usces_purdate {
  margin-left: 20px !important;
}

/* =========================================================
   郵便番号：住所自動入力
========================================================= */

.address-autofill-button {
  min-height: 42px !important;
  margin: 0 14px 0 14px !important;
  padding: 9px 16px !important;
  border: 1px solid #0b5f8f !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: #0b5f8f !important;
  background: #fff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  cursor: pointer;
  vertical-align: middle;
  box-shadow: none !important;
  transition:
    color .2s ease,
    background .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

.address-autofill-button:hover {
  color: #fff !important;
  background: #0b5f8f !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(7, 59, 103, .16) !important;
}

.address-autofill-button i {
  font-size: 12px;
}


/* スマホ */
@media screen and (max-width: 768px) {

  .address-autofill-button {
    margin: 10px 0 0 !important;
  }

}
/* =========================================================
   会員情報編集：住所欄の改行防止
========================================================= */

body.page-template-uscesmember
.customer_form #address1_row td,
body.page-template-uscesmember
.customer_form #address2_row td,
body.page-template-uscesmember
.customer_form #address3_row td {
  display: flex !important;
  align-items: center;
  gap: 14px;
  white-space: nowrap;
}

body.page-template-uscesmember
.customer_form #address1_row input,
body.page-template-uscesmember
.customer_form #address2_row input,
body.page-template-uscesmember
.customer_form #address3_row input {
  flex: 1 1 auto;
  width: auto !important;
  min-width: 0 !important;
  max-width: 520px;
  margin: 0 !important;
}
/* =========================================================
   セミオーダー 4ステップ調整
========================================================= */

.coaster-steps {
  max-width: 1180px;
  margin: 0 auto;
  padding: 80px 24px;
}

.coaster-steps > h2 {
  margin: 0 0 42px;
  color: #162638;
  font-size: 30px;
  font-weight: 700;
  text-align: center;
  letter-spacing: .04em;
}

.coaster-steps__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch;
}

.step-card {
  min-width: 0;
  min-height: 520px;
  padding: 28px 22px 24px;
  border: 1px solid #edf0f2;
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  background: #f8f8f8;
  box-sizing: border-box;
}

.step-num {
  width: 34px;
  height: 34px;
  margin-bottom: 18px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: #074b7c;
  font-size: 15px;
  font-weight: 700;
}

.step-card h3 {
  margin: 0 0 12px;
  color: #073b67;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

.step-card > p {
  min-height: 48px;
  margin: 0 0 20px;
  color: #35434b;
  font-size: 13px;
  line-height: 1.7;
}


/* =========================================================
   ステップ3 デザイン選択
========================================================= */

.step-card .design-box {
  min-height: 66px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid #cbd3d8;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  color: #172631;
  background: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
  box-sizing: border-box;
  cursor: pointer;
  transition:
    border-color .2s ease,
    background .2s ease,
    transform .2s ease;
}

.step-card .design-box:hover {
  border-color: #0b5f8f;
  background: #f3f8fb;
  transform: translateY(-1px);
}

.step-card .design-box.active {
  border: 2px solid #0b5f8f;
  color: #073b67;
  background: #f4f9fc;
}

.step-card .design-box i {
  flex: 0 0 auto;
  color: #0b5f8f;
  font-size: 14px;
}


/* 青い案内 */
.step-card .note-box {
  min-height: auto;
  margin-top: auto;
  padding: 15px 14px;
  border-radius: 8px;
  color: #073b67;
  background: #dceefa;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}


/* =========================================================
   ステップ4
========================================================= */

.step-card select {
  width: 100%;
  min-height: 48px;
  margin-bottom: 20px;
  padding: 10px 42px 10px 14px;
  border: 1px solid #ccd5da;
  border-radius: 8px;
  background: #fff;
  color: #172631;
  font-size: 14px;
  font-weight: 700;
}

.step-card .price-box {
  margin-top: 0;
  padding: 18px 16px;
  border-radius: 10px;
  background: #fff;
}

.step-card .price-box > b {
  display: block;
  margin-bottom: 14px;
  color: #172631;
  font-size: 14px;
}

.step-card .price-box > div {
  padding: 5px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
}

.step-card .price-box strong {
  color: #073b67;
  white-space: nowrap;
}


/* =========================================================
   色選択
========================================================= */

.color-grid {
  display: grid;
  grid-template-columns: repeat(3, 48px);
  gap: 14px;
}

.color-grid span {
  width: 48px;
  height: 48px;
  border: 1px solid #d8dde0;
  border-radius: 5px;
  cursor: pointer;
  box-sizing: border-box;
}

.color-grid span.selected {
  outline: 3px solid #0b5f8f;
  outline-offset: 4px;
}


/* =========================================================
   タブレット
========================================================= */

@media screen and (max-width: 980px) {

  .coaster-steps__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .step-card {
    min-height: 500px;
  }

}


/* =========================================================
   スマホ
========================================================= */

@media screen and (max-width: 600px) {

  .coaster-steps {
    padding: 56px 16px;
  }

  .coaster-steps > h2 {
    margin-bottom: 28px;
    font-size: 24px;
  }

  .coaster-steps__grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .step-card {
    min-height: auto;
    padding: 24px 20px;
  }

  .step-card > p {
    min-height: 0;
  }

}
/* =========================================================
   スマホヘッダー 強制調整
========================================================= */
@media screen and (max-width: 768px) {

  .hanford-header {
    position: relative !important;
    top: auto !important;
    width: 100% !important;
    padding: 0 !important;
    background: #fff !important;
  }

  .hanford-header-inner {
    width: 100% !important;
    min-height: 74px !important;
    margin: 0 !important;
    padding: 10px 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }

  .hanford-left {
    position: static !important;
    width: auto !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
  }

  .hanford-copy {
    display: none !important;
  }

  .hanford-logo {
    width: auto !important;
    max-width: 180px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    line-height: 0 !important;
  }

  .hanford-logo img {
    width: 170px !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
  }

  .hanford-nav {
    display: none !important;
  }

  .hanford-right {
    width: auto !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 5px !important;
  }

  .header-action {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .header-action .action-text {
    display: none !important;
  }

  .header-action .action-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .header-action .action-icon i {
    font-size: 12px !important;
  }

}
/* =========================================================
   コースターヒーロー スマホ調整
========================================================= */

@media screen and (max-width: 768px) {

  /* 見出しを少し小さく */
  .coaster-hero__text h1 {
    margin: 18px 0 18px !important;
    font-size: 34px !important;
    line-height: 1.35 !important;
    letter-spacing: .02em !important;
  }

  /* 説明文 */
  .coaster-hero__text > p {
    margin-bottom: 24px !important;
    font-size: 13px !important;
    line-height: 1.8 !important;
  }

  /* アイコンを横3列 */
  .coaster-icons {
    width: 100% !important;
    margin-top: 20px !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 12px !important;
  }

  .coaster-icons > div {
    min-width: 0 !important;
    padding: 0 !important;
    text-align: center !important;
  }

  .coaster-icons span {
    width: 48px !important;
    height: 48px !important;
    margin: 0 auto 8px !important;
    font-size: 18px !important;
  }

  .coaster-icons p {
    margin: 0 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    white-space: nowrap;
  }

}
/* =========================================================
   STEP3：デザイン入力パネル
========================================================= */

.design-input-panels {
  margin-top: 12px;
}

.design-input-panel {
  display: none;
}

.design-input-panel.active {
  display: block;
}

.design-input-panel label {
  display: block;
  margin: 0 0 7px;
  color: #073b67;
  font-size: 13px;
  font-weight: 700;
}

.design-input-panel textarea {
  width: 100%;
  min-height: 100px;
  padding: 12px 14px;
  border: 1px solid #cbd8de;
  border-radius: 8px;
  background: #fff;
  color: #26343c;
  font-size: 13px;
  line-height: 1.7;
  resize: vertical;
  box-sizing: border-box;
}

.design-input-panel textarea:focus {
  border-color: #0b5f8f;
  outline: none;
  box-shadow: 0 0 0 3px rgba(11, 95, 143, .12);
}
/* =========================================================
   STEP3 ファイルアップロード
========================================================= */

.coaster-upload {
  margin-top: 14px;
}

.coaster-upload__label {
  width: 100%;
  min-height: 74px;
  padding: 16px 14px;
  border: 2px dashed #0b5f8f;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #073b67;
  background: #f4f9fc;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  cursor: pointer;
  box-sizing: border-box;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.coaster-upload__label:hover {
  border-color: #073b67;
  background: #e8f4fa;
  transform: translateY(-1px);
}

.coaster-upload__label i {
  flex: 0 0 auto;
  color: #0b5f8f;
  font-size: 17px;
}

/* 標準のファイル選択ボタンを非表示 */
.coaster-upload input[type="file"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.coaster-upload__help {
  margin: 10px 0 0;
  color: #687780;
  font-size: 11px;
  line-height: 1.6;
  text-align: center;
}

.coaster-upload__status {
  display: none;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.6;
  text-align: left;
  word-break: break-all;
}

.coaster-upload__status.is-loading,
.coaster-upload__status.is-success,
.coaster-upload__status.is-error {
  display: block;
}

.coaster-upload__status.is-loading {
  color: #795d00;
  background: #fff4cc;
}

.coaster-upload__status.is-success {
  color: #176034;
  background: #e8f6ed;
}

.coaster-upload__status.is-error {
  color: #a12626;
  background: #fdecec;
}

/* STEP3カード内で収まりをよくする */
.step-card .design-input-panels {
  margin-top: 12px;
}

.step-card .design-input-panel {
  width: 100%;
}

@media screen and (max-width: 768px) {

  .coaster-upload__label {
    min-height: 64px;
    padding: 14px 12px;
    font-size: 12px;
  }

  .coaster-upload__help {
    font-size: 10px;
  }

}
.coaster-confirmation-note {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	min-height: 340px;
	padding: 40px 36px;
	background:
		linear-gradient(
			145deg,
			#f4f9fd 0%,
			#eaf4fb 100%
		);
	border: 1px solid #d7e8f3;
	border-radius: 18px;
	box-shadow: 0 12px 30px rgba(0, 75, 125, 0.08);
	position: relative;
	overflow: hidden;
}

.coaster-confirmation-note::before {
	content: "";
	position: absolute;
	top: -45px;
	right: -45px;
	width: 140px;
	height: 140px;
	border-radius: 50%;
	background: rgba(0, 105, 170, 0.06);
}

.coaster-confirmation-note__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 24px;
	border-radius: 16px;
	background: linear-gradient(145deg, #0a6ca8, #084f80);
	color: #fff;
	font-size: 27px;
	box-shadow: 0 8px 18px rgba(0, 90, 145, 0.2);
}

.coaster-confirmation-note h3 {
	margin: 0 0 18px;
	color: #083f67;
	font-size: 22px;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

.coaster-confirmation-note p {
	margin: 0;
	color: #3d5667;
	font-size: 15px;
	line-height: 2;
}

.coaster-confirmation-note p::before {
	content: "ご注文の流れ";
	display: block;
	width: fit-content;
	margin-bottom: 14px;
	padding: 5px 12px;
	border-radius: 999px;
	background: #fff;
	color: #08679f;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

@media screen and (max-width: 767px) {

	.coaster-confirmation-note {
		min-height: auto;
		padding: 30px 24px;
	}

	.coaster-confirmation-note h3 {
		font-size: 19px;
	}

	.coaster-confirmation-note p {
		font-size: 14px;
		line-height: 1.9;
	}

}
@media screen and (max-width: 768px) {

	.coaster-hero__inner {
		display: flex !important;
		flex-direction: column !important;
		width: 100% !important;
		max-width: none !important;
		padding: 40px 24px !important;
		gap: 30px !important;
	}

	.coaster-hero__text {
		width: 100% !important;
		max-width: none !important;
		text-align: center;
	}

	.coaster-hero__text h1 {
		font-size: 32px;
		line-height: 1.35;
		word-break: normal;
		overflow-wrap: normal;
	}

	.coaster-hero__text p {
		font-size: 14px;
		line-height: 1.9;
	}

	.coaster-hero__visual {
		width: 100% !important;
		max-width: 280px;
		margin: 0 auto;
	}

	.coaster-hero__visual img {
		display: block;
		width: 100%;
		height: auto;
	}

	.coaster-icons {
		justify-content: center;
		flex-wrap: wrap;
		gap: 16px;
	}

}
@media screen and (min-width: 769px) {

	/* ヘッダー内の左右間隔 */
	.hanford-header-inner {
		gap: 32px;
	}

	/* メインメニュー */
	.hanford-nav > ul {
		display: flex;
		align-items: center;
		gap: 26px;
	}

	/* 親メニューの文字を改行させない */
	.hanford-nav > ul > li > a {
		display: flex;
		align-items: center;
		justify-content: center;
		width: auto;
		min-width: max-content;
		padding: 14px 4px;
		white-space: nowrap;
		line-height: 1.4;
	}

}
/* =========================================================
   ヘッダーのロゴ・メニュー幅調整
========================================================= */

@media screen and (min-width: 1025px) {

	.hanford-header-inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 24px;
	}

	.hanford-left {
		display: flex;
		align-items: center;
		min-width: 0;
		gap: 30px;
	}

	.hanford-logo {
		flex: 0 0 auto;
		width: 240px !important;
		max-width: 240px !important;
	}

	.hanford-logo img {
		display: block;
		width: 100%;
		height: auto;
	}

	.hanford-nav {
		flex: 0 0 auto;
		margin: 0;
	}

	.hanford-nav > ul {
		display: flex;
		align-items: center;
		gap: 24px;
	}

	.hanford-nav > ul > li > a {
		white-space: nowrap;
	}

	.hanford-right {
		flex: 0 0 auto;
	}

}
/* =========================================================
   商品カテゴリー一覧
========================================================= */

.hanford-product-archive {
	width: 100%;
	padding: 80px 24px 120px;
	background: #f7fafc;
}

.hanford-product-archive__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.hanford-product-archive__header {
	margin-bottom: 48px;
	text-align: center;
}

.hanford-product-archive__label {
	margin: 0 0 10px;
	color: #0a679d;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.hanford-product-archive__title {
	margin: 0;
	color: #082f4b;
	font-size: clamp(32px, 4vw, 50px);
	line-height: 1.3;
	letter-spacing: 0.04em;
}

.hanford-product-archive__description {
	max-width: 720px;
	margin: 18px auto 0;
	color: #526472;
	font-size: 15px;
	line-height: 1.9;
}


/* 商品グリッド */

.hanford-product-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}


/* 商品カード */

.hanford-product-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	padding: 0;
	background: #fff;
	border: 1px solid #e4ebef;
	border-radius: 18px;
	box-shadow: 0 12px 32px rgba(8, 47, 75, 0.08);
	overflow: hidden;
	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}

.hanford-product-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 18px 40px rgba(8, 47, 75, 0.14);
}


/* 商品画像 */

.hanford-product-card__image {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background: #f1f5f7;
	overflow: hidden;
}

.hanford-product-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.hanford-product-card:hover
.hanford-product-card__image img {
	transform: scale(1.04);
}

.hanford-product-card__noimage {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #8ba0ad;
	gap: 12px;
}

.hanford-product-card__noimage i {
	font-size: 38px;
}

.hanford-product-card__noimage span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.hanford-product-card__soldout {
	position: absolute;
	top: 16px;
	left: 16px;
	padding: 7px 14px;
	background: rgba(20, 30, 38, 0.88);
	border-radius: 999px;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}


/* 商品内容 */

.hanford-product-card__content {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 24px;
}

.hanford-product-card__category {
	margin: 0 0 8px;
	color: #0a679d;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.hanford-product-card__title {
	margin: 0 0 18px;
	font-size: 19px;
	line-height: 1.6;
}

.hanford-product-card__title a {
	color: #082f4b;
	text-decoration: none;
}

.hanford-product-card__price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	margin-top: auto;
	color: #d81428;
}

.hanford-product-card__price span {
	font-size: 25px;
	font-weight: 800;
	line-height: 1.3;
}

.hanford-product-card__price small {
	color: #5d6971;
	font-size: 12px;
	font-weight: 600;
}

.hanford-product-card__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 22px;
	padding: 14px 18px;
	background: #084f80;
	border-radius: 10px;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.3s ease;
}

.hanford-product-card__button:hover {
	background: #063d64;
	color: #fff;
}


/* ページ送り */

.hanford-product-pagination {
	margin-top: 56px;
}

.hanford-product-pagination .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hanford-product-pagination a,
.hanford-product-pagination span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	background: #fff;
	border: 1px solid #dce5ea;
	border-radius: 8px;
	color: #083f67;
	text-decoration: none;
}

.hanford-product-pagination .current {
	background: #084f80;
	border-color: #084f80;
	color: #fff;
}


/* 商品なし */

.hanford-product-empty {
	padding: 60px 24px;
	background: #fff;
	border-radius: 16px;
	text-align: center;
}


/* =========================================================
   タブレット
========================================================= */

@media screen and (max-width: 1024px) {

	.hanford-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}

}


/* =========================================================
   スマホ
========================================================= */

@media screen and (max-width: 600px) {

	.hanford-product-archive {
		padding: 50px 16px 80px;
	}

	.hanford-product-archive__header {
		margin-bottom: 32px;
	}

	.hanford-product-archive__title {
		font-size: 30px;
	}

	.hanford-product-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.hanford-product-card__content {
		padding: 20px;
	}

	.hanford-product-card__title {
		font-size: 18px;
	}

}
/* =========================================================
   通常商品ページ
   wc_item_single_standard.php
========================================================= */

.hanford-standard-product {
	width: 100%;
	padding: 72px 24px 120px;
	background:
		linear-gradient(
			180deg,
			#f7fafc 0%,
			#ffffff 55%,
			#f7fafc 100%
		);
}

.hanford-standard-product__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}


/* =========================================================
   メイン2カラム
========================================================= */

.hanford-standard-product__main {
	display: grid;
	grid-template-columns:
		minmax(0, 1.05fr)
		minmax(360px, 0.95fr);
	gap: 64px;
	align-items: start;
}


/* =========================================================
   商品画像
========================================================= */

.hanford-standard-gallery {
	min-width: 0;
}

.hanford-standard-gallery__main {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	padding: 30px;
	background: #fff;
	border: 1px solid #e2eaf0;
	border-radius: 22px;
	box-shadow: 0 16px 40px rgba(8, 47, 75, 0.08);
	overflow: hidden;
}

.hanford-standard-gallery__main > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.hanford-standard-gallery__main img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.hanford-standard-gallery__main .favorite-button,
.hanford-standard-gallery__main .favorite-icon {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 2;
}

.hanford-standard-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin-top: 16px;
}

.hanford-standard-gallery__thumbs a {
	display: block;
	aspect-ratio: 1 / 1;
	padding: 6px;
	background: #fff;
	border: 1px solid #dfe8ee;
	border-radius: 10px;
	overflow: hidden;
	transition:
		border-color 0.25s ease,
		transform 0.25s ease;
}

.hanford-standard-gallery__thumbs a:hover {
	border-color: #0a679d;
	transform: translateY(-2px);
}

.hanford-standard-gallery__thumbs img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}


/* =========================================================
   商品情報
========================================================= */

.hanford-standard-info {
	position: sticky;
	top: 120px;
	min-width: 0;
	padding: 38px;
	background: #fff;
	border: 1px solid #e2eaf0;
	border-radius: 22px;
	box-shadow: 0 16px 40px rgba(8, 47, 75, 0.08);
}

.hanford-standard-info__label {
	margin: 0 0 10px;
	color: #0a679d;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.18em;
}

.hanford-standard-info__title {
	margin: 0;
	color: #082f4b;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.35;
	letter-spacing: 0.03em;
}

.hanford-standard-info__code {
	margin: 12px 0 0;
	color: #7a8993;
	font-size: 13px;
}

.hanford-standard-info__custom {
	margin-top: 24px;
	padding: 18px 20px;
	background: #f7fafc;
	border-radius: 12px;
	color: #435866;
	font-size: 14px;
	line-height: 1.8;
}

.hanford-standard-info__custom ul,
.hanford-standard-info__custom ol {
	margin: 0;
	padding-left: 1.4em;
}


/* =========================================================
   SKU・オプション
========================================================= */

.hanford-standard-form {
	margin-top: 30px;
}

.hanford-standard-sku {
	padding-top: 28px;
	border-top: 1px solid #e5edf2;
}

.hanford-standard-sku + .hanford-standard-sku {
	margin-top: 28px;
}

.hanford-standard-sku__name {
	margin-bottom: 18px;
	padding: 10px 14px;
	background: #edf6fb;
	border-left: 4px solid #0a679d;
	color: #083f67;
	font-size: 14px;
	font-weight: 700;
}

.hanford-standard-options {
	margin: 0 0 24px;
}

.hanford-standard-options > div {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 16px;
	align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid #edf1f4;
}

.hanford-standard-options dt {
	margin: 0;
	color: #263f50;
	font-size: 14px;
	font-weight: 700;
}

.hanford-standard-options dd {
	margin: 0;
}

.hanford-standard-options select,
.hanford-standard-options input[type="text"],
.hanford-standard-options input[type="number"],
.hanford-standard-options textarea {
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #cfdce4;
	border-radius: 8px;
	color: #223;
	font: inherit;
}

.hanford-standard-options textarea {
	min-height: 110px;
	resize: vertical;
}

.hanford-standard-options select:focus,
.hanford-standard-options input:focus,
.hanford-standard-options textarea:focus {
	outline: none;
	border-color: #0a679d;
	box-shadow: 0 0 0 3px rgba(10, 103, 157, 0.12);
}


/* =========================================================
   購入エリア
========================================================= */

.hanford-standard-purchase {
	margin-top: 22px;
	padding: 24px;
	background: #f7fafc;
	border: 1px solid #e3ebf0;
	border-radius: 16px;
}

.hanford-standard-purchase__stock {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding-bottom: 18px;
	border-bottom: 1px solid #dfe8ee;
	color: #536875;
	font-size: 14px;
}

.hanford-standard-purchase__stock strong {
	color: #0a6a42;
	font-size: 14px;
}

.hanford-standard-purchase__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
	padding: 22px 0;
}

.hanford-standard-purchase__price del {
	flex-basis: 100%;
	color: #8c99a1;
	font-size: 14px;
}

.hanford-standard-purchase__price > strong {
	color: #d81428;
	font-size: clamp(30px, 4vw, 42px);
	font-weight: 800;
	line-height: 1;
}

.hanford-standard-purchase__price small {
	color: #66757e;
	font-size: 12px;
	font-weight: 600;
}

.hanford-standard-purchase__price .taxincPrice {
	flex-basis: 100%;
	margin-top: 2px;
	color: #66757e;
	font-size: 12px;
}

.hanford-standard-cart {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 14px;
	align-items: end;
}

.hanford-standard-cart__quantity {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
}

.hanford-standard-cart__quantity > span {
	flex-basis: 100%;
	color: #304957;
	font-size: 13px;
	font-weight: 700;
}

.hanford-standard-cart__quantity input {
	width: 72px;
	height: 50px;
	padding: 8px;
	background: #fff;
	border: 1px solid #cbd8e0;
	border-radius: 8px;
	text-align: center;
	font-size: 16px;
}

.hanford-standard-cart__quantity em {
	color: #596b76;
	font-size: 13px;
	font-style: normal;
}

.hanford-standard-cart__button input,
.hanford-standard-cart__button button {
	width: 100%;
	min-height: 54px;
	padding: 14px 20px;
	background:
		linear-gradient(
			145deg,
			#0a659c,
			#084f80
		);
	border: 0;
	border-radius: 10px;
	box-shadow: 0 8px 18px rgba(8, 79, 128, 0.2);
	color: #fff;
	font-size: 16px;
	font-weight: 800;
	cursor: pointer;
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.hanford-standard-cart__button input:hover,
.hanford-standard-cart__button button:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(8, 79, 128, 0.28);
}

.hanford-standard-soldout {
	padding: 16px;
	background: #f4e9ea;
	border: 1px solid #e6c8cc;
	border-radius: 10px;
	color: #9a2634;
	font-size: 14px;
	font-weight: 700;
	text-align: center;
}

.hanford-standard-sku .error_message {
	margin-top: 14px;
	color: #c82235;
	font-size: 13px;
	font-weight: 700;
}


/* =========================================================
   商品説明
========================================================= */

.hanford-standard-description {
	margin-top: 80px;
	padding: 48px;
	background: #fff;
	border: 1px solid #e2eaf0;
	border-radius: 22px;
	box-shadow: 0 16px 40px rgba(8, 47, 75, 0.06);
}

.hanford-standard-description__heading {
	margin-bottom: 30px;
	padding-bottom: 20px;
	border-bottom: 1px solid #e3ebf0;
}

.hanford-standard-description__heading p {
	margin: 0 0 6px;
	color: #0a679d;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.18em;
}

.hanford-standard-description__heading h2 {
	margin: 0;
	color: #082f4b;
	font-size: 30px;
	line-height: 1.4;
}

.hanford-standard-description__content {
	color: #3f5360;
	font-size: 15px;
	line-height: 2;
}

.hanford-standard-description__content > *:first-child {
	margin-top: 0;
}

.hanford-standard-description__content > *:last-child {
	margin-bottom: 0;
}

.hanford-standard-description__content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
}


/* =========================================================
   関連商品
========================================================= */

.hanford-standard-product .assistance_item {
	margin-top: 80px;
}

.hanford-standard-product .assistance_item h3 {
	margin-bottom: 28px;
	color: #082f4b;
	font-size: 28px;
	text-align: center;
}


/* =========================================================
   タブレット
========================================================= */

@media screen and (max-width: 1024px) {

	.hanford-standard-product {
		padding: 60px 20px 100px;
	}

	.hanford-standard-product__main {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(320px, 0.9fr);
		gap: 36px;
	}

	.hanford-standard-info {
		top: 90px;
		padding: 28px;
	}

}


/* =========================================================
   スマホ
========================================================= */

@media screen and (max-width: 767px) {

	.hanford-standard-product {
		padding: 34px 16px 70px;
	}

	.hanford-standard-product__main {
		display: block;
	}

	.hanford-standard-gallery__main {
		padding: 18px;
		border-radius: 16px;
	}

	.hanford-standard-gallery__thumbs {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 8px;
	}

	.hanford-standard-info {
		position: static;
		margin-top: 24px;
		padding: 24px 20px;
		border-radius: 16px;
	}

	.hanford-standard-info__title {
		font-size: 28px;
	}

	.hanford-standard-options > div {
		display: block;
	}

	.hanford-standard-options dt {
		margin-bottom: 8px;
	}

	.hanford-standard-cart {
		grid-template-columns: 1fr;
	}

	.hanford-standard-cart__quantity {
		margin-bottom: 4px;
	}

	.hanford-standard-cart__quantity > span {
		flex-basis: auto;
		margin-right: 8px;
	}

	.hanford-standard-cart__button input,
	.hanford-standard-cart__button button {
		min-height: 56px;
	}

	.hanford-standard-description {
		margin-top: 42px;
		padding: 28px 20px;
		border-radius: 16px;
	}

	.hanford-standard-description__heading h2 {
		font-size: 24px;
	}

}
/* =========================================================
   通常投稿詳細
========================================================= */

body.single-post #primary {
	width: 100%;
	max-width: 100%;
	margin: 0;
}

body.single-post #content {
	width: 100%;
	max-width: 980px;
	margin: 0 auto;
	padding: 70px 24px 110px;
}

body.single-post article.post {
	padding: 48px 54px;
	background: #fff;
	border: 1px solid #e2eaf0;
	border-radius: 20px;
	box-shadow: 0 16px 40px rgba(8, 47, 75, 0.08);
}

body.single-post .entry-header {
	margin-bottom: 30px;
	padding-bottom: 24px;
	border-bottom: 1px solid #e3ebf0;
}

body.single-post .entry-title {
	margin: 0;
	color: #082f4b;
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.4;
	letter-spacing: 0.03em;
}

body.single-post .entry-meta {
	margin-top: 14px;
	color: #7a8993;
	font-size: 13px;
}

body.single-post .entry-meta a {
	color: #0a679d;
	text-decoration: none;
}

body.single-post .entry-content {
	color: #3f5360;
	font-size: 16px;
	line-height: 2;
}

body.single-post .entry-content p {
	margin: 0 0 1.8em;
}

body.single-post .entry-content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
}

body.single-post #secondary {
	display: none;
}

body.single-post .comment-area,
body.single-post #comments {
	display: none;
}

@media screen and (max-width: 767px) {

	body.single-post #content {
		padding: 40px 16px 70px;
	}

	body.single-post article.post {
		padding: 28px 20px;
		border-radius: 16px;
	}

	body.single-post .entry-title {
		font-size: 28px;
	}

	body.single-post .entry-content {
		font-size: 15px;
		line-height: 1.9;
	}

}
/* =========================================================
   通常固定ページ専用
   page-standard.php
========================================================= */

.standard-page {
	width: 100%;
	padding: 70px 24px 110px;
	background: #f7fafc;
}

.standard-page__inner {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
}

.standard-page__article {
	width: 100%;
	margin: 0;
	padding: 48px 54px;
	background: #fff;
	border: 1px solid #e2eaf0;
	border-radius: 20px;
	box-shadow: 0 16px 40px rgba(8, 47, 75, 0.08);
}

.standard-page__header {
	margin-bottom: 32px;
	padding-bottom: 24px;
	border-bottom: 1px solid #e3ebf0;
}

.standard-page__label {
	margin: 0 0 8px;
	color: #0a679d;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.18em;
}

.standard-page__title {
  margin: 0;
  color: #082f4b;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.4;
  letter-spacing: 0.03em;
}
@media (max-width: 767px) {
  .standard-page__title {
    font-size: 26px;
  }
}
.standard-page__content {
	color: #3f5360;
	font-size: 16px;
	line-height: 2;
}

.standard-page__content::after {
	content: "";
	display: block;
	clear: both;
}

.standard-page__content p {
	margin: 0 0 1.7em;
}

.standard-page__content > *:first-child {
	margin-top: 0;
}

.standard-page__content > *:last-child {
	margin-bottom: 0;
}

.standard-page__content img {
	max-width: 100%;
	height: auto;
}

@media screen and (max-width: 767px) {

	.standard-page {
		padding: 40px 16px 70px;
	}

	.standard-page__article {
		padding: 28px 20px;
		border-radius: 16px;
	}

	.standard-page__title {
		font-size: 28px;
	}

	.standard-page__content {
		font-size: 15px;
		line-height: 1.9;
	}

}
/* =========================================================
   Welcart 会員ログイン
   page-template-uscesmember
========================================================= */

/* ログインページ全体 */
body.page-template-uscesmember article#wc_login {
	width: 100% !important;
	max-width: 620px !important;
	margin: 0 auto !important;
	padding: 64px 20px 90px !important;
}

/* 外側の不要な装飾を解除 */
body.page-template-uscesmember article#wc_login .memberpages,
body.page-template-uscesmember article#wc_login .whitebox,
body.page-template-uscesmember article#wc_login .loginbox {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* ログインカード */
body.page-template-uscesmember article#wc_login .member-box {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 42px 46px !important;
	background: #fff !important;
	border: 1px solid #e1eaf0 !important;
	border-radius: 20px !important;
	box-shadow: 0 16px 40px rgba(8, 47, 75, 0.09) !important;
	box-sizing: border-box !important;
}

/* タイトル */
body.page-template-uscesmember article#wc_login h1 {
	margin: 0 0 32px !important;
	color: #082f4b !important;
	font-size: 34px !important;
	line-height: 1.4 !important;
	text-align: center !important;
}

/* フォーム */
body.page-template-uscesmember article#wc_login form#loginform {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

/* 各入力ブロック */
body.page-template-uscesmember article#wc_login form#loginform > p {
	width: 100% !important;
	margin: 0 0 20px !important;
	padding: 0 !important;
}

/* ラベル */
body.page-template-uscesmember article#wc_login form#loginform label {
	display: block !important;
	width: 100% !important;
	margin: 0 0 8px !important;
	color: #263f50 !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.6 !important;
}

/* Welcartが入れているbrを非表示 */
body.page-template-uscesmember article#wc_login form#loginform label br {
	display: none !important;
}

/* メール・パスワード */
body.page-template-uscesmember article#wc_login input#loginmail,
body.page-template-uscesmember article#wc_login input[type="password"] {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: 52px !important;
	margin: 0 !important;
	padding: 0 15px !important;
	background: #f8fbfd !important;
	border: 1px solid #cbd8e0 !important;
	border-radius: 9px !important;
	color: #223 !important;
	font-size: 15px !important;
	box-sizing: border-box !important;
}

/* フォーカス */
body.page-template-uscesmember article#wc_login input#loginmail:focus,
body.page-template-uscesmember article#wc_login input[type="password"]:focus {
	outline: none !important;
	background: #fff !important;
	border-color: #0a679d !important;
	box-shadow: 0 0 0 3px rgba(10, 103, 157, 0.12) !important;
}

/* ログイン情報を記憶 */
body.page-template-uscesmember article#wc_login p.forgetmenot {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	margin: 2px 0 22px !important;
}

body.page-template-uscesmember article#wc_login p.forgetmenot input {
	width: 16px !important;
	height: 16px !important;
	margin: 0 !important;
}

body.page-template-uscesmember article#wc_login p.forgetmenot label {
	width: auto !important;
	margin: 0 !important;
	font-size: 13px !important;
	font-weight: 500 !important;
}

/* ログインボタン */
body.page-template-uscesmember article#wc_login p.submit {
	width: 100% !important;
	margin: 0 0 20px !important;
}

body.page-template-uscesmember article#wc_login p.submit input {
	width: 100% !important;
	height: 54px !important;
	margin: 0 !important;
	padding: 0 20px !important;
	background: linear-gradient(145deg, #0a659c, #084f80) !important;
	border: 0 !important;
	border-radius: 10px !important;
	box-shadow: 0 8px 18px rgba(8, 79, 128, 0.2) !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 800 !important;
	cursor: pointer !important;
}

/* パスワード忘れ */
body.page-template-uscesmember article#wc_login form#loginform > p.nav {
	margin: 0 !important;
	text-align: center !important;
}

body.page-template-uscesmember article#wc_login form#loginform > p.nav a {
	color: #0a679d !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}

/* 新規入会エリア */
body.page-template-uscesmember article#wc_login .new-entry {
	width: 100% !important;
	margin: 32px 0 0 !important;
	padding: 30px 0 0 !important;
	border-top: 1px solid #e1e9ee !important;
	text-align: center !important;
}

body.page-template-uscesmember article#wc_login .new-entry h2 {
	margin: 0 0 20px !important;
	color: #082f4b !important;
	font-size: 21px !important;
	line-height: 1.5 !important;
}

/* 新規入会リンク */
body.page-template-uscesmember article#wc_login .new-entry p#nav {
	margin: 0 !important;
}

body.page-template-uscesmember article#wc_login .new-entry p#nav a {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 50px !important;
	padding: 12px 20px !important;
	background: #fff !important;
	border: 1px solid #0a679d !important;
	border-radius: 9px !important;
	color: #0a679d !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
}

/* エラー */
body.page-template-uscesmember article#wc_login .error_message:not(:empty) {
	margin: 0 0 20px !important;
	padding: 13px 15px !important;
	background: #fbeaec !important;
	border: 1px solid #efc9ce !important;
	border-radius: 8px !important;
	color: #a52635 !important;
	font-size: 13px !important;
}


/* =========================================================
   スマホ
========================================================= */

@media screen and (max-width: 767px) {

	body.page-template-uscesmember article#wc_login {
		padding: 36px 16px 65px !important;
	}

	body.page-template-uscesmember article#wc_login .member-box {
		padding: 28px 20px !important;
		border-radius: 16px !important;
	}

	body.page-template-uscesmember article#wc_login h1 {
		margin-bottom: 26px !important;
		font-size: 28px !important;
	}

}
.hanford-contact .contact-btn .contact-btn__text {
	font-size: 20px !important;
	line-height: 1.3;
}

.hanford-contact .contact-btn .contact-btn__text small {
	font-size: 11px;
}
.hanford-contact .contact-btn {
	font-size: 20px;
}

.hanford-contact .contact-btn .contact-btn__text {
	font-size: 20px !important;
}
.coaster-hero__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 60px;
  display: grid;
  grid-template-columns: 0.85fr 1.25fr;
  align-items: center;
  gap: 60px;
}

.coaster-hero__visual {
  display: flex;
  align-items: center;
  justify-content: center;
}

.coaster-hero__visual img {
  display: block;
  width: min(720px, 100%);
  height: auto;
  object-fit: contain;
}
@media (max-width: 767px) {
  .coaster-hero__inner {
    grid-template-columns: 1fr;
    padding: 40px 20px;
    gap: 32px;
  }

  .coaster-hero__visual img {
    width: 100%;
  }
}
/* =========================================================
   フッター Welcart 営業日カレンダー
========================================================= */

.footer-calendar {
  padding: 28px 30px;
  border-radius: 10px;
  background: #fff;
  color: #0b3552;
}

.footer-calendar__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 22px;
}

.footer-calendar__heading i {
  color: #0b6c88;
  font-size: 18px;
}

.footer-calendar__heading h3 {
  margin: 0;
  color: #0b3552;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.06em;
}


/* Welcartウィジェット全体 */
.footer-calendar .footer-calendar__widget,
.footer-calendar .widget,
.footer-calendar .ucart_calendar_body {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-calendar .ucart_calendar_body > li {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-calendar .ucart_calendar_body > li::marker {
  content: "";
}


/* カレンダー */
.footer-calendar .usces_calendar {
  width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 3px;
  table-layout: fixed;
}

.footer-calendar .usces_calendar caption {
  margin-bottom: 10px;
  color: #0b3552;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.footer-calendar .usces_calendar th,
.footer-calendar .usces_calendar td {
  width: 14.285%;
  height: 29px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  text-align: center;
  vertical-align: middle;
  font-size: 11px;
  line-height: 1;
}

.footer-calendar .usces_calendar th {
  color: #55717f;
  font-weight: 700;
}

.footer-calendar .usces_calendar td {
  background: #f1f6f7;
  color: #274653;
}


/* 日曜日 */
.footer-calendar .usces_calendar th:first-child,
.footer-calendar .usces_calendar td:first-child {
  color: #d7665d;
}


/* 土曜日 */
.footer-calendar .usces_calendar th:last-child,
.footer-calendar .usces_calendar td:last-child {
  color: #3975a5;
}


/* 空白セル */
.footer-calendar .usces_calendar td:empty {
  background: transparent;
}


/* 下部の休業日説明 */
.footer-calendar .ucart_calendar_body + ul,
.footer-calendar .ucart_calendar_body ~ ul,
.footer-calendar .business_days_exp_box,
.footer-calendar .business_days_exp {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
  font-size: 11px;
}

.footer-calendar li {
  list-style: none;
}


/* Welcartが出す不要な先頭の黒丸対策 */
.footer-calendar ul,
.footer-calendar ol {
  margin-left: 0;
  padding-left: 0;
}

.footer-calendar ul::before,
.footer-calendar li::before {
  content: none !important;
}


/* スマホ */
@media (max-width: 767px) {

  .footer-calendar {
    padding: 24px 18px;
  }

  .footer-calendar .ucart_calendar_body > li {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .footer-calendar .usces_calendar th,
  .footer-calendar .usces_calendar td {
    height: 34px;
    font-size: 12px;
  }

}
/* =========================================================
   Welcart 営業日カレンダー 最終調整
========================================================= */

/* 発送業務休日 */
.footer-calendar .usces_calendar td.businessday {
  background: #f3a35c !important;
  color: #fff !important;
  font-weight: 700;
}

/* 休業日の凡例 */
.footer-calendar .business_days_exp_box,
.footer-calendar .business_days_exp {
  margin-top: 14px !important;
  color: #0b3552;
  font-size: 11px;
  line-height: 1.6;
}

/* カレンダー下の不要な括弧・リスト記号対策 */
.footer-calendar .ucart_calendar_body,
.footer-calendar .ucart_calendar_body ul,
.footer-calendar .ucart_calendar_body li {
  list-style: none !important;
}

.footer-calendar .ucart_calendar_body li::before,
.footer-calendar .ucart_calendar_body li::after {
  content: none !important;
}

/* 休業日説明の色見本 */
.footer-calendar .business_days_exp_box span,
.footer-calendar .business_days_exp span {
  display: inline-block;
  width: 11px;
  height: 11px;
  margin-right: 6px;
  border-radius: 2px;
  background: #f3a35c;
  vertical-align: -1px;
}
/* =========================================================
   Welcartカレンダー 凡例
========================================================= */

/* Welcartが直接出力する括弧と説明文字をいったん非表示 */
.footer-calendar .ucart_calendar_body > li {
  font-size: 0 !important;
}

/* カレンダー部分の文字サイズを戻す */
.footer-calendar .ucart_calendar_body .this-month,
.footer-calendar .ucart_calendar_body .next-month {
  font-size: 12px !important;
}

/* 凡例を作り直す */
.footer-calendar .business_days_exp_box {
  grid-column: 1 / -1;
  display: flex !important;
  align-items: center;
  gap: 7px;
  width: auto !important;
  height: auto !important;
  margin-top: 14px !important;
  padding: 0 !important;
  background: none !important;
  color: #0b3552 !important;
}

/* オレンジの色見本 */
.footer-calendar .business_days_exp_box::before {
  content: "";
  display: block;
  flex: 0 0 12px;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  background: #f3a35c;
}

/* 消えた説明文字を疑似要素で再表示 */
.footer-calendar .business_days_exp_box::after {
  content: "発送業務休日";
  display: block;
  color: #0b3552;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
}

/* 発送業務休日の日付 */
.footer-calendar .usces_calendar td.businessday {
  background: #f3a35c !important;
  color: #fff !important;
  font-weight: 700;
}
/* =========================================================
   フッター右側レイアウト
========================================================= */

.hanford-footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(360px, 0.9fr) minmax(0, 1.3fr);
  gap: 60px;
  align-items: start;
}

.footer-right {
  min-width: 0;
}

.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 42px;
}


/* 購入サポート */
.footer-support {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 32px;
}

.footer-support__item {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  min-width: 0;
  padding: 20px 16px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.08);
}

.footer-support__icon {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #08758f;
  font-size: 18px;
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.12);
}

.footer-support__item h4 {
  margin: 0;
  color: #fff;
  font-size: 13px;
  line-height: 1.5;
}

.footer-support__item p {
  margin: 7px 0 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 10px;
  line-height: 1.7;
}

.footer-support__item a {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  margin-top: 10px;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  text-decoration: none;
}

.footer-support__item a:hover {
  color: #c8f1ff;
}

.footer-support__item a i {
  font-size: 8px;
}
@media (max-width: 900px) {

  .hanford-footer-inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .footer-right {
    width: 100%;
  }

  .footer-support {
    grid-template-columns: 1fr;
    margin-top: 28px;
  }

}

@media (max-width: 767px) {

  .footer-nav {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .footer-support__item {
    grid-template-columns: 46px minmax(0, 1fr);
    padding: 18px 16px;
  }

}
/* 法定ページ共通 */
.standard-page__content h2,
.standard-page__content h3 {
  color: #0d4264;
}

.standard-page__content h2 {
  margin-top: 2.5em;
  padding-bottom: 0.5em;
  border-bottom: 2px solid #d9e7ef;
}

.standard-page__content h3 {
  margin-top: 1.8em;
  padding-left: 0.8em;
  border-left: 4px solid #0d6b9b;
}

.standard-page__content p,
.standard-page__content li {
  line-height: 2;
}

.standard-page__content ul {
  padding: 1.2em 1.5em 1.2em 2.5em;
  background: #f7fafc;
  border-radius: 8px;
}
body.page-id-202 .standard-page__content a {
  color: #0d4264;
  text-decoration-color: rgba(13, 66, 100, 0.35);
  text-underline-offset: 0.2em;
  transition:
    color 0.2s ease,
    text-decoration-color 0.2s ease;
}

body.page-id-202 .standard-page__content a:hover {
  color: #0c6b94;
  text-decoration-color: #0c6b94;
}
body.page-id-202 .standard-page__content a {
  color: #0d4264;
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid rgba(13, 66, 100, 0.3);
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
}

body.page-id-202 .standard-page__content a:hover {
  color: #0c6b94;
  border-bottom-color: #0c6b94;
}
.standard-page__content a {
  color: #0d4264;
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid rgba(13, 66, 100, 0.3);
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
}

.standard-page__content a:hover {
  color: #0c6b94;
  border-bottom-color: #0c6b94;
}
/* 本文内リンク共通 */
.standard-page__content a,
.entry-content a,
.post-content a,
.page-content a {
  color: #0d4264;
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid rgba(13, 66, 100, 0.3);
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
}

.standard-page__content a:hover,
.entry-content a:hover,
.post-content a:hover,
.page-content a:hover {
  color: #0c6b94;
  border-bottom-color: #0c6b94;
}

/* メールアドレスや長いURLのはみ出し防止 */
.standard-page__content a[href^="mailto:"],
.entry-content a[href^="mailto:"],
.post-content a[href^="mailto:"],
.page-content a[href^="mailto:"] {
  overflow-wrap: anywhere;
}
/* =========================================================
   お問い合わせページ
========================================================= */

/* 冒頭案内 */
.standard-page__content .contact-intro {
  margin: 0 0 40px;
  padding: 24px 28px;
  background: #f5f9fb;
  border: 1px solid #dce8ef;
  border-radius: 12px;
}

.standard-page__content .contact-intro p {
  margin: 0 0 12px;
  line-height: 1.9;
}

.standard-page__content .contact-intro p:last-child {
  margin-bottom: 0;
}


/* フォーム全体 */
.standard-page__content .hanford-form {
  max-width: 820px;
  margin: 0 auto;
}


/* 各入力項目 */
.standard-page__content .hanford-form__field {
  margin-bottom: 30px;
}

.standard-page__content .hanford-form__field > label {
  display: block;
  margin-bottom: 10px;
  color: #123f5b;
  font-weight: 700;
  line-height: 1.6;
}


/* 必須・任意 */
.standard-page__content .hanford-form .required,
.standard-page__content .hanford-form .optional {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.5;
  vertical-align: 0.1em;
}

.standard-page__content .hanford-form .required {
  color: #fff;
  background: #c64b4b;
}

.standard-page__content .hanford-form .optional {
  color: #547080;
  background: #e8eff3;
}


/* 入力欄 */
.standard-page__content .hanford-form input[type="text"],
.standard-page__content .hanford-form input[type="email"],
.standard-page__content .hanford-form input[type="tel"],
.standard-page__content .hanford-form select,
.standard-page__content .hanford-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 14px 16px;
  color: #173f57;
  background: #fff;
  border: 1px solid #cfdde5;
  border-radius: 8px;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.6;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.standard-page__content .hanford-form select {
  min-height: 52px;
}

.standard-page__content .hanford-form textarea {
  min-height: 220px;
  resize: vertical;
}


/* フォーカス時 */
.standard-page__content .hanford-form input:focus,
.standard-page__content .hanford-form select:focus,
.standard-page__content .hanford-form textarea:focus {
  outline: none;
  border-color: #0c6b94;
  box-shadow: 0 0 0 3px rgba(12, 107, 148, 0.12);
}


/* 補足文章 */
.standard-page__content .hanford-form__note {
  margin: 10px 0 0;
  color: #607785;
  font-size: 0.9rem;
  line-height: 1.7;
}


/* プライバシーポリシー同意 */
.standard-page__content .hanford-form__privacy {
  margin: 36px 0 28px;
  padding: 20px 22px;
  background: #f5f9fb;
  border: 1px solid #dce8ef;
  border-radius: 10px;
  line-height: 1.8;
}

.standard-page__content .hanford-form__privacy label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.standard-page__content .hanford-form__privacy input[type="checkbox"] {
  flex: 0 0 auto;
  margin-top: 0.35em;
}


/* 送信ボタン */
.standard-page__content .hanford-form__submit {
  text-align: center;
}

.standard-page__content .hanford-form input[type="submit"] {
  min-width: 260px;
  padding: 16px 32px;
  color: #fff;
  background: #0d4264;
  border: 0;
  border-radius: 999px;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition:
    background 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.standard-page__content .hanford-form input[type="submit"]:hover {
  background: #0c6b94;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(13, 66, 100, 0.18);
}


/* CF7エラー */
.standard-page__content .wpcf7-not-valid-tip {
  margin-top: 8px;
  color: #b23a3a;
  font-size: 0.88rem;
}

.standard-page__content .wpcf7 form .wpcf7-response-output {
  margin: 28px 0 0;
  padding: 16px 18px;
  border-radius: 8px;
  line-height: 1.7;
}


/* スマホ */
@media screen and (max-width: 767px) {

  .standard-page__content .contact-intro {
    margin-bottom: 30px;
    padding: 20px;
  }

  .standard-page__content .hanford-form__field {
    margin-bottom: 24px;
  }

  .standard-page__content .hanford-form input[type="text"],
  .standard-page__content .hanford-form input[type="email"],
  .standard-page__content .hanford-form input[type="tel"],
  .standard-page__content .hanford-form select,
  .standard-page__content .hanford-form textarea {
    padding: 13px 14px;
    font-size: 16px;
  }

  .standard-page__content .hanford-form input[type="submit"] {
    width: 100%;
    min-width: 0;
  }
}
.standard-page__content .hanford-form__privacy label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}

.standard-page__content .hanford-form__privacy input[type="checkbox"] {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
}

.standard-page__content .hanford-form__privacy .wpcf7-list-item {
  margin: 0;
}
.standard-page__content .hanford-form__field > label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: #123f5b;
  font-weight: 700;
  line-height: 1.6;
}

.standard-page__content .hanford-form .required,
.standard-page__content .hanford-form .optional {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.4;
}
/* カートの商品数量欄だけ */
body.page-template-uscescart #cart_table input[type="text"],
body.page-template-uscescart #cart_table input[type="number"],
body.page-template-uscescart .cart_table input[type="text"],
body.page-template-uscescart .cart_table input[type="number"] {
  width: 72px !important;
  height: 40px;
  padding: 6px;
  border: 1px solid #ccd8de;
  border-radius: 6px;
  background: #fff;
  font-size: 14px;
  text-align: center;
}
/* =========================================================
   Welcart お客様情報フォーム修正
========================================================= */

/* テーブル構造を壊さない */
body.page-template-uscescart #customer-info .customer_form {
  width: 100%;
  table-layout: auto;
}





/* 郵便番号 */
body.page-template-uscescart #customer-info #zipcode_row input {
  width: 150px !important;
  margin-right: 12px;
}

/* 市区町村・番地・ビル名 */
body.page-template-uscescart #customer-info #address1_row input,
body.page-template-uscescart #customer-info #address2_row input,
body.page-template-uscescart #customer-info #address3_row input {
  width: min(100%, 520px) !important;
  margin-right: 12px;
}

/* 電話・FAX */
body.page-template-uscescart #customer-info #tel_row input,
body.page-template-uscescart #customer-info #fax_row input {
  width: min(100%, 320px) !important;
  margin-right: 12px;
}

/* メールアドレス */
body.page-template-uscescart #customer-info input[name="customer[mailaddress1]"],
body.page-template-uscescart #customer-info input[name="customer[mailaddress2]"] {
  width: min(100%, 520px) !important;
}

/* ログイン欄 */
body.page-template-uscescart #customer-info #loginmail,
body.page-template-uscescart #customer-info #loginpass {
  width: min(100%, 420px) !important;
}
/* =========================================================
   Welcart 別配送先・新規会員フォーム
========================================================= */

/* ---------------------------------------------------------
   共通テーブル
--------------------------------------------------------- */

body.page-template-uscescart #delivery_table,
body.page-template-uscesmember table.customer_form {
  width: 100%;
  table-layout: auto;
  border-collapse: separate;
  border-spacing: 0;
}

/* 左側の項目名 */
body.page-template-uscescart #delivery_table > tbody > tr > th,
body.page-template-uscesmember table.customer_form > tbody > tr > th {
  width: 24%;
  min-width: 170px;
  padding: 18px 22px !important;
  box-sizing: border-box;
  vertical-align: middle;
  background: #f8fafb;
}

/* 入力側 */
body.page-template-uscescart #delivery_table > tbody > tr > td,
body.page-template-uscesmember table.customer_form > tbody > tr > td {
  padding: 18px 22px !important;
  box-sizing: border-box;
  vertical-align: middle;
  line-height: 1.8;
}


/* ---------------------------------------------------------
   入力欄の基本デザイン
--------------------------------------------------------- */

body.page-template-uscescart #delivery_table input[type="text"],
body.page-template-uscescart #delivery_table input[type="email"],
body.page-template-uscescart #delivery_table input[type="tel"],
body.page-template-uscesmember table.customer_form input[type="text"],
body.page-template-uscesmember table.customer_form input[type="email"],
body.page-template-uscesmember table.customer_form input[type="tel"],
body.page-template-uscesmember table.customer_form input[type="password"] {
  height: 44px;
  padding: 8px 12px;
  box-sizing: border-box;
  border: 1px solid #cbd8de;
  border-radius: 6px;
  background: #fff;
  text-align: left;
}


/* ---------------------------------------------------------
   姓・名、セイ・メイ
--------------------------------------------------------- */

/* tdをflexやgridにしない */
body.page-template-uscescart #delivery_table #name_row > td.name_td,
body.page-template-uscescart #delivery_table #furigana_row > td.name_td,
body.page-template-uscesmember table.customer_form #name_row > td.name_td,
body.page-template-uscesmember table.customer_form #furigana_row > td.name_td {
  display: table-cell !important;
  width: 38%;
  padding: 18px 14px !important;
  vertical-align: middle;
  white-space: nowrap;
}

/* 姓・名などの文字 */
body.page-template-uscescart #delivery_table .member_name,
body.page-template-uscescart #delivery_table .member_furigana,
body.page-template-uscesmember table.customer_form .member_name,
body.page-template-uscesmember table.customer_form .member_furigana {
  display: inline-block;
  min-width: 1.8em;
  margin: 0 8px 0 0 !important;
  vertical-align: middle;
  font-weight: 700;
}

/* 姓名入力欄 */
body.page-template-uscescart #delivery_table #name_row input,
body.page-template-uscescart #delivery_table #furigana_row input,
body.page-template-uscesmember table.customer_form #name_row input,
body.page-template-uscesmember table.customer_form #furigana_row input {
  width: calc(100% - 44px) !important;
  max-width: 230px;
  min-width: 120px !important;
  margin: 0 !important;
  vertical-align: middle;
}


/* ---------------------------------------------------------
   郵便番号
--------------------------------------------------------- */

body.page-template-uscescart #delivery_table #zipcode_row input,
body.page-template-uscesmember table.customer_form #zipcode_row input {
  width: 150px !important;
  min-width: 150px !important;
  margin-right: 12px;
  vertical-align: middle;
}


/* ---------------------------------------------------------
   都道府県
--------------------------------------------------------- */

body.page-template-uscescart #delivery_table #states_row select,
body.page-template-uscesmember table.customer_form #states_row select {
  width: 100% !important;
  max-width: 320px;
  height: 44px;
  padding: 8px 12px;
  box-sizing: border-box;
  border: 1px solid #cbd8de;
  border-radius: 6px;
  background: #fff;
}


/* ---------------------------------------------------------
   市区町村・番地・ビル名
--------------------------------------------------------- */

body.page-template-uscescart #delivery_table #address1_row input,
body.page-template-uscescart #delivery_table #address2_row input,
body.page-template-uscescart #delivery_table #address3_row input,
body.page-template-uscesmember table.customer_form #address1_row input,
body.page-template-uscesmember table.customer_form #address2_row input,
body.page-template-uscesmember table.customer_form #address3_row input {
  width: min(100%, 380px) !important;
  min-width: 280px !important;
  margin-right: 12px !important;
  vertical-align: middle;
}


/* ---------------------------------------------------------
   電話・FAX
--------------------------------------------------------- */

body.page-template-uscescart #delivery_table #tel_row input,
body.page-template-uscescart #delivery_table #fax_row input,
body.page-template-uscesmember table.customer_form #tel_row input,
body.page-template-uscesmember table.customer_form #fax_row input {
  width: min(100%, 320px) !important;
  min-width: 220px !important;
  margin-right: 12px !important;
}


/* ---------------------------------------------------------
   メールアドレス・パスワード
--------------------------------------------------------- */

body.page-template-uscesmember table.customer_form input[type="email"],
body.page-template-uscesmember table.customer_form input[type="password"],
body.page-template-uscesmember table.customer_form input[name*="mailaddress"] {
  width: min(100%, 520px) !important;
  min-width: 280px !important;
}


/* ---------------------------------------------------------
   入力例との間隔
--------------------------------------------------------- */

body.page-template-uscescart #delivery_table input + span,
body.page-template-uscescart #delivery_table input + small,
body.page-template-uscesmember table.customer_form input + span,
body.page-template-uscesmember table.customer_form input + small {
  display: inline-block;
  margin-left: 10px;
  color: #61737d;
  font-size: 12px;
}


/* =========================================================
   スマホ
========================================================= */

@media screen and (max-width: 767px) {

  body.page-template-uscescart #delivery_table > tbody > tr > th,
  body.page-template-uscescart #delivery_table > tbody > tr > td,
  body.page-template-uscesmember table.customer_form > tbody > tr > th,
  body.page-template-uscesmember table.customer_form > tbody > tr > td {
    display: block;
    width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
  }

  body.page-template-uscescart #delivery_table #name_row > td.name_td,
  body.page-template-uscescart #delivery_table #furigana_row > td.name_td,
  body.page-template-uscesmember table.customer_form #name_row > td.name_td,
  body.page-template-uscesmember table.customer_form #furigana_row > td.name_td {
    display: block !important;
    width: 100% !important;
    white-space: normal;
  }

  body.page-template-uscescart #delivery_table #name_row input,
  body.page-template-uscescart #delivery_table #furigana_row input,
  body.page-template-uscesmember table.customer_form #name_row input,
  body.page-template-uscesmember table.customer_form #furigana_row input {
    width: calc(100% - 48px) !important;
    max-width: none;
    min-width: 0 !important;
  }

  body.page-template-uscescart #delivery_table #address1_row input,
  body.page-template-uscescart #delivery_table #address2_row input,
  body.page-template-uscescart #delivery_table #address3_row input,
  body.page-template-uscesmember table.customer_form #address1_row input,
  body.page-template-uscesmember table.customer_form #address2_row input,
  body.page-template-uscesmember table.customer_form #address3_row input,
  body.page-template-uscescart #delivery_table #tel_row input,
  body.page-template-uscescart #delivery_table #fax_row input,
  body.page-template-uscesmember table.customer_form #tel_row input,
  body.page-template-uscesmember table.customer_form #fax_row input,
  body.page-template-uscesmember table.customer_form input[type="email"],
  body.page-template-uscesmember table.customer_form input[type="password"] {
    width: 100% !important;
    max-width: none;
    min-width: 0 !important;
    margin-right: 0 !important;
  }
}
/* =========================================================
   Welcart カート画面 スマホ調整
========================================================= */

@media screen and (max-width: 767px) {

  /* ---------------------------------------------------------
     上部ステップナビ
  --------------------------------------------------------- */

  body.page-template-uscescart .cart_navi ul {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
    width: 100%;
  }

  body.page-template-uscescart .cart_navi li {
    min-width: 0 !important;
    min-height: 76px !important;
    margin: 0 !important;
    padding: 10px 4px !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;

    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: keep-all !important;

    font-size: 11px !important;
    line-height: 1.35 !important;
    text-align: center !important;
  }

  body.page-template-uscescart .cart_navi li::before {
    position: static !important;
    transform: none !important;
    flex: 0 0 auto;
  }


  /* ---------------------------------------------------------
     郵便番号欄
  --------------------------------------------------------- */

  body.page-template-uscescart #delivery_table #zipcode_row td,
  body.page-template-uscesmember table.customer_form #zipcode_row td {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
  }

  body.page-template-uscescart #delivery_table #zipcode_row input,
  body.page-template-uscesmember table.customer_form #zipcode_row input {
    width: 130px !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  body.page-template-uscescart #delivery_table #zipcode_row .address-autofill-button,
  body.page-template-uscesmember table.customer_form #zipcode_row .address-autofill-button {
    flex: 0 0 auto;
    margin: 0 !important;
    white-space: nowrap;
  }

  /* 入力例「100-1000」を下段へ */
  body.page-template-uscescart #delivery_table #zipcode_row td > small,
  body.page-template-uscescart #delivery_table #zipcode_row td > span:not(.member_name),
  body.page-template-uscesmember table.customer_form #zipcode_row td > small,
  body.page-template-uscesmember table.customer_form #zipcode_row td > span:not(.member_name) {
    flex: 0 0 100%;
    margin: 0 !important;
    color: #61737d;
    font-size: 12px;
    line-height: 1.5;
  }


  /* ---------------------------------------------------------
     住所欄の入力例も下段に
  --------------------------------------------------------- */

  body.page-template-uscescart #delivery_table #address1_row td,
  body.page-template-uscescart #delivery_table #address2_row td,
  body.page-template-uscescart #delivery_table #address3_row td,
  body.page-template-uscesmember table.customer_form #address1_row td,
  body.page-template-uscesmember table.customer_form #address2_row td,
  body.page-template-uscesmember table.customer_form #address3_row td {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 6px !important;
  }

  body.page-template-uscescart #delivery_table #address1_row input,
  body.page-template-uscescart #delivery_table #address2_row input,
  body.page-template-uscescart #delivery_table #address3_row input,
  body.page-template-uscesmember table.customer_form #address1_row input,
  body.page-template-uscesmember table.customer_form #address2_row input,
  body.page-template-uscesmember table.customer_form #address3_row input {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
  }
}
/* =========================================================
   お客様情報：フリガナ欄
========================================================= */



/* セイ・メイの文字 */
body.page-template-uscescart
#customer-info form[name="customer_form"]
#furigana_row .member_furigana {
  display: inline-block !important;
  min-width: 2em;
  margin: 0 !important;
  vertical-align: middle;
  white-space: nowrap;
}
/* =========================================================
   Welcart お名前・フリガナ行 統一
========================================================= */

/* 3列の幅を固定 */
body.page-template-uscescart
#customer-info form[name="customer_form"]
table.customer_form {
  table-layout: fixed;
}

/* 左の項目名 */
body.page-template-uscescart
#customer-info form[name="customer_form"]
#name_row > th,

body.page-template-uscescart
#customer-info form[name="customer_form"]
#furigana_row > th {
  width: 24% !important;
}

/* 姓・名、セイ・メイの各セル */
body.page-template-uscescart
#customer-info form[name="customer_form"]
#name_row > td,

body.page-template-uscescart
#customer-info form[name="customer_form"]
#furigana_row > td {
  display: table-cell !important;
  width: 38% !important;
  padding: 18px 16px !important;
  vertical-align: middle;
  white-space: nowrap;
}

/* ラベル */
body.page-template-uscescart
#customer-info form[name="customer_form"]
#name_row .member_name,

body.page-template-uscescart
#customer-info form[name="customer_form"]
#furigana_row .member_furigana {
  display: inline-block !important;
  width: 2em;
  min-width: 2em;
  margin: 0 8px 0 0 !important;
  vertical-align: middle;
  font-weight: 700;
}
.member_furigana {
  display: inline-block !important;
  width: 2em;
  min-width: 2em;
  margin: 0 8px 0 0 !important;
  vertical-align: middle;
  font-weight: 700;
}
/* 4つの入力欄を同じ幅にする */
body.page-template-uscescart
#customer-info form[name="customer_form"]
#name1,

body.page-template-uscescart
#customer-info form[name="customer_form"]
#name2,

body.page-template-uscescart
#customer-info form[name="customer_form"]
#name3,

body.page-template-uscescart
#customer-info form[name="customer_form"]
#name4 {
  display: inline-block !important;
  width: calc(100% - 42px) !important;
  max-width: 220px !important;
  min-width: 0 !important;
  margin: 0 !important;
  vertical-align: middle;
}
/* =========================================================
   Welcart お客様情報フォーム
   スマホ最終調整
========================================================= */

@media screen and (max-width: 767px) {

  /* ---------------------------------------------------------
     テーブルをスマホでは縦積みにする
  --------------------------------------------------------- */

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  table.customer_form {
    width: 100% !important;
    table-layout: auto !important;
  }

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  table.customer_form > tbody > tr > th,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  table.customer_form > tbody > tr > td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box;
  }

  /* 項目名 */
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  table.customer_form > tbody > tr > th {
    padding: 14px 14px 10px !important;
    text-align: left !important;
  }

  /* 入力欄側 */
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  table.customer_form > tbody > tr > td {
    padding: 10px 14px 16px !important;
  }


  /* ---------------------------------------------------------
     お名前・フリガナ
  --------------------------------------------------------- */

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #name_row > td,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #furigana_row > td {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 10px 14px !important;
    white-space: normal !important;
  }

  /* 姓・名・セイ・メイ */
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #name_row .member_name,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #furigana_row .member_furigana {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    text-align: left !important;
  }

  /* 4つの入力欄を同じ幅 */
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #name1,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #name2,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #name3,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #name4 {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
  }


  /* ---------------------------------------------------------
     郵便番号
  --------------------------------------------------------- */

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #zipcode_row > td {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
  }

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #zipcode_row input {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #zipcode_row .address-autofill-button {
    width: auto !important;
    min-width: 124px !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }

  /* 100-1000を下段にする */
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #zipcode_row > td {
    font-size: 0;
  }

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #zipcode_row input,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #zipcode_row .address-autofill-button {
    font-size: 13px;
  }

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #zipcode_row > td::after {
    content: "100-1000";
    grid-column: 1 / -1;
    display: block;
    margin-top: -2px;
    color: #61737d;
    font-size: 12px;
    line-height: 1.5;
  }


  /* ---------------------------------------------------------
     都道府県・住所・電話・FAX・メール・パスワード
  --------------------------------------------------------- */

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #states_row select,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #address1_row input,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #address2_row input,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #address3_row input,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #tel_row input,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #fax_row input,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  input[type="email"],
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  input[type="password"] {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
  }


  /* ---------------------------------------------------------
     住所などの入力例
  --------------------------------------------------------- */

  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #address1_row > td,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #address2_row > td,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #address3_row > td,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #tel_row > td,
  body.page-template-uscescart
  #customer-info form[name="customer_form"]
  #fax_row > td {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 6px !important;
  }
}
/* =========================================================
   Welcart カートページ・スマホ表示
========================================================= */
@media screen and (max-width: 767px) {

  /* 表全体 */
  body.page-template-uscescart #cart_table {
    display: block;
    width: 100%;
    min-width: 0 !important;
    border: 0;
    overflow: visible;
    background: transparent;
    box-shadow: none;
  }

  body.page-template-uscescart #cart_table thead {
    display: none;
  }

  body.page-template-uscescart #cart_table tbody,
  body.page-template-uscescart #cart_table tfoot {
    display: block;
    width: 100%;
  }

  /* 商品1件をカード化 */
  body.page-template-uscescart #cart_table tbody tr {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    column-gap: 14px;
    row-gap: 0;
    width: 100%;
    margin: 0 0 18px;
    padding: 18px 16px;
    border: 1px solid #dce5ea;
    border-radius: 10px;
    background: #fff;
  }

  /* 既存のセル指定を解除 */
  body.page-template-uscescart #cart_table tbody td,
  body.page-template-uscescart #cart_table tbody th {
    display: block;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    text-align: left;
    background: transparent;
  }

  /* 商品番号 */
  body.page-template-uscescart #cart_table tbody td.num {
    grid-column: 1 / -1;
    margin-bottom: 10px;
    color: #697780;
    font-size: 12px;
  }

  body.page-template-uscescart #cart_table tbody td.num::before {
    content: "商品 ";
  }

  /* 商品画像 */
  body.page-template-uscescart #cart_table tbody th.thumbnail {
    grid-column: 1;
    grid-row: 2;
  }

  body.page-template-uscescart #cart_table tbody th.thumbnail img {
    display: block;
    width: 74px !important;
    height: 74px !important;
    object-fit: cover;
    border: 1px solid #dce5ea;
    border-radius: 6px;
  }

  /* 商品名・オプション */
  body.page-template-uscescart #cart_table tbody td.productname {
    grid-column: 2;
    grid-row: 2;
    min-width: 0 !important;
    padding-bottom: 12px;
    color: #26343c;
    font-size: 13px;
    line-height: 1.7;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  body.page-template-uscescart #cart_table tbody td.productname a {
    display: block;
    margin-bottom: 4px;
    color: #073b67;
    font-weight: 700;
    line-height: 1.5;
  }

  /* 単価・数量・金額・在庫・削除 */
  body.page-template-uscescart #cart_table tbody td.unitprice,
  body.page-template-uscescart #cart_table tbody td.quantity,
  body.page-template-uscescart #cart_table tbody td.subtotal,
  body.page-template-uscescart #cart_table tbody td.stock,
  body.page-template-uscescart #cart_table tbody td.action {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    align-items: center;
    min-height: 44px;
    padding: 10px 0;
    border-top: 1px solid #edf1f3;
  }

  /* data-labelを左側に表示 */
  body.page-template-uscescart #cart_table tbody td.unitprice::before,
  body.page-template-uscescart #cart_table tbody td.quantity::before,
  body.page-template-uscescart #cart_table tbody td.subtotal::before,
  body.page-template-uscescart #cart_table tbody td.stock::before,
  body.page-template-uscescart #cart_table tbody td.action::before {
    content: attr(data-label);
    color: #697780;
    font-size: 12px;
    font-weight: 500;
  }

  body.page-template-uscescart #cart_table tbody td.unitprice,
  body.page-template-uscescart #cart_table tbody td.subtotal {
    color: #073b67;
    font-weight: 700;
  }

  body.page-template-uscescart #cart_table tbody td.stock {
    color: #27823b;
    font-weight: 700;
  }

  /* 数量入力 */
  body.page-template-uscescart #cart_table tbody td.quantity input {
    width: 72px !important;
    min-width: 0 !important;
    height: 42px;
    margin: 0;
    text-align: center;
  }

  /* 削除ボタン */
  body.page-template-uscescart #cart_table tbody td.action input,
  body.page-template-uscescart #cart_table tbody td.action button {
    justify-self: start;
    margin: 0;
  }

  /* 商品合計 */
  body.page-template-uscescart #cart_table tfoot {
    margin-top: 0;
    border-radius: 8px;
    overflow: hidden;
  }

  body.page-template-uscescart #cart_table tfoot tr {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    padding: 18px 16px;
    background: #073b67;
  }

  body.page-template-uscescart #cart_table tfoot th {
    display: none;
    width: auto !important;
    min-width: 0 !important;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
  }

  /* 「商品合計（税込）」 */
  body.page-template-uscescart #cart_table tfoot th[colspan] {
    display: block;
    margin-right: 18px;
    font-size: 15px;
    font-weight: 700;
  }

  /* 合計金額 */
  body.page-template-uscescart #cart_table tfoot th.amount {
    display: block;
    font-size: 18px;
    font-weight: 700;
  }

}
/* =========================================================
   ヘッダー固定
========================================================= */

:root {
  --hanford-header-height: 104px;
}

.hanford-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9999 !important;
  width: 100% !important;
}

body {
  padding-top: var(--hanford-header-height) !important;
}

/* スマホ */
@media screen and (max-width: 768px) {

  :root {
    --hanford-header-height: 60px;
  }

  .hanford-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
  }

  body {
    padding-top: var(--hanford-header-height) !important;
  }

}
/* =========================================================
   スマホ用ハンバーガーメニュー
========================================================= */

/* PCではハンバーガーを非表示 */
.hanford-menu-toggle {
  display: none;
}

@media screen and (max-width: 768px) {

  .hanford-header {
    overflow: visible !important;
  }

  .hanford-header-inner {
    position: relative;
    overflow: visible !important;
  }

  /* PC用ナビをスマホでは開閉式にする */
  .hanford-nav {
    display: none !important;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 9998;
    width: 100%;
    margin: 0 !important;
    padding: 10px 16px 16px;
    background: #fff;
    border-top: 1px solid rgba(7, 59, 103, 0.1);
    box-shadow: 0 12px 24px rgba(7, 59, 103, 0.14);
  }

  .hanford-nav.is-open {
    display: block !important;
  }

  .hanford-nav ul {
    display: block !important;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .hanford-nav li {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 0;
    border-bottom: 1px solid #e5edf1;
  }

  .hanford-nav li:last-child {
    border-bottom: 0;
  }

  .hanford-nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 48px;
    padding: 12px 6px;
    color: #073b67;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
  }

  .hanford-nav a::after {
    content: "›";
    margin-left: 12px;
    font-size: 22px;
    font-weight: 400;
    line-height: 1;
  }

  /* ハンバーガーボタン */
  .hanford-menu-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    margin: 0 6px 0 auto;
    padding: 0;
    border: 1px solid #dce5ea;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
  }

  .hanford-menu-toggle span {
    display: block;
    width: 16px;
    height: 2px;
    margin: 0;
    background: #073b67;
    border-radius: 2px;
    transition:
      transform 0.25s ease,
      opacity 0.25s ease;
  }

  /* 開いたとき×印にする */
  .hanford-menu-toggle.is-open span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }

  .hanford-menu-toggle.is-open span:nth-child(2) {
    opacity: 0;
  }

  .hanford-menu-toggle.is-open span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

}
.hshop-price-section {
	padding: 80px 0;
	background: #fff;
}

.hshop-price-tax {
	margin: -18px 0 14px;
	text-align: right;
	font-size: 13px;
	color: #555;
	letter-spacing: 0.04em;
}

.hshop-price-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: 18px;
	box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
	background: #fff;
}

.hshop-price-table {
	width: 100%;
	min-width: 860px;
	border-collapse: collapse;
	background: #fff;
	font-size: 14px;
}

.hshop-price-table th,
.hshop-price-table td {
	border: 1px solid #d8d8d8;
	padding: 18px 14px;
	text-align: center;
	vertical-align: middle;
}

.hshop-price-table thead th {
	background: #f0f0f0;
	font-weight: 700;
	color: #222;
}

.hshop-price-table tbody th {
	background: #fafafa;
	font-weight: 700;
	white-space: nowrap;
	color: #222;
}

.hshop-price-table tbody td {
	font-weight: 600;
	color: #222;
}

.hshop-price-table small {
	display: block;
	margin-top: 6px;
	font-size: 11px;
	font-weight: 400;
	color: #666;
	letter-spacing: 0.04em;
}

.hshop-price-notes {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	line-height: 1.9;
	color: #333;
}

.hshop-price-notes li {
	position: relative;
	padding-left: 1.4em;
}

.hshop-price-notes li::before {
	content: "※";
	position: absolute;
	left: 0;
	top: 0;
}

@media screen and (max-width: 768px) {
	.hshop-price-section {
		padding: 55px 0;
	}

	.hshop-price-tax {
		margin-top: -8px;
		text-align: left;
		font-size: 12px;
	}

	.hshop-price-scroll {
		margin-right: calc(50% - 50vw);
		margin-left: calc(50% - 50vw);
		border-radius: 0;
	}

	.hshop-price-table {
		min-width: 780px;
		font-size: 13px;
	}

	.hshop-price-table th,
	.hshop-price-table td {
		padding: 14px 10px;
	}

	.hshop-price-notes {
		font-size: 13px;
	}
}
.stand-product-list-page {
	padding: 80px 20px 100px;
	background: #fff;
}

.stand-product-list-page__inner {
	width: min(1200px, 100%);
	margin: 0 auto;
}

.stand-product-list-header {
	margin-bottom: 55px;
	text-align: center;
}

.stand-product-list-header__english {
	margin: 0 0 12px;
	color: #0a5674;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.stand-product-list-header__title {
	margin: 0;
	font-size: clamp(30px, 4vw, 48px);
	line-height: 1.3;
	color: #16384a;
}

.stand-product-list-header__description {
	margin: 24px auto 0;
	max-width: 720px;
	font-size: 16px;
	line-height: 1.9;
	color: #555;
}

.stand-product-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 36px 28px;
}

.stand-product-card {
	margin: 0;
	background: #fff;
	border: 1px solid #e2e7ea;
	border-radius: 12px;
	overflow: hidden;
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.stand-product-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 30px rgba(0, 45, 70, 0.12);
}

.stand-product-card__link {
	display: block;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.stand-product-card__image {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	padding: 20px;
	background: #f7f8f9;
	overflow: hidden;
}

.stand-product-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform 0.3s ease;
}

.stand-product-card:hover .stand-product-card__image img {
	transform: scale(1.03);
}

.stand-product-card__no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #999;
	font-size: 13px;
	letter-spacing: 0.1em;
}

.stand-product-card__body {
	padding: 24px;
}

.stand-product-card__title {
	margin: 0;
	font-size: 19px;
	line-height: 1.6;
	color: #183b4c;
}

.stand-product-card__price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 5px;
	margin: 18px 0 0;
}

.stand-product-card__price-label {
	width: 100%;
	font-size: 12px;
	color: #777;
}

.stand-product-card__price strong {
	font-size: 24px;
	color: #cf2828;
}

.stand-product-card__tax {
	font-size: 12px;
	color: #666;
}

.stand-product-card__button {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin-top: 22px;
	border-radius: 6px;
	background: #0b5877;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
}

.stand-product-list-empty {
	padding: 60px 30px;
	background: #f5f8f9;
	border-radius: 12px;
	text-align: center;
	color: #555;
}

.stand-product-list-empty p {
	margin: 0;
}

.stand-product-list-empty__admin {
	margin-top: 18px !important;
	font-size: 14px;
	line-height: 1.8;
}

.stand-product-list-empty code {
	padding: 2px 6px;
	background: #e7edef;
	border-radius: 3px;
}

.stand-product-pagination {
	margin-top: 55px;
}

.stand-product-pagination ul {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.stand-product-pagination a,
.stand-product-pagination span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid #d6e0e4;
	border-radius: 5px;
	color: #16465d;
	text-decoration: none;
}

.stand-product-pagination .current {
	background: #0b5877;
	border-color: #0b5877;
	color: #fff;
}

@media screen and (max-width: 900px) {
	.stand-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 600px) {
	.stand-product-list-page {
		padding: 50px 16px 70px;
	}

	.stand-product-list-header {
		margin-bottom: 36px;
	}

	.stand-product-list-header__description br {
		display: none;
	}

	.stand-product-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.stand-product-card__body {
		padding: 20px;
	}
}
/* ========================================
   スタンド看板専用 SKU選択
======================================== */

.hanford-signboard-selector {
	margin: 24px 0 18px;
	padding-top: 22px;
	border-top: 1px solid #e2e9ed;
}

.hanford-signboard-selector__label {
	margin: 0 0 12px;
	color: #173f53;
	font-size: 14px;
	font-weight: 700;
}

.hanford-signboard-selector__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.hanford-signboard-selector__button {
	min-height: 42px;
	padding: 9px 18px;
	border: 1px solid #cad8df;
	border-radius: 7px;
	background: #fff;
	color: #16445c;
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
}

.hanford-signboard-selector__button:hover {
	border-color: #0871a3;
}

.hanford-signboard-selector__button.is-active {
	border-color: #0871a3;
	background: #0871a3;
	color: #fff;
}

.hanford-signboard-sku {
	display: none;
	margin: 0;
	padding: 0;
	border: 0;
}

.hanford-signboard-sku.is-active {
	display: block;
}

.hanford-signboard-product .hanford-standard-purchase {
	margin-top: 0;
}

@media screen and (max-width: 600px) {

	.hanford-signboard-selector__buttons {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hanford-signboard-selector__button {
		width: 100%;
		padding-right: 10px;
		padding-left: 10px;
	}

}
/* ========================================
   スタンド看板 商品オプション
======================================== */

.hanford-signboard-product .hanford-standard-options {
	display: grid;
	gap: 20px;
	margin: 0 0 22px;
	padding: 0;
}

.hanford-signboard-product .hanford-standard-options > div {
	margin: 0;
	padding: 0;
}

.hanford-signboard-product .hanford-standard-options dt {
	margin: 0 0 10px;
	color: #173f53;
	font-size: 14px;
	font-weight: 700;
}

.hanford-signboard-product .hanford-standard-options dd {
	margin: 0;
}

/* セレクト */
.hanford-signboard-product .hanford-standard-options select {
	width: 100%;
	min-height: 46px;
	padding: 8px 40px 8px 14px;
	border: 1px solid #cbd9e0;
	border-radius: 7px;
	background-color: #fff;
	color: #173f53;
	font-size: 14px;
}

/* テキスト・備考欄 */
.hanford-signboard-product .hanford-standard-options input[type="text"],
.hanford-signboard-product .hanford-standard-options textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #cbd9e0;
	border-radius: 7px;
	background: #fff;
	color: #173f53;
	font: inherit;
	font-size: 14px;
	line-height: 1.7;
	box-sizing: border-box;
}

.hanford-signboard-product .hanford-standard-options textarea {
	min-height: 110px;
	resize: vertical;
}

/* ラジオボタン */
.hanford-signboard-product .hanford-standard-options label {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0 18px 8px 0;
	color: #173f53;
	font-size: 14px;
	cursor: pointer;
}

.hanford-signboard-product .hanford-standard-options input[type="radio"],
.hanford-signboard-product .hanford-standard-options input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: #0871a3;
}

/* オプションと価格欄の区切り */
.hanford-signboard-product .hanford-standard-options + .hanford-standard-purchase {
	padding-top: 22px;
	border-top: 1px solid #e2e9ed;
}

@media screen and (max-width: 600px) {

	.hanford-signboard-product .hanford-standard-options label {
		display: flex;
		margin-right: 0;
	}

}
/* ========================================
   スタンド看板 オプション位置調整
======================================== */

.hanford-signboard-product .hanford-standard-options {
	display: grid;
	gap: 0;
	margin: 0 0 18px;
	padding: 0;
}

.hanford-signboard-product .hanford-standard-options > div {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	align-items: center;
	gap: 16px;
	margin: 0;
	padding: 20px 0;
	border-top: 1px solid #e5ebee;
}

.hanford-signboard-product .hanford-standard-options > div:first-child {
	border-top: 0;
}

.hanford-signboard-product .hanford-standard-options dt {
	margin: 0;
	color: #173f53;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
}

.hanford-signboard-product .hanford-standard-options dd {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 18px;
	min-width: 0;
	margin: 0;
}

/* ラジオボタン */
.hanford-signboard-product .hanford-standard-options dd label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	white-space: nowrap;
}

/* 備考欄 */
.hanford-signboard-product .hanford-standard-options textarea {
	display: block;
	width: 100%;
	min-height: 88px;
	margin: 0;
	padding: 12px 14px;
	box-sizing: border-box;
}

/* 価格エリアとの間隔 */
.hanford-signboard-product .hanford-standard-options + .hanford-standard-purchase {
	margin-top: 0;
	padding-top: 18px;
	border-top: 1px solid #e5ebee;
}

@media screen and (max-width: 600px) {

	.hanford-signboard-product .hanford-standard-options > div {
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 16px 0;
	}

	.hanford-signboard-product .hanford-standard-options dd {
		gap: 10px 14px;
	}

}
/* ========================================
   スタンド看板 商品詳細・仕様表
======================================== */

.hanford-signboard-product .hanford-standard-description__content {
	color: #334f5e;
	font-size: 15px;
	line-height: 2;
}

.hanford-signboard-product .signboard-detail-section {
	margin-top: 48px;
}

.hanford-signboard-product .signboard-detail-section:first-child {
	margin-top: 0;
}

.hanford-signboard-product .signboard-detail-section h3 {
	margin: 0 0 20px;
	padding-left: 14px;
	border-left: 4px solid #0871a3;
	color: #123e54;
	font-size: 22px;
	line-height: 1.5;
}

.hanford-signboard-product .signboard-detail-section p {
	margin: 0 0 14px;
}

.hanford-signboard-product .signboard-spec-table-wrap {
	overflow-x: auto;
}

.hanford-signboard-product .signboard-spec-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	border-spacing: 0;
	background: #fff;
}

.hanford-signboard-product .signboard-spec-table th,
.hanford-signboard-product .signboard-spec-table td {
	padding: 16px 18px;
	border: 1px solid #dce6eb;
	text-align: left;
	vertical-align: top;
}

.hanford-signboard-product .signboard-spec-table th {
	width: 28%;
	background: #f1f6f8;
	color: #17455a;
	font-weight: 700;
	white-space: nowrap;
}

.hanford-signboard-product .signboard-spec-table td {
	color: #405864;
}

.hanford-signboard-product .signboard-notice-list {
	margin: 0;
	padding: 22px 24px 22px 44px;
	border-radius: 10px;
	background: #f5f8f9;
}

.hanford-signboard-product .signboard-notice-list li {
	margin: 7px 0;
	line-height: 1.8;
}

@media screen and (max-width: 600px) {

	.hanford-signboard-product .signboard-detail-section {
		margin-top: 36px;
	}

	.hanford-signboard-product .signboard-detail-section h3 {
		font-size: 19px;
	}

	.hanford-signboard-product .signboard-spec-table th,
	.hanford-signboard-product .signboard-spec-table td {
		padding: 12px;
		font-size: 13px;
	}

	.hanford-signboard-product .signboard-spec-table th {
		width: 34%;
		white-space: normal;
	}

}
.hanford-case-section {
	padding: 80px 20px;
	background: #fff;
}

.hanford-case-section__inner {
	width: min(1200px, 100%);
	margin: 0 auto;
}

.hanford-case-section__heading {
	margin-bottom: 36px;
	text-align: center;
}

.hanford-case-section__heading p {
	margin: 0 0 8px;
	color: #0b6f9e;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
}

.hanford-case-section__heading h2 {
	margin: 0;
	color: #123e54;
	font-size: 36px;
}

.hanford-case-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.hanford-case-item {
	margin: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 10px;
	background: #f3f6f7;
}

.hanford-case-item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media screen and (max-width: 900px) {
	.hanford-case-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 600px) {
	.hanford-case-section {
		padding: 55px 16px;
	}

	.hanford-case-grid {
		gap: 12px;
	}
}
/* ========================================
   制作事例
======================================== */

.hanford-works {
	position: relative;
	padding: 90px 20px;
	background: #f4f8fa;
	border-top: 1px solid #dce8ed;
}
.hanford-works::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 80px;
	height: 4px;
	background: #0871a3;
	transform: translateX(-50%);
}
.hanford-works__inner {
	width: min(1200px, 100%);
	margin: 0 auto;
}

.hanford-works__heading {
	margin-bottom: 38px;
	text-align: center;
}

.hanford-works__english {
	margin: 0 0 9px;
	color: #0871a3;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
}

.hanford-works__title {
	margin: 0;
	color: #123e54;
	font-size: clamp(30px, 4vw, 42px);
	line-height: 1.4;
}

.hanford-works__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.hanford-works__item {
	margin: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border: 1px solid #e1e9ed;
	border-radius: 10px;
	background: #f3f6f7;
}

.hanford-works__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.hanford-works__item:hover .hanford-works__image {
	transform: scale(1.03);
}

@media screen and (max-width: 900px) {

	.hanford-works__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

@media screen and (max-width: 600px) {

	.hanford-works {
		padding: 60px 16px;
	}

	.hanford-works__heading {
		margin-bottom: 28px;
	}

	.hanford-works__grid {
		gap: 12px;
	}

}
/* ========================================
   スタンド看板 商品一覧 見出し
======================================== */

.stand-product-list-heading {
	position: relative;
	margin: 0 0 42px;
	padding-top: 22px;
	text-align: center;
}

.stand-product-list-heading::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 64px;
	height: 4px;
	background: #0871a3;
	transform: translateX(-50%);
}

.stand-product-list-heading p {
	margin: 0 0 10px;
	color: #0871a3;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.2em;
}

.stand-product-list-heading h2 {
	margin: 0;
	color: #123e54;
	font-size: clamp(30px, 4vw, 42px);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.03em;
}

@media screen and (max-width: 600px) {

	.stand-product-list-heading {
		margin-bottom: 30px;
	}

	.stand-product-list-heading h2 {
		font-size: 28px;
	}

}
.hanford-works__item {
  display: flex;
  align-items: center;
  justify-content: center;
}

.hanford-works__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hanford-404 {
  padding: 120px 20px 140px;
  background: #faf8f4;
  text-align: center;
}

.hanford-404__inner {
  max-width: 760px;
  margin: 0 auto;
}

.hanford-404__en {
  margin: 0 0 20px;
  color: #b98755;
  font-size: 14px;
  letter-spacing: .18em;
  font-weight: 600;
}

.hanford-404 h1 {
  margin: 0 0 28px;
  color: #063f64;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.5;
}

.hanford-404__text {
  margin: 0 0 40px;
  color: #555;
  font-size: 16px;
  line-height: 2;
}

.hanford-404__buttons {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

.hanford-404__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  padding: 15px 24px;
  border: 1px solid #063f64;
  color: #063f64;
  text-decoration: none;
  transition: .25s;
}

.hanford-404__btn--primary {
  background: #063f64;
  color: #fff;
}

.hanford-404__btn:hover {
  opacity: .8;
}

@media (max-width: 767px) {
  .hanford-404 {
    padding: 80px 20px 100px;
  }

  .hanford-404__buttons {
    flex-direction: column;
  }

  .hanford-404__btn {
    width: 100%;
  }
}
