/* ================================
   Ichis HP - FRUITS ZIPPER 準拠版
   ================================ */

/* ---- RESET ---- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  color: #1A1A1A;
  background: #FFFFFF;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
img { max-width: 100%; height: auto; display: block; }

/* ---- VARIABLES ---- */
:root {
  --color-bg: #FFFFFF;
  --color-text: #1A1A1A;
  --color-accent: #1B3A6B; /* ネイビー */
  --color-muted: #888888;
  --color-border: #E5E5E5;
  --font-serif-en: 'Playfair Display', serif;
  --font-serif-jp: 'Noto Serif JP', serif;
  --font-sans-jp: 'Noto Sans JP', sans-serif;
  --space-section: 140px;
  --space-section-inner: 40px;
  --header-height: 90px;
  --max-width: 1280px;
}

/* ================================
   HEADER
   ================================ */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--header-height);
  background: #FFFFFF;
  z-index: 100;
  border-bottom: 1px solid var(--color-border);
}
.header-inner {
  max-width: var(--max-width);
  height: 100%;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.logo img {
  height: 50px;
  width: auto;
}
.global-nav ul {
  display: flex;
  gap: 32px;
}
.global-nav a {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.08em;
  color: var(--color-text);
  transition: opacity 0.2s;
}
.global-nav a:hover { opacity: 0.5; }
.header-cta {
  display: inline-block;
  padding: 12px 28px;
  background: var(--color-accent);
  color: #FFFFFF;
  font-family: var(--font-sans-jp);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.05em;
  transition: opacity 0.2s;
}
.header-cta:hover { opacity: 0.8; }
.menu-toggle {
  display: none;
  background: none;
  border: none;
  width: 32px;
  height: 24px;
  flex-direction: column;
  justify-content: space-between;
  cursor: pointer;
}
.menu-toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--color-text);
}

/* ================================
   HERO
   ================================ */
.hero {
  position: relative;
  width: 100vw;
  height: 85vh;
  margin-top: var(--header-height);
  overflow: hidden;
  background: #000;
}
.hero-grid {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 4px;
}
.hero-cell {
  background-size: cover;
  background-position: center;
  background-color: #111;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.25) 55%, rgba(0,0,0,0.4) 100%);
  text-align: center;
}
.hero-title {
  font-family: var(--font-serif-en);
  font-weight: 900;
  font-size: clamp(80px, 14vw, 200px);
  color: #FFFFFF;
  letter-spacing: 0.02em;
  line-height: 1;
  text-shadow: 0 4px 40px rgba(0,0,0,0.6);
  margin: 0;
}
.hero-tagline {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: clamp(11px, 1.2vw, 16px);
  color: #FFFFFF;
  letter-spacing: 0.35em;
  margin-top: 24px;
  text-shadow: 0 2px 20px rgba(0,0,0,0.6);
}

/* ================================
   SECTION COMMON
   ================================ */
.section {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: var(--space-section) 40px;
}
.section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 56px;
  padding-bottom: 0;
}
.section-header.center {
  justify-content: center;
  text-align: center;
}
.section-title {
  font-family: var(--font-serif-en);
  font-weight: 900;
  font-size: 56px;
  letter-spacing: 0.04em;
  color: var(--color-text);
  line-height: 1;
}
.view-all {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.15em;
  color: var(--color-muted);
  transition: color 0.2s;
}
.view-all:hover { color: var(--color-text); }

/* ================================
   SERVICE
   ================================ */
.service-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 48px 40px;
}
.service-card {
  display: block;
  transition: opacity 0.3s;
}
.service-card:hover { opacity: 0.85; }
.service-photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: #F0F0F0;
  margin-bottom: 20px;
  transition: opacity 0.3s;
}
.service-card:hover .service-photo { opacity: 0.9; }
.service-sub {
  font-size: 13px;
  line-height: 1.7;
  color: #666;
  margin-bottom: 10px;
}
.service-cat {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.15em;
  color: var(--color-muted);
  margin-bottom: 6px;
}
.service-name {
  font-family: var(--font-serif-jp);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
}
.service-price {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 16px;
  color: var(--color-text);
}

/* ================================
   WORKS
   ================================ */
.works-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.works-card {
  display: block;
  transition: opacity 0.3s;
}
.works-card:hover { opacity: 0.85; }
.works-photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  background-size: cover;
  background-position: center;
  background-color: #F0F0F0;
  margin-bottom: 12px;
}
.works-caption {
  font-family: var(--font-sans-jp);
  font-size: 14px;
  color: var(--color-text);
}

/* ================================
   BUSINESS
   ================================ */
.business-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.business-lead {
  font-family: var(--font-serif-jp);
  font-weight: 700;
  font-size: 26px;
  letter-spacing: 0.04em;
  margin-bottom: 24px;
  line-height: 1.5;
}
.business-body {
  font-size: 15px;
  line-height: 1.9;
  color: #333;
  margin-bottom: 32px;
}
.text-link {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--color-accent);
  border-bottom: 1px solid var(--color-accent);
  padding-bottom: 4px;
  transition: opacity 0.2s;
}
.text-link:hover { opacity: 0.7; }
.business-photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: #F0F0F0;
}

/* ================================
   INSTAGRAM + BLOG (2カラム)
   ================================ */
.two-col-section {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: var(--space-section) 40px;
}
.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
}
.two-col .section-header {
  margin-bottom: 32px;
}
.two-col .section-title {
  font-size: 40px;
}
.insta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.insta-cell {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  background-size: cover;
  background-position: center;
  background-color: #F0F0F0;
  transition: opacity 0.3s;
  overflow: hidden;
}
.insta-cell::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  transition: background 0.3s;
}
.insta-cell:hover::after {
  background: rgba(0, 0, 0, 0.35);
}
.insta-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  color: #FFFFFF;
  font-size: 28px;
  opacity: 0;
  transition: opacity 0.3s, transform 0.3s;
  z-index: 2;
  font-family: var(--font-sans-jp);
  text-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
.insta-cell:hover .insta-icon {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
/* Behold widget container */
behold-widget { display: block; width: 100%; }
.insta-cell:hover { opacity: 0.8; }
.blog-list li {
  border-bottom: 1px solid var(--color-border);
  padding: 20px 0;
}
.blog-list li:first-child { padding-top: 0; }
.blog-date {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--color-muted);
  display: block;
  margin-bottom: 6px;
}
.blog-title {
  font-size: 15px;
  line-height: 1.6;
  color: var(--color-text);
}

/* ================================
   CONTACT
   ================================ */
.contact-section {
  text-align: center;
  background: #F8F8F8;
  max-width: 100%;
  padding: 120px 40px;
  margin: 0;
}
.contact-section .section-title {
  margin-bottom: 24px;
}
.contact-lead {
  font-size: 15px;
  line-height: 1.9;
  color: #333;
  margin-bottom: 48px;
}
.contact-buttons {
  display: flex;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}
.contact-btn {
  display: inline-block;
  padding: 18px 48px;
  font-family: var(--font-sans-jp);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.05em;
  transition: opacity 0.2s;
}
.contact-btn.primary {
  background: var(--color-accent);
  color: #FFFFFF;
}
.contact-btn.secondary {
  background: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-text);
}
.contact-btn:hover { opacity: 0.8; }

/* ================================
   ORDER SECTION
   ================================ */
.order-section {
  text-align: center;
  padding: 120px 40px;
  max-width: 100%;
  background: #FFFFFF;
}
.order-section:nth-of-type(even) {
  background: #F8F8F8;
}
.order-section .section-title {
  margin-bottom: 24px;
}
.order-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 900px;
  margin: 0 auto 32px;
}
.order-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 32px 16px;
  background: #FFFFFF;
  border: 1px solid #E0E0E0;
  transition: border-color 0.2s, box-shadow 0.2s;
  text-decoration: none;
  color: inherit;
}
.order-card:hover {
  border-color: var(--color-accent);
  box-shadow: 0 4px 16px rgba(27, 58, 107, 0.12);
}
.order-plan {
  font-family: var(--font-sans-jp);
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 12px;
  color: #333;
}
.order-price {
  font-family: var(--font-serif-en);
  font-size: 28px;
  font-weight: 700;
  color: var(--color-accent);
  margin-bottom: 20px;
}
.order-btn {
  display: inline-block;
  padding: 10px 32px;
  background: var(--color-accent);
  color: #FFFFFF;
  font-family: var(--font-sans-jp);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.05em;
  transition: opacity 0.2s;
}
.order-card:hover .order-btn {
  opacity: 0.85;
}
.order-note {
  font-size: 13px;
  color: #888;
  line-height: 1.8;
}

@media (max-width: 768px) {
  .order-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .order-section {
    padding: 80px 20px;
  }
  .order-price {
    font-size: 22px;
  }
}

/* ================================
   FOOTER
   ================================ */
.site-footer {
  background: #FFFFFF;
  padding-top: 80px;
}
.footer-notice {
  background: #1A1A1A;
  color: #FFFFFF;
  text-align: center;
  padding: 20px;
  max-width: 640px;
  margin: 0 auto 60px;
  font-size: 13px;
  letter-spacing: 0.05em;
}
.footer-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 40px 60px;
  text-align: center;
}
.footer-sns {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-bottom: 32px;
}
.footer-sns a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-text);
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 13px;
  transition: background 0.2s, color 0.2s;
}
.footer-sns a:hover {
  background: var(--color-text);
  color: #FFFFFF;
}
.footer-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 24px;
  margin-bottom: 24px;
  font-size: 12px;
  color: var(--color-muted);
}
.footer-links a:hover { color: var(--color-text); }
.copyright {
  font-family: var(--font-serif-en);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--color-muted);
}

/* ================================
   STICKY CTA (SP only)
   ================================ */
.sticky-cta {
  display: none;
  position: fixed;
  bottom: 16px;
  left: 16px;
  right: 16px;
  padding: 16px;
  background: var(--color-accent);
  color: #FFFFFF;
  text-align: center;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.05em;
  z-index: 99;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

/* ================================
   MOBILE MENU
   ================================ */
.mobile-menu {
  display: none;
  position: fixed;
  inset: 0;
  background: #FFFFFF;
  z-index: 99;
  padding-top: var(--header-height);
  opacity: 0;
  transition: opacity 0.3s;
}
.mobile-menu.is-open {
  display: flex;
  opacity: 1;
  align-items: center;
  justify-content: center;
}
.mobile-menu nav { text-align: center; }
.mobile-menu ul { margin-bottom: 48px; }
.mobile-menu li {
  margin-bottom: 28px;
}
.mobile-menu a {
  font-family: var(--font-serif-en);
  font-weight: 900;
  font-size: 28px;
  letter-spacing: 0.08em;
  color: var(--color-text);
  transition: opacity 0.2s;
}
.mobile-menu a:hover { opacity: 0.5; }
.mobile-menu-cta {
  display: inline-block;
  padding: 16px 48px;
  background: var(--color-accent);
  color: #FFFFFF !important;
  font-family: var(--font-sans-jp) !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  letter-spacing: 0.05em;
}
.menu-toggle.is-open span:nth-child(1) {
  transform: translateY(11px) rotate(45deg);
}
.menu-toggle.is-open span:nth-child(2) {
  opacity: 0;
}
.menu-toggle.is-open span:nth-child(3) {
  transform: translateY(-11px) rotate(-45deg);
}
.menu-toggle span {
  transition: transform 0.3s, opacity 0.3s;
}



/* ================================
   NEWS
   ================================ */
.news-list {
  list-style: none;
  padding: 0;
}
.news-item {
  display: flex;
  gap: 16px;
  align-items: baseline;
  padding: 16px 0;
  border-bottom: 1px solid var(--color-border);
}
.news-item:first-child { padding-top: 0; }
.news-date {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--color-muted);
  flex-shrink: 0;
}
.news-title {
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text);
  transition: opacity 0.2s;
}
a.news-title:hover { opacity: 0.6; }

/* ================================
   ANOTHER CITY
   ================================ */
.anothercity-section {
  max-width: 100%;
  margin: 0;
  padding: 0;
}
.ac-hero {
  position: relative;
  height: 50vh;
  min-height: 320px;
  background: #1A1A1A;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ac-hero-overlay {
  text-align: center;
  padding: 40px;
}
.ac-label {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.4em;
  color: rgba(255,255,255,0.5);
  margin-bottom: 20px;
}
.ac-title {
  font-family: var(--font-serif-en);
  font-weight: 900;
  font-size: clamp(40px, 8vw, 72px);
  color: #FFFFFF;
  letter-spacing: 0.04em;
  margin-bottom: 20px;
}
.ac-desc {
  font-size: 15px;
  line-height: 2;
  color: rgba(255,255,255,0.7);
}
.ac-products {
  background: #F8F8F8;
  padding: 80px 40px;
}
.ac-products-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.ac-product {
  display: block;
  transition: opacity 0.3s;
}
.ac-product:hover { opacity: 0.85; }
.ac-product-img {
  width: 100%;
  aspect-ratio: 3 / 4;
  background-size: cover;
  background-position: center top;
  background-color: #E0E0E0;
  margin-bottom: 16px;
}
.ac-product-name {
  font-family: var(--font-sans-jp);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text);
  margin-bottom: 4px;
}
.ac-product-price {
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 15px;
  color: var(--color-text);
}
.ac-shop-link {
  text-align: center;
  margin-top: 48px;
}
.anothercity-link {
  display: inline-block;
  padding: 14px 48px;
  border: 1px solid var(--color-text);
  font-family: var(--font-serif-en);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.15em;
  color: var(--color-text);
  transition: background 0.2s, color 0.2s;
}
.anothercity-link:hover {
  background: var(--color-text);
  color: #FFFFFF;
}

/* ================================
   RESPONSIVE (SP)
   ================================ */
@media (max-width: 768px) {
  :root {
    --space-section: 80px;
    --header-height: 64px;
  }
  .header-inner { padding: 0 20px; gap: 16px; }
  .logo img { height: 36px; }
  .global-nav { display: none; }
  .header-cta { display: none; }
  .menu-toggle { display: flex; }

  .hero { height: 75vh; }
  .hero-grid { gap: 2px; }
  .hero-overlay { padding: 0 24px; }
  .hero-tagline { margin-top: 16px; letter-spacing: 0.25em; }

  .section { padding: var(--space-section) 20px; }
  .section-title { font-size: 36px; }
  .section-header { margin-bottom: 32px; }

  .service-grid { grid-template-columns: 1fr; gap: 32px; }
  .works-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .business-grid { grid-template-columns: 1fr; gap: 32px; }
  .business-lead { font-size: 20px; }

  .two-col { grid-template-columns: 1fr; gap: 60px; }
  .two-col .section-title { font-size: 32px; }

  .contact-section { padding: 80px 20px; }
  .contact-buttons { flex-direction: column; gap: 12px; }
  .contact-btn { width: 100%; }

  .footer-inner { padding: 0 20px 100px; }
  .footer-links { gap: 12px; font-size: 11px; }

  .sticky-cta { display: block; }
  .ac-hero { height: 40vh; min-height: 240px; }
  .ac-products { padding: 60px 20px; }
  .ac-products-inner { grid-template-columns: repeat(2, 1fr); gap: 16px; }

}

@media (max-width: 1024px) and (min-width: 769px) {
  .works-grid { grid-template-columns: repeat(2, 1fr); }
  .section-title { font-size: 44px; }
}
.contact-form-area { max-width: 640px; margin: 0 auto; text-align: left; }
.contact-form-area .wpcf7-form label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 24px; }
.contact-form-area .wpcf7-form input[type="text"],
.contact-form-area .wpcf7-form input[type="email"],
.contact-form-area .wpcf7-form input[type="tel"],
.contact-form-area .wpcf7-form textarea { width: 100%; padding: 12px 16px; border: 1px solid #E5E5E5; font-size: 15px; margin-top: 8px; background: #FFF; }
.contact-form-area .wpcf7-form input:focus,
.contact-form-area .wpcf7-form textarea:focus { outline: none; border-color: #1B3A6B; }
.contact-form-area .wpcf7-form textarea { min-height: 160px; resize: vertical; }
.contact-form-area .wpcf7-form input[type="submit"] { display: block; width: 100%; padding: 18px; background: #1B3A6B; color: #FFF; border: none; font-size: 16px; cursor: pointer; margin-top: 16px; }
.contact-form-area .wpcf7-form input[type="submit"]:hover { opacity: 0.8; }

/* === Smash Balloon Instagram Feed === */
#sb_instagram .sbi_header_text,
#sb_instagram .sb_instagram_header { display: none !important; }
#sb_instagram .sbi_follow_btn { display: none !important; }
#sb_instagram #sbi_load { display: none !important; }
#sb_instagram #sbi_images { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 8px !important; }
#sb_instagram #sbi_images .sbi_item { width: 100% !important; padding: 0 !important; }
#sb_instagram #sbi_images .sbi_item:nth-child(n+7) { display: none !important; }
#sb_instagram .sbi_photo_wrap { padding-bottom: 100% !important; }
@media (max-width: 768px) {
  #sb_instagram #sbi_images { grid-template-columns: repeat(2, 1fr) !important; }
  #sb_instagram #sbi_images .sbi_item:nth-child(n+7) { display: none !important; }
}
/* === Blog Grid Section === */
.blog-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  width: 100%;
}
.blog-card {
  display: block;
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--color-border);
  overflow: hidden;
  transition: box-shadow 0.3s, transform 0.3s;
  background: #FFF;
}
.blog-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}
.blog-thumb {
  width: 100%;
  padding-bottom: 56%;
  background-size: cover;
  background-position: center;
  position: relative;
}
.blog-thumb-placeholder { background: #F0F0F0; }
.blog-card-body { padding: 16px 18px; }
.blog-cat {
  display: inline-block;
  font-family: var(--font-serif-en);
  font-size: 11px;
  color: var(--color-accent);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.blog-card .blog-title {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  margin: 0 0 10px;
  color: var(--color-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.blog-card .blog-date {
  font-family: var(--font-serif-en);
  font-size: 12px;
  color: var(--color-muted);
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .blog-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .blog-card-body { padding: 12px 14px; }
  .blog-card .blog-title { font-size: 13px; }
}
@media (max-width: 480px) {
  .blog-grid { grid-template-columns: 1fr; gap: 16px; }
}



/* === Blog Single Post === */
.blog-single-container {
  max-width: 800px;
  margin: 0 auto;
  padding: 120px 40px 80px;
}
.blog-single-header {
  margin-bottom: 40px;
}
.blog-single-cat {
  display: inline-block;
  font-family: var(--font-serif-en);
  font-size: 12px;
  color: var(--color-accent);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.blog-single-title {
  font-family: var(--font-sans-jp);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-text);
  margin: 0 0 16px;
}
.blog-single-date {
  font-family: var(--font-serif-en);
  font-size: 14px;
  color: var(--color-muted);
  letter-spacing: 0.05em;
}
.blog-single-hero {
  margin: 0 0 48px;
}
.blog-single-hero img {
  width: 100%;
  height: auto;
  display: block;
}
.blog-single-body {
  font-size: 16px;
  line-height: 1.9;
  color: var(--color-text);
}
.blog-single-body h2 {
  font-size: 22px;
  font-weight: 700;
  margin: 56px 0 20px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--color-accent);
}
.blog-single-body h3 {
  font-size: 18px;
  font-weight: 700;
  margin: 40px 0 16px;
}
.blog-single-body p {
  margin: 0 0 20px;
}
.blog-single-body ul, .blog-single-body ol {
  margin: 0 0 24px;
  padding-left: 24px;
}
.blog-single-body li {
  margin-bottom: 8px;
  line-height: 1.8;
}
.blog-single-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0;
  font-size: 15px;
}
.blog-single-body th, .blog-single-body td {
  border: 1px solid var(--color-border);
  padding: 12px 16px;
  text-align: left;
}
.blog-single-body th {
  background: #F8F8F8;
  font-weight: 600;
}
.blog-single-body figure {
  margin: 32px 0;
}
.blog-single-body figcaption {
  font-size: 13px;
  color: var(--color-muted);
  text-align: center;
  margin-top: 8px;
}
.blog-single-body img {
  width: 100%;
  height: auto;
}
.blog-single-body a {
  color: var(--color-accent);
  text-decoration: underline;
}
.blog-single-body a:hover {
  opacity: 0.7;
}
.blog-single-body hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: 48px 0;
}
.blog-single-footer {
  margin-top: 64px;
  padding-top: 32px;
  border-top: 1px solid var(--color-border);
}
.blog-back-link {
  display: inline-block;
  font-size: 14px;
  color: var(--color-muted);
  text-decoration: none;
  margin-bottom: 40px;
  transition: color 0.2s;
}
.blog-back-link:hover { color: var(--color-accent); }
.blog-single-cta {
  background: #F8F8F8;
  padding: 32px;
  text-align: center;
}
.blog-single-cta p {
  font-size: 15px;
  margin: 0 0 16px;
  color: var(--color-text);
}
.blog-cta-btn {
  display: inline-block;
  padding: 14px 48px;
  background: var(--color-accent);
  color: #FFF;
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  transition: opacity 0.2s;
}
.blog-cta-btn:hover { opacity: 0.8; }

/* === Blog Archive === */
.blog-archive-container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 120px 40px 80px;
}
.blog-archive-header {
  margin-bottom: 56px;
}
.blog-archive-title {
  font-family: var(--font-serif-en);
  font-size: 56px;
  font-weight: 900;
  letter-spacing: 0.05em;
}
.blog-archive-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

@media (max-width: 768px) {
  .blog-single-container { padding: 100px 20px 60px; }
  .blog-single-title { font-size: 22px; }
  .blog-single-body h2 { font-size: 19px; margin: 40px 0 16px; }
  .blog-single-body h3 { font-size: 16px; }
  .blog-single-body { font-size: 15px; }
  .blog-single-cta { padding: 24px 20px; }
  .blog-archive-container { padding: 100px 20px 60px; }
  .blog-archive-title { font-size: 36px; }
  .blog-archive-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
}
@media (max-width: 480px) {
  .blog-archive-grid { grid-template-columns: 1fr; gap: 20px; }
}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Noto Sans JP',sans-serif;background:#F5F7FA;color:#1a1a1a;min-height:100vh}
.page{max-width:520px;margin:0 auto;padding:0 20px 40px}


.form-hero{position:relative;border-radius:16px;overflow:hidden;margin-bottom:24px;height:220px;background:#1B3A6B}
.form-hero img{width:100%;height:100%;object-fit:cover;opacity:.7}
.form-hero-text{position:absolute;bottom:0;left:0;right:0;padding:24px;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.form-hero-badge{display:inline-block;padding:3px 10px;background:rgba(255,255,255,.2);color:#fff;font-size:10px;font-weight:600;letter-spacing:.1em;border-radius:4px;margin-bottom:8px}
.form-hero h1{color:#fff;font-size:26px;font-weight:700;line-height:1.2;margin-bottom:4px}
.form-hero p{color:rgba(255,255,255,.8);font-size:13px}


.form-section-title{font-size:16px;font-weight:700;color:#1B3A6B;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #1B3A6B;display:flex;align-items:center;gap:8px}
.section-title .num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#1B3A6B;color:#fff;border-radius:6px;font-size:12px;font-weight:700}


.card{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:20px;margin-bottom:12px}
.label{font-size:11px;font-weight:600;color:#9CA3AF;letter-spacing:.06em;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.req{display:inline-block;padding:1px 5px;background:#EF4444;color:#fff;font-size:9px;font-weight:700;border-radius:3px}


.opts{display:flex;gap:8px;flex-wrap:wrap}
.opt{flex:1;min-width:70px;padding:12px 6px;border:2px solid #E5E7EB;border-radius:10px;background:#fff;cursor:pointer;text-align:center;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;color:#374151;display:flex;flex-direction:column;align-items:center;gap:2px}
.opt:hover{border-color:#9CA3AF}
.opt.on{border-color:#1B3A6B;background:#EFF3FB;color:#1B3A6B;box-shadow:0 0 0 1px #1B3A6B}
.opt-sub{font-size:10px;font-weight:400;color:#9CA3AF}
.opt.on .opt-sub{color:#5B7DB1}


.text-input{width:100%;padding:12px 14px;font-size:14px;border:1.5px solid #E5E7EB;border-radius:8px;outline:none;font-family:inherit;background:#FAFBFC;box-sizing:border-box}
.text-input:focus{border-color:#1B3A6B;background:#fff}
.text-input::placeholder{color:#D1D5DB}


.num-row{display:flex;align-items:center;gap:12px;justify-content:center}
.num-btn{width:40px;height:40px;border-radius:10px;border:2px solid #E5E7EB;background:#fff;font-size:20px;font-weight:700;cursor:pointer;color:#1B3A6B;font-family:inherit}
.num-btn:hover{border-color:#1B3A6B}
.num-input{width:60px;text-align:center;font-size:24px;font-weight:700;color:#1B3A6B;border:2px solid #E5E7EB;border-radius:10px;padding:6px 4px;font-family:inherit;outline:none;-moz-appearance:textfield}
.num-input::-webkit-inner-spin-button,.num-input::-webkit-outer-spin-button{-webkit-appearance:none}
.num-unit{font-size:14px;color:#9CA3AF}


.btn-add{display:block;width:100%;padding:14px;text-align:center;background:#fff;color:#1B3A6B;border:2px solid #1B3A6B;border-radius:10px;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:8px}
.btn-add:hover{background:#EFF3FB}
.btn-add:disabled{border-color:#D1D5DB;color:#D1D5DB;cursor:not-allowed;background:#fff}


.cart{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:20px;margin-bottom:16px;border:2px solid #E5E7EB}
.cart.has-items{border-color:#1B3A6B}
.cart-empty{text-align:center;color:#D1D5DB;font-size:13px;padding:16px 0}
.cart-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #F3F4F6}
.cart-item:last-of-type{border-bottom:none}
.cart-item-info{flex:1}
.cart-item-title{font-size:14px;font-weight:600;color:#374151}
.cart-item-detail{font-size:11px;color:#9CA3AF;margin-top:2px}
.cart-item-price{font-size:15px;font-weight:700;color:#1B3A6B;margin-left:12px;white-space:nowrap}
.cart-item-remove{background:none;border:none;color:#EF4444;cursor:pointer;font-size:18px;margin-left:8px;padding:4px}

.cart-total{display:flex;justify-content:space-between;align-items:center;padding-top:12px;margin-top:8px;border-top:2px solid #1B3A6B}
.cart-total-label{font-size:14px;font-weight:600;color:#374151}
.cart-total-val{font-size:26px;font-weight:700;color:#1B3A6B}


.textarea{width:100%;padding:12px 14px;font-size:14px;border:1.5px solid #E5E7EB;border-radius:8px;outline:none;font-family:inherit;background:#FAFBFC;min-height:80px;resize:vertical;line-height:1.7;box-sizing:border-box}
.textarea:focus{border-color:#1B3A6B;background:#fff}
.textarea::placeholder{color:#D1D5DB}


.file-input{width:100%;padding:12px 14px;font-size:14px;border:1.5px dashed #E5E7EB;border-radius:8px;background:#FAFBFC;cursor:pointer;box-sizing:border-box}


.btn-checkout{display:block;width:100%;padding:18px;text-align:center;background:#1B3A6B;color:#fff;border-radius:12px;font-family:inherit;font-size:17px;font-weight:700;cursor:pointer;box-shadow:0 4px 16px rgba(27,58,107,.3);border:none;transition:all .2s}
.btn-checkout:hover{background:#15305A}
.btn-checkout:disabled{background:#D1D5DB;box-shadow:none;cursor:not-allowed}


.notes{margin-top:16px;padding:16px;background:#F9FAFB;border-radius:8px;margin-bottom:16px}
.notes p{font-size:11px;color:#9CA3AF;line-height:1.8;margin:0}
.legal{padding:12px 16px;background:#FEF2F2;border-radius:8px;margin-bottom:32px;border:1px solid #FECACA}
.legal p{font-size:10px;color:#991B1B;line-height:1.7;margin:0}
.hide{display:none}

@media(max-width:768px){
.page{padding:0 16px 32px}
.form-hero{height:180px;border-radius:12px}
.form-hero h1{font-size:22px}
.card{padding:16px}
.opt{padding:10px 4px;font-size:12px;min-width:60px}
.cart-total-val{font-size:22px}
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Noto Sans JP',sans-serif;background:#F5F7FA;color:#1a1a1a;min-height:100vh}
.iq-page{max-width:520px;margin:0 auto;padding:0 20px 40px}


.form-hero{position:relative;border-radius:16px;overflow:hidden;margin-bottom:24px;height:220px;background:#1B3A6B}
.form-hero img{width:100%;height:100%;object-fit:cover;opacity:.7}
.form-hero-text{position:absolute;bottom:0;left:0;right:0;padding:24px;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.form-hero-badge{display:inline-block;padding:3px 10px;background:rgba(255,255,255,.2);color:#fff;font-size:10px;font-weight:600;letter-spacing:.1em;border-radius:4px;margin-bottom:8px}
.form-hero h1{color:#fff;font-size:26px;font-weight:700;line-height:1.2;margin-bottom:4px}
.form-hero p{color:rgba(255,255,255,.8);font-size:13px}


.form-section-title{font-size:16px;font-weight:700;color:#1B3A6B;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #1B3A6B;display:flex;align-items:center;gap:8px}
.section-title .num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#1B3A6B;color:#fff;border-radius:6px;font-size:12px;font-weight:700}


.card{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:20px;margin-bottom:12px}
.label{font-size:11px;font-weight:600;color:#9CA3AF;letter-spacing:.06em;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.req{display:inline-block;padding:1px 5px;background:#EF4444;color:#fff;font-size:9px;font-weight:700;border-radius:3px}


.opts{display:flex;gap:8px;flex-wrap:wrap}
.opt{flex:1;min-width:70px;padding:12px 6px;border:2px solid #E5E7EB;border-radius:10px;background:#fff;cursor:pointer;text-align:center;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;color:#374151;display:flex;flex-direction:column;align-items:center;gap:2px}
.opt:hover{border-color:#9CA3AF}
.opt.on{border-color:#1B3A6B;background:#EFF3FB;color:#1B3A6B;box-shadow:0 0 0 1px #1B3A6B}
.opt-sub{font-size:10px;font-weight:400;color:#9CA3AF}
.opt.on .opt-sub{color:#5B7DB1}


.text-input{width:100%;padding:12px 14px;font-size:14px;border:1.5px solid #E5E7EB;border-radius:8px;outline:none;font-family:inherit;background:#FAFBFC;box-sizing:border-box}
.text-input:focus{border-color:#1B3A6B;background:#fff}
.text-input::placeholder{color:#D1D5DB}


.num-row{display:flex;align-items:center;gap:12px;justify-content:center}
.num-btn{width:40px;height:40px;border-radius:10px;border:2px solid #E5E7EB;background:#fff;font-size:20px;font-weight:700;cursor:pointer;color:#1B3A6B;font-family:inherit}
.num-btn:hover{border-color:#1B3A6B}
.num-input{width:60px;text-align:center;font-size:24px;font-weight:700;color:#1B3A6B;border:2px solid #E5E7EB;border-radius:10px;padding:6px 4px;font-family:inherit;outline:none;-moz-appearance:textfield}
.num-input::-webkit-inner-spin-button,.num-input::-webkit-outer-spin-button{-webkit-appearance:none}
.num-unit{font-size:14px;color:#9CA3AF}


.btn-add{display:block;width:100%;padding:14px;text-align:center;background:#fff;color:#1B3A6B;border:2px solid #1B3A6B;border-radius:10px;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:8px}
.btn-add:hover{background:#EFF3FB}
.btn-add:disabled{border-color:#D1D5DB;color:#D1D5DB;cursor:not-allowed;background:#fff}


.cart{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:20px;margin-bottom:16px;border:2px solid #E5E7EB}
.cart.has-items{border-color:#1B3A6B}
.cart-empty{text-align:center;color:#D1D5DB;font-size:13px;padding:16px 0}
.cart-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #F3F4F6}
.cart-item:last-of-type{border-bottom:none}
.cart-item-info{flex:1}
.cart-item-title{font-size:14px;font-weight:600;color:#374151}
.cart-item-detail{font-size:11px;color:#9CA3AF;margin-top:2px}
.cart-item-price{font-size:15px;font-weight:700;color:#1B3A6B;margin-left:12px;white-space:nowrap}
.cart-item-remove{background:none;border:none;color:#EF4444;cursor:pointer;font-size:18px;margin-left:8px;padding:4px}

.cart-total{display:flex;justify-content:space-between;align-items:center;padding-top:12px;margin-top:8px;border-top:2px solid #1B3A6B}
.cart-total-label{font-size:14px;font-weight:600;color:#374151}
.cart-total-val{font-size:26px;font-weight:700;color:#1B3A6B}


.textarea{width:100%;padding:12px 14px;font-size:14px;border:1.5px solid #E5E7EB;border-radius:8px;outline:none;font-family:inherit;background:#FAFBFC;min-height:80px;resize:vertical;line-height:1.7;box-sizing:border-box}
.textarea:focus{border-color:#1B3A6B;background:#fff}
.textarea::placeholder{color:#D1D5DB}


.file-input{width:100%;padding:12px 14px;font-size:14px;border:1.5px dashed #E5E7EB;border-radius:8px;background:#FAFBFC;cursor:pointer;box-sizing:border-box}


.btn-checkout{display:block;width:100%;padding:18px;text-align:center;background:#1B3A6B;color:#fff;border-radius:12px;font-family:inherit;font-size:17px;font-weight:700;cursor:pointer;box-shadow:0 4px 16px rgba(27,58,107,.3);border:none;transition:all .2s}
.btn-checkout:hover{background:#15305A}
.btn-checkout:disabled{background:#D1D5DB;box-shadow:none;cursor:not-allowed}


.notes{margin-top:16px;padding:16px;background:#F9FAFB;border-radius:8px;margin-bottom:16px}
.notes p{font-size:11px;color:#9CA3AF;line-height:1.8;margin:0}
.legal{padding:12px 16px;background:#FEF2F2;border-radius:8px;margin-bottom:32px;border:1px solid #FECACA}
.legal p{font-size:10px;color:#991B1B;line-height:1.7;margin:0}
.hide{display:none}

@media(max-width:768px){
.iq-page{padding:0 16px 32px}
.form-hero{height:180px;border-radius:12px}
.form-hero h1{font-size:22px}
.card{padding:16px}
.opt{padding:10px 4px;font-size:12px;min-width:60px}
.cart-total-val{font-size:22px}
}