/* Ito SWELL Patterns
   Scope: .ito-pattern only. No JavaScript. No external requests. */

.ito-pattern {
  --ito-color-main: #1f4e79;
  --ito-color-accent: #d9a441;
  --ito-color-text: #1f2933;
  --ito-color-muted: #5f6f7a;
  --ito-color-bg: #f6f9fb;
  --ito-color-white: #ffffff;
  --ito-color-border: #dfe8ef;
  --ito-radius-md: 14px;
  --ito-radius-lg: 22px;
  --ito-shadow: 0 16px 38px rgba(31, 78, 121, 0.1);
  color: var(--ito-color-text);
  box-sizing: border-box;
}

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

/* Tone modifiers: CSS combinations allow the same pattern structure to change mood safely. */
.ito-pattern--tone-blue { --ito-color-main:#1f4e79; --ito-color-accent:#d9a441; --ito-color-bg:#f6f9fb; --ito-color-border:#dfe8ef; }
.ito-pattern--tone-green { --ito-color-main:#2f6f5f; --ito-color-accent:#b8914b; --ito-color-bg:#f5f9f7; --ito-color-border:#dbeae5; }
.ito-pattern--tone-warm { --ito-color-main:#7a4e2f; --ito-color-accent:#c7954a; --ito-color-bg:#fbf7f1; --ito-color-border:#eee2d2; }
.ito-pattern--tone-dark { --ito-color-main:#1f2937; --ito-color-accent:#d9a441; --ito-color-bg:#f5f6f8; --ito-color-border:#d9dee6; }
.ito-pattern--tone-medical { --ito-color-main:#2f6f9f; --ito-color-accent:#6caec7; --ito-color-bg:#f4fbfd; --ito-color-border:#d9eef4; }
.ito-pattern--tone-navy { --ito-color-main:#21304f; --ito-color-accent:#c6a15b; --ito-color-bg:#f5f7fb; --ito-color-border:#dfe4f0; }

.ito-pattern--section,
.ito-pattern--hero,
.ito-pattern--cta { padding: 80px 24px; }

.ito-pattern--hero,
.ito-pattern--price,
.ito-pattern--contact,
.ito-pattern--section { border-radius: var(--ito-radius-lg); }

.ito-pattern--hero,
.ito-pattern--price,
.ito-pattern--contact { background: var(--ito-color-bg); }

.ito-pattern--section { background: var(--ito-color-white); }

.ito-pattern--cta {
  background: linear-gradient(135deg, var(--ito-color-main) 0%, #2f6f9f 100%);
  color: var(--ito-color-white);
  border-radius: var(--ito-radius-lg);
}

.ito-pattern__label {
  margin: 0 0 12px;
  color: var(--ito-color-main);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ito-pattern--cta .ito-pattern__label,
.ito-pattern--cta .ito-pattern__lead,
.ito-pattern--cta .ito-pattern__section-title,
.ito-pattern--cta .ito-pattern__note { color: var(--ito-color-white); }

.ito-pattern__hero-title {
  margin: 0;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.35;
  letter-spacing: 0.02em;
}

.ito-pattern__section-title {
  margin: 0 0 18px;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.ito-pattern__lead,
.ito-pattern__card-text { color: var(--ito-color-muted); line-height: 1.9; }
.ito-pattern__lead { margin: 22px 0 0; font-size: 17px; }
.ito-pattern__note { color: var(--ito-color-muted); font-size: 14px; line-height: 1.8; }

.ito-pattern__buttons { margin-top: 32px; gap: 14px; }
.ito-pattern .wp-block-button__link {
  min-width: 220px;
  padding: 14px 28px;
  border-radius: 999px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
}
.ito-pattern__button-main .wp-block-button__link { background: var(--ito-color-main); color: var(--ito-color-white); border: 1px solid var(--ito-color-main); }
.ito-pattern__button-sub .wp-block-button__link { color: var(--ito-color-main); border-color: var(--ito-color-main); }
.ito-pattern--cta .ito-pattern__button-main .wp-block-button__link { background: var(--ito-color-white); color: var(--ito-color-main); border-color: var(--ito-color-white); }
.ito-pattern--cta .ito-pattern__button-sub .wp-block-button__link { color: var(--ito-color-white); border-color: var(--ito-color-white); }

.ito-pattern__hero-columns,
.ito-pattern__columns { gap: clamp(28px, 5vw, 64px); }
.ito-pattern__columns--top { align-items: flex-start; }

.ito-pattern__visual-card,
.ito-pattern__form-box,
.ito-pattern__list-box,
.ito-pattern__notice-box,
.ito-pattern__card,
.ito-pattern__work-card,
.ito-pattern__price-card,
.ito-pattern__stat-card {
  padding: 28px;
  background: var(--ito-color-white);
  border: 1px solid var(--ito-color-border);
  border-radius: var(--ito-radius-md);
  box-shadow: 0 10px 28px rgba(31, 78, 121, 0.06);
}

.ito-pattern__visual-card,
.ito-pattern__form-box,
.ito-pattern__notice-box { padding: 34px; border-radius: var(--ito-radius-lg); box-shadow: var(--ito-shadow); }
.ito-pattern__visual-kicker { margin: 0 0 8px; color: var(--ito-color-accent); font-size: 13px; font-weight: 700; letter-spacing: 0.08em; }
.ito-pattern__visual-title { margin: 0 0 18px; font-size: 24px; }
.ito-pattern__card-number { margin: 0 0 12px; color: var(--ito-color-main); font-size: 13px; font-weight: 700; letter-spacing: 0.08em; }
.ito-pattern__card-title { margin-top: 0; font-size: 21px; line-height: 1.55; }
.ito-pattern__card--emphasis { border: 2px solid var(--ito-color-main); }

.ito-pattern__grid {
  display: grid;
  gap: 22px;
  margin-top: 42px;
}
.ito-pattern__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ito-pattern__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ito-pattern__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ito-pattern__visual-list,
.ito-pattern__check-list,
.ito-pattern__plan-list { padding-left: 0; list-style: none; }
.ito-pattern__visual-list li,
.ito-pattern__check-list li,
.ito-pattern__plan-list li { position: relative; padding-left: 28px; line-height: 1.8; }
.ito-pattern__visual-list li::before,
.ito-pattern__check-list li::before,
.ito-pattern__plan-list li::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--ito-color-main);
}

.ito-pattern__work-thumb {
  display: grid;
  min-height: 170px;
  margin-bottom: 22px;
  place-items: center;
  background: linear-gradient(135deg, #e8f0f6 0%, #f7fafc 100%);
  border: 1px dashed #b6c9d8;
  border-radius: var(--ito-radius-md);
  color: var(--ito-color-muted);
  text-align: center;
}

.ito-pattern__price-card { position: relative; }
.ito-pattern__price-card--recommend { border: 2px solid var(--ito-color-main); transform: translateY(-8px); }
.ito-pattern__badge { display: inline-block; margin: 0 0 14px; padding: 4px 12px; background: var(--ito-color-main); color: var(--ito-color-white); border-radius: 999px; font-size: 13px; font-weight: 700; }
.ito-pattern__price { margin: 12px 0 16px; color: var(--ito-color-main); font-size: 30px; font-weight: 800; line-height: 1.3; }

.ito-pattern__steps { display: grid; gap: 18px; margin-top: 42px; }
.ito-pattern__step { padding: 26px 30px; background: var(--ito-color-white); border: 1px solid var(--ito-color-border); border-left: 5px solid var(--ito-color-main); border-radius: var(--ito-radius-md); }
.ito-pattern__step h3 { margin: 6px 0 8px; }
.ito-pattern__step-number { margin: 0; color: var(--ito-color-main); font-size: 13px; font-weight: 700; letter-spacing: 0.08em; }

.ito-pattern__faq-list { display: grid; gap: 14px; max-width: 860px; margin-top: 42px; margin-inline: auto; }
.ito-pattern__faq-item { padding: 20px 24px; background: var(--ito-color-white); border: 1px solid var(--ito-color-border); border-radius: var(--ito-radius-md); }
.ito-pattern__faq-item summary { color: var(--ito-color-text); font-weight: 700; cursor: pointer; }
.ito-pattern__faq-item p { margin-bottom: 0; }

.ito-pattern__form-box { max-width: 860px; margin: 38px auto 0; }
.ito-pattern__form-box input,
.ito-pattern__form-box textarea,
.ito-pattern__form-box select { width: 100%; max-width: 100%; }
.ito-pattern__stats { display: grid; gap: 22px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 42px; }
.ito-pattern__stat-number { margin: 0 0 12px; color: var(--ito-color-main); font-size: clamp(36px, 5vw, 56px); font-weight: 800; line-height: 1; }

@media (max-width: 960px) {
  .ito-pattern__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 781px) {
  .ito-pattern--section,
  .ito-pattern--hero,
  .ito-pattern--cta { padding: 56px 18px; border-radius: 18px; }
  .ito-pattern__hero-title { font-size: 31px; }
  .ito-pattern__section-title { font-size: 26px; }
  .ito-pattern__lead { font-size: 16px; }
  .ito-pattern .wp-block-button,
  .ito-pattern .wp-block-button__link { width: 100%; }
  .ito-pattern .wp-block-button__link { min-width: 0; white-space: normal; }
  .ito-pattern__visual-card,
  .ito-pattern__form-box,
  .ito-pattern__card,
  .ito-pattern__work-card,
  .ito-pattern__price-card,
  .ito-pattern__list-box,
  .ito-pattern__notice-box,
  .ito-pattern__stat-card { padding: 22px; }
  .ito-pattern__grid,
  .ito-pattern__stats { grid-template-columns: 1fr; }
  .ito-pattern__price-card--recommend { transform: none; }
  .ito-pattern__work-thumb { min-height: 150px; }
}


/* Animation-ready utility classes
   These classes are intentionally namespaced to avoid conflicts with animation plugins.
   They work without JavaScript and can be replaced or supplemented by Blocks Animation settings. */
.ito-anim { animation-duration: .72s; animation-fill-mode: both; animation-timing-function: cubic-bezier(.2,.8,.2,1); will-change: transform, opacity; }
.ito-anim--slow { animation-duration: 1s; }
.ito-anim--fade-up { animation-name: itoFadeUp; }
.ito-anim--fade-in { animation-name: itoFadeIn; }
.ito-anim--slide-left { animation-name: itoSlideLeft; }
.ito-anim--slide-right { animation-name: itoSlideRight; }
.ito-anim--zoom-in { animation-name: itoZoomIn; }
.ito-anim--soft-pop { animation-name: itoSoftPop; }
.ito-anim--delay-1 { animation-delay: .12s; }
.ito-anim--delay-2 { animation-delay: .24s; }
.ito-anim--delay-3 { animation-delay: .36s; }
.ito-anim--delay-4 { animation-delay: .48s; }
.ito-anim-stagger > * { animation: itoFadeUp .72s cubic-bezier(.2,.8,.2,1) both; }
.ito-anim-stagger > *:nth-child(1) { animation-delay: .04s; }
.ito-anim-stagger > *:nth-child(2) { animation-delay: .14s; }
.ito-anim-stagger > *:nth-child(3) { animation-delay: .24s; }
.ito-anim-stagger > *:nth-child(4) { animation-delay: .34s; }
.ito-anim-stagger > *:nth-child(5) { animation-delay: .44s; }
.ito-anim-stagger > *:nth-child(6) { animation-delay: .54s; }
.ito-pattern__mini-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 30px; }
.ito-pattern__mini-card { padding: 20px; background: var(--ito-color-white); border: 1px solid var(--ito-color-border); border-radius: var(--ito-radius-sm); }
.ito-pattern__kpi-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 32px; }
.ito-pattern__kpi { padding: 24px; background: rgba(255,255,255,.82); border: 1px solid var(--ito-color-border); border-radius: var(--ito-radius-md); text-align: center; }
.ito-pattern__kpi strong { display: block; color: var(--ito-color-main); font-size: clamp(28px, 5vw, 44px); line-height: 1; }
.ito-pattern__split-note { padding: 22px 26px; background: rgba(255,255,255,.78); border-left: 4px solid var(--ito-color-main); border-radius: var(--ito-radius-sm); }
.ito-pattern__pill-list { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0 0; padding: 0; list-style: none; }
.ito-pattern__pill-list li { padding: 8px 14px; background: rgba(255,255,255,.84); border: 1px solid var(--ito-color-border); border-radius: 999px; color: var(--ito-color-text); font-weight: 700; }

@keyframes itoFadeUp { from { opacity: 0; transform: translate3d(0, 22px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
@keyframes itoFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes itoSlideLeft { from { opacity: 0; transform: translate3d(28px, 0, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
@keyframes itoSlideRight { from { opacity: 0; transform: translate3d(-28px, 0, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
@keyframes itoZoomIn { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }
@keyframes itoSoftPop { 0% { opacity: 0; transform: translateY(14px) scale(.96); } 70% { opacity: 1; transform: translateY(-2px) scale(1.01); } 100% { opacity: 1; transform: translateY(0) scale(1); } }

@media (prefers-reduced-motion: reduce) {
  .ito-anim,
  .ito-anim-stagger > * { animation: none !important; opacity: 1 !important; transform: none !important; }
}

@media (max-width: 781px) {
  .ito-pattern__mini-grid,
  .ito-pattern__kpi-row { grid-template-columns: 1fr; }
}


/* =========================================================
   Ito SWELL Patterns Full Pack v2 additions
   ========================================================= */
.ito-pattern--lower-hero { padding-top: clamp(64px, 9vw, 112px); padding-bottom: clamp(48px, 7vw, 88px); }
.ito-pattern__page-title { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.35; }
.ito-pattern--button-set .wp-block-buttons { margin-top: 1.5rem; }
.ito-pattern--cta { text-align: center; border-radius: 28px; }
.ito-pattern__cta-title { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.ito-pattern__cta-lead { max-width: 720px; margin-inline: auto; }
.ito-pattern__price { display: inline-block; margin-top: .35em; font-size: 1.5rem; font-weight: 800; }
.ito-pattern__mockup { position: relative; overflow: hidden; }
.ito-pattern__mockup::before { content:""; display:block; width:100%; aspect-ratio: 16 / 9; border-radius: 18px; margin-bottom: 1rem; background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,255,255,.35)); border: 1px solid rgba(255,255,255,.65); box-shadow: inset 0 0 0 10px rgba(255,255,255,.16); }
.ito-pattern__check-list li { margin-bottom: .55em; }

.ito-pattern--tone-light { --ito-main:#334155; --ito-accent:#64748b; --ito-bg:#f8fafc; --ito-bg2:#ffffff; --ito-border:#e2e8f0; }
.ito-pattern--tone-purple { --ito-main:#4c1d95; --ito-accent:#7c3aed; --ito-bg:#faf5ff; --ito-bg2:#ffffff; --ito-border:#e9d5ff; }
.ito-pattern--tone-orange { --ito-main:#9a3412; --ito-accent:#ea580c; --ito-bg:#fff7ed; --ito-bg2:#ffffff; --ito-border:#fed7aa; }
.ito-pattern--tone-brown { --ito-main:#5c4033; --ito-accent:#a16207; --ito-bg:#fff8ef; --ito-bg2:#ffffff; --ito-border:#ead7c0; }
.ito-pattern--tone-dark { --ito-main:#f8fafc; --ito-accent:#facc15; --ito-bg:#111827; --ito-bg2:#1f2937; --ito-border:#374151; color:#f8fafc; }
.ito-pattern--tone-premium { --ito-main:#1f2937; --ito-accent:#b7791f; --ito-bg:#fffbeb; --ito-bg2:#ffffff; --ito-border:#fde68a; }

.ito-pattern--tone-light,
.ito-pattern--tone-purple,
.ito-pattern--tone-orange,
.ito-pattern--tone-brown,
.ito-pattern--tone-dark,
.ito-pattern--tone-premium { background: var(--ito-bg); }
.ito-pattern--tone-light .ito-pattern__card,
.ito-pattern--tone-purple .ito-pattern__card,
.ito-pattern--tone-orange .ito-pattern__card,
.ito-pattern--tone-brown .ito-pattern__card,
.ito-pattern--tone-dark .ito-pattern__card,
.ito-pattern--tone-premium .ito-pattern__card,
.ito-pattern--tone-light .ito-pattern__visual-card,
.ito-pattern--tone-purple .ito-pattern__visual-card,
.ito-pattern--tone-orange .ito-pattern__visual-card,
.ito-pattern--tone-brown .ito-pattern__visual-card,
.ito-pattern--tone-dark .ito-pattern__visual-card,
.ito-pattern--tone-premium .ito-pattern__visual-card { background: var(--ito-bg2); border-color: var(--ito-border); }
.ito-pattern--tone-dark .ito-pattern__card,
.ito-pattern--tone-dark .ito-pattern__visual-card { color:#f8fafc; }
.ito-pattern--tone-dark .wp-block-button__link { color:#111827; background:#facc15; }

.wp-block-button.is-style-ito-cta-arrow .wp-block-button__link::after { content:" →"; font-weight:700; }
.wp-block-button.is-style-ito-cta-soft .wp-block-button__link { background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; }
.wp-block-button.is-style-ito-cta-line .wp-block-button__link { background:#06c755; color:#fff; }
.wp-block-button.is-style-ito-cta-ghost .wp-block-button__link { background:transparent; color:currentColor; border:1px solid currentColor; }
.wp-block-button.is-style-ito-cta-premium .wp-block-button__link { background:linear-gradient(135deg,#1f2937,#92400e); color:#fff; }
.wp-block-group.is-style-ito-soft-section { background:#f8fafc; border-radius:24px; padding:clamp(24px,4vw,48px); }
.wp-block-group.is-style-ito-card-shadow { box-shadow:0 16px 40px rgba(15,23,42,.08); border-radius:20px; }
.wp-block-group.is-style-ito-card-border { border:1px solid #e5e7eb; border-radius:20px; padding:clamp(20px,3vw,32px); }
.wp-block-group.is-style-ito-cta-box { background:#0f3d5e; color:#fff; border-radius:28px; padding:clamp(28px,5vw,56px); }
.wp-block-group.is-style-ito-glass-box { background:rgba(255,255,255,.72); border:1px solid rgba(255,255,255,.8); backdrop-filter:blur(10px); border-radius:24px; }
.wp-block-columns.is-style-ito-gap-large { gap:clamp(24px,5vw,72px); }
.wp-block-columns.is-style-ito-stagger > .wp-block-column:nth-child(2) { transform:translateY(18px); }
.wp-block-image.is-style-ito-rounded img { border-radius:24px; }
.wp-block-image.is-style-ito-frame img { border:8px solid #fff; border-radius:24px; box-shadow:0 14px 40px rgba(15,23,42,.12); }
ul.is-style-ito-check { list-style:none; padding-left:0; }
ul.is-style-ito-check li::before { content:"✓"; display:inline-grid; place-items:center; width:1.35em; height:1.35em; margin-right:.5em; border-radius:999px; background:#e0f2fe; color:#0369a1; font-weight:700; font-size:.8em; }
.wp-block-heading.is-style-ito-marker { display:inline; background:linear-gradient(transparent 62%, #dbeafe 0); }

.ito-anim--fade-up { animation: itoFadeUp .72s ease both; }
.ito-anim--fade-in { animation: itoFadeIn .72s ease both; }
.ito-anim--slide-left { animation: itoSlideLeft .72s ease both; }
.ito-anim--slide-right { animation: itoSlideRight .72s ease both; }
.ito-anim--zoom-in { animation: itoZoomIn .72s ease both; }
.ito-anim--soft-pop { animation: itoSoftPop .72s ease both; }
.ito-anim-stagger .ito-pattern__card:nth-child(1), .ito-anim-stagger .wp-block-column:nth-child(1) { animation-delay:.05s; }
.ito-anim-stagger .ito-pattern__card:nth-child(2), .ito-anim-stagger .wp-block-column:nth-child(2) { animation-delay:.12s; }
.ito-anim-stagger .ito-pattern__card:nth-child(3), .ito-anim-stagger .wp-block-column:nth-child(3) { animation-delay:.19s; }
@keyframes itoSlideLeft { from { opacity:0; transform:translateX(-28px); } to { opacity:1; transform:translateX(0); } }
@keyframes itoSlideRight { from { opacity:0; transform:translateX(28px); } to { opacity:1; transform:translateX(0); } }
@keyframes itoZoomIn { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:scale(1); } }
@keyframes itoSoftPop { 0% { opacity:0; transform:translateY(16px) scale(.98); } 70% { opacity:1; transform:translateY(-2px) scale(1.01); } 100% { opacity:1; transform:translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .ito-anim, .ito-anim--fade-up, .ito-anim--fade-in, .ito-anim--slide-left, .ito-anim--slide-right, .ito-anim--zoom-in, .ito-anim--soft-pop { animation: none !important; }
}
@media (max-width: 781px) {
  .wp-block-columns.is-style-ito-stagger > .wp-block-column:nth-child(2) { transform:none; }
  .ito-pattern--lower-hero { padding-top: 48px; padding-bottom: 40px; }
}


/* === v3.0 additions: LP / column / mobile / client delivery === */
.ito-pattern--article .ito-pattern__quote {
  border-left: 4px solid currentColor;
  padding: 1rem 1.25rem;
  background: rgba(255,255,255,.72);
  border-radius: 0 14px 14px 0;
}
.ito-pattern--mobile .ito-pattern__mobile-cards,
.ito-pattern__mobile-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.ito-pattern__mobile-card {
  border-radius: 18px;
  padding: 1.25rem;
  background: rgba(255,255,255,.86);
  box-shadow: 0 12px 32px rgba(15, 23, 42, .08);
}
.ito-pattern__mobile-buttons .wp-block-button__link {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ito-client-lock {
  position: relative;
  outline: 1px dashed rgba(30, 78, 121, .18);
}
.ito-client-lock::before {
  content: "納品ロック版";
  display: inline-block;
  margin-bottom: .75rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: #1f4e79;
  background: rgba(31, 78, 121, .08);
  border-radius: 999px;
  padding: .25rem .65rem;
}
.is-style-ito-client-locked {
  border: 1px dashed rgba(30,78,121,.24);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.6);
}
.ito-pattern--contact .ito-pattern__form-note {
  margin: 1.25rem 0 1.5rem;
  padding: 1.25rem;
}
@media (max-width: 781px) {
  .ito-pattern--mobile .ito-pattern__mobile-cards,
  .ito-pattern__mobile-cards {
    grid-template-columns: 1fr;
  }
  .ito-pattern--mobile .wp-block-button,
  .ito-pattern--mobile .wp-block-button__link {
    width: 100%;
  }
  .ito-pattern--mobile .ito-pattern__title {
    font-size: clamp(1.5rem, 7vw, 2rem);
  }
}

/* Block editor columns support
   Layout is now primarily handled by core/columns blocks.
   These rules only add spacing, equal-height card feel, and safe responsive behavior. */
.ito-pattern__columns--cards,
.ito-pattern__columns--split,
.ito-pattern__columns--content { margin-top: 42px; }
.ito-pattern__columns--cards { align-items: stretch; }
.ito-pattern__columns--cards > .wp-block-column { min-width: 0; display: flex; }
.ito-pattern__columns--cards > .wp-block-column > .wp-block-group,
.ito-pattern__columns--cards > .wp-block-column > .ito-pattern__card,
.ito-pattern__columns--cards > .wp-block-column > .ito-pattern__work-card,
.ito-pattern__columns--cards > .wp-block-column > .ito-pattern__price-card,
.ito-pattern__columns--cards > .wp-block-column > .ito-pattern__stat-card { width: 100%; }
.ito-pattern__side-cta { height: 100%; display: flex; flex-direction: column; justify-content: center; }
.ito-pattern__mini-list { margin: 22px 0 0; padding-left: 0; list-style: none; display: grid; gap: 10px; }
.ito-pattern__mini-list li { position: relative; padding-left: 26px; line-height: 1.8; color: var(--ito-color-muted); }
.ito-pattern__mini-list li::before { content: ""; position: absolute; left: 0; top: .75em; width: 10px; height: 10px; border-radius: 999px; background: var(--ito-color-main); }

@media (max-width: 960px) and (min-width: 782px) {
  .ito-pattern__columns--4 { flex-wrap: wrap !important; }
  .ito-pattern__columns--4 > .wp-block-column { flex-basis: calc(50% - 12px) !important; flex-grow: 0; }
}

@media (max-width: 781px) {
  .ito-pattern__columns--cards,
  .ito-pattern__columns--split,
  .ito-pattern__columns--content { margin-top: 32px; }
}


/* === v3.2 additions: SEO guidance / internal links / client update === */
.ito-pattern--seo .ito-pattern__label { letter-spacing: .08em; }
.ito-pattern--seo .ito-seo-link-card a { color: inherit; text-decoration: none; }
.ito-pattern--seo .ito-seo-link-card a::after { content: " →"; color: var(--ito-color-main); }
.ito-pattern--seo-check .ito-seo-check-list { background: rgba(255,255,255,.72); border-radius: 18px; padding: 1.25rem 1.5rem; }
.ito-pattern--client-update .ito-pattern__client-card { border-style: dashed; background: rgba(255,255,255,.78); }
.ito-pattern--client-update .ito-pattern__card-number { width: auto; padding: .15rem .7rem; }
.ito-pattern--seo .wp-block-buttons { margin-top: 28px; }
@media (max-width: 781px) {
  .ito-pattern--seo .ito-pattern__columns--cards { gap: 16px; }
}


/* === v3.3 repair: block editor validation / narrow column safety === */
.ito-pattern__hero-columns { align-items: center; }
.ito-pattern__columns--cards { gap: clamp(16px, 2.4vw, 28px); }
.ito-pattern__columns--cards .ito-pattern__card-title,
.ito-pattern__columns--cards .ito-pattern__card-text,
.ito-pattern__columns--cards .ito-pattern__price-card,
.ito-pattern__columns--cards .ito-pattern__work-card {
  overflow-wrap: anywhere;
  word-break: normal;
}
.ito-pattern--seo-check .ito-seo-check-list ul { margin: 0; padding-left: 1.2em; }
.ito-pattern--seo-check .ito-seo-check-list li { margin: .45em 0; line-height: 1.9; }
@media (max-width: 1180px) and (min-width: 782px) {
  .ito-pattern--seo .ito-pattern__columns--cards,
  .ito-pattern__columns--4 {
    flex-wrap: wrap !important;
  }
  .ito-pattern--seo .ito-pattern__columns--cards > .wp-block-column,
  .ito-pattern__columns--4 > .wp-block-column {
    flex-basis: calc(50% - 16px) !important;
    flex-grow: 0;
  }
}

/* === v3.4 additions: Contact Form 7 form styling ===
   Scope: only forms placed inside .ito-pattern__form-box or .ito-pattern--cf7.
   This keeps the plugin from changing unrelated Contact Form 7 forms globally. */
.ito-pattern__form-box .wpcf7,
.ito-pattern--cf7 .wpcf7 {
  width: 100%;
}

.ito-pattern__form-box .wpcf7-form,
.ito-pattern--cf7 .wpcf7-form {
  display: grid;
  gap: 20px;
}

.ito-pattern__form-box .wpcf7-form p,
.ito-pattern--cf7 .wpcf7-form p {
  margin: 0;
}

.ito-pattern__form-box label,
.ito-pattern--cf7 label {
  display: block;
  margin: 0 0 8px;
  color: var(--ito-color-text, #1f2d3d);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.7;
}

.ito-pattern__form-box input[type="text"],
.ito-pattern__form-box input[type="email"],
.ito-pattern__form-box input[type="tel"],
.ito-pattern__form-box input[type="url"],
.ito-pattern__form-box input[type="date"],
.ito-pattern__form-box input[type="number"],
.ito-pattern__form-box select,
.ito-pattern__form-box textarea,
.ito-pattern--cf7 input[type="text"],
.ito-pattern--cf7 input[type="email"],
.ito-pattern--cf7 input[type="tel"],
.ito-pattern--cf7 input[type="url"],
.ito-pattern--cf7 input[type="date"],
.ito-pattern--cf7 input[type="number"],
.ito-pattern--cf7 select,
.ito-pattern--cf7 textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  padding: 13px 15px;
  border: 1px solid rgba(31, 78, 121, 0.22);
  border-radius: 12px;
  background: #fff;
  color: var(--ito-color-text, #1f2d3d);
  font: inherit;
  font-size: 16px;
  line-height: 1.6;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.ito-pattern__form-box textarea,
.ito-pattern--cf7 textarea {
  min-height: 180px;
  resize: vertical;
}

.ito-pattern__form-box select,
.ito-pattern--cf7 select {
  cursor: pointer;
}

.ito-pattern__form-box input:focus,
.ito-pattern__form-box select:focus,
.ito-pattern__form-box textarea:focus,
.ito-pattern--cf7 input:focus,
.ito-pattern--cf7 select:focus,
.ito-pattern--cf7 textarea:focus {
  outline: none;
  border-color: var(--ito-color-main, #1f4e79);
  box-shadow: 0 0 0 3px rgba(31, 78, 121, 0.13);
  background: #fff;
}

.ito-pattern__form-box input::placeholder,
.ito-pattern__form-box textarea::placeholder,
.ito-pattern--cf7 input::placeholder,
.ito-pattern--cf7 textarea::placeholder {
  color: #8a98a6;
}

.ito-pattern__form-box .wpcf7-list-item,
.ito-pattern--cf7 .wpcf7-list-item {
  margin: 0 16px 8px 0;
}

.ito-pattern__form-box .wpcf7-list-item label,
.ito-pattern--cf7 .wpcf7-list-item label {
  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  font-weight: 500;
}

.ito-pattern__form-box input[type="checkbox"],
.ito-pattern__form-box input[type="radio"],
.ito-pattern--cf7 input[type="checkbox"],
.ito-pattern--cf7 input[type="radio"] {
  width: auto;
  min-height: auto;
  margin: .35em 0 0;
  padding: 0;
  box-shadow: none;
  accent-color: var(--ito-color-main, #1f4e79);
}

.ito-pattern__form-box .wpcf7-acceptance,
.ito-pattern--cf7 .wpcf7-acceptance {
  display: block;
  padding: 14px 16px;
  border: 1px solid rgba(31, 78, 121, 0.14);
  border-radius: 12px;
  background: rgba(247, 249, 251, 0.85);
}

.ito-pattern__form-box input[type="submit"],
.ito-pattern--cf7 input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 220px;
  min-height: 52px;
  padding: 14px 30px;
  border: 0;
  border-radius: 999px;
  background: var(--ito-color-main, #1f4e79);
  color: #fff;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform .2s ease, opacity .2s ease, box-shadow .2s ease;
}

.ito-pattern__form-box input[type="submit"]:hover,
.ito-pattern--cf7 input[type="submit"]:hover {
  opacity: .9;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(31, 78, 121, 0.18);
}

.ito-pattern__form-box input[type="submit"]:disabled,
.ito-pattern--cf7 input[type="submit"]:disabled {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.ito-pattern__form-box .wpcf7-spinner,
.ito-pattern--cf7 .wpcf7-spinner {
  margin: 0 0 0 12px;
  vertical-align: middle;
}

.ito-pattern__form-box .wpcf7-not-valid,
.ito-pattern--cf7 .wpcf7-not-valid {
  border-color: #b3261e !important;
  background: #fffafa;
}

.ito-pattern__form-box .wpcf7-not-valid-tip,
.ito-pattern--cf7 .wpcf7-not-valid-tip {
  margin-top: 6px;
  color: #b3261e;
  font-size: 14px;
  line-height: 1.6;
}

.ito-pattern__form-box .wpcf7-response-output,
.ito-pattern--cf7 .wpcf7-response-output {
  margin: 20px 0 0 !important;
  padding: 14px 16px !important;
  border-radius: 12px;
  font-size: 15px;
  line-height: 1.7;
}

.ito-pattern__form-box form.sent .wpcf7-response-output,
.ito-pattern--cf7 form.sent .wpcf7-response-output {
  border-color: #2e7d32 !important;
  background: #f4fbf5;
  color: #1b5e20;
}

.ito-pattern__form-box form.invalid .wpcf7-response-output,
.ito-pattern__form-box form.unaccepted .wpcf7-response-output,
.ito-pattern--cf7 form.invalid .wpcf7-response-output,
.ito-pattern--cf7 form.unaccepted .wpcf7-response-output {
  border-color: #b3261e !important;
  background: #fff7f7;
  color: #7f1d1d;
}

/* Optional utility classes for CF7 templates. Use them only when needed. */
.ito-cf7__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.ito-cf7__note {
  margin: 0;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(31, 78, 121, 0.06);
  color: var(--ito-color-muted, #5c6b78);
  font-size: 14px;
  line-height: 1.8;
}

@media (max-width: 781px) {
  .ito-pattern__form-box .wpcf7-form,
  .ito-pattern--cf7 .wpcf7-form {
    gap: 18px;
  }

  .ito-cf7__row {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ito-pattern__form-box input[type="submit"],
  .ito-pattern--cf7 input[type="submit"] {
    width: 100%;
    min-width: 0;
  }
}


/* =========================================================
   Visa / Residence Status site patterns
   ========================================================= */
.ito-visa {
  --ito-visa-main: #073b4c;
  --ito-visa-accent: #0f6b78;
  --ito-visa-soft: #eef7f8;
}
.ito-visa .ito-pattern__hero-title,
.ito-visa .ito-pattern__section-title {
  letter-spacing: .02em;
}
.ito-visa__hero {
  align-items: center;
}
.ito-visa__image-placeholder {
  min-height: 280px;
  display: grid;
  place-items: center;
  padding: 32px;
  border: 1px dashed rgba(7,59,76,.35);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(238,247,248,.9), rgba(255,255,255,.9));
  text-align: center;
  color: #51636c;
}
.ito-visa__check-list,
.ito-visa__ordered-guide {
  margin-top: 22px;
  padding-left: 1.2em;
}
.ito-visa__check-list li,
.ito-visa__ordered-guide li {
  margin: .45em 0;
  line-height: 1.8;
}
.ito-visa__pill-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.ito-visa__pill-list a,
.ito-visa__pill-list span {
  display: inline-flex;
  align-items: center;
  padding: 9px 14px;
  border-radius: 999px;
  background: var(--ito-visa-soft);
  color: var(--ito-visa-main);
  text-decoration: none;
  font-weight: 700;
}
.ito-visa__quote {
  font-size: 1.02rem;
  line-height: 1.9;
}
.ito-visa__mobile-buttons .wp-block-button,
.ito-visa__mobile-buttons .wp-block-button__link {
  width: 100%;
}
.ito-visa__locked {
  outline: 2px solid rgba(15,107,120,.12);
}
@media (max-width: 781px) {
  .ito-visa .wp-block-columns {
    gap: 18px;
  }
  .ito-visa__image-placeholder {
    min-height: 190px;
  }
  .ito-visa__mobile-cta .wp-block-buttons {
    display: grid;
    gap: 12px;
  }
  .ito-visa__mobile-cta .wp-block-button,
  .ito-visa__mobile-cta .wp-block-button__link {
    width: 100%;
  }
}


/* =========================================================
   Stylish Industry Style Pack v3.6
   References are design directions, not copies. Images and copy must be original.
   ========================================================= */
.ito-style {
  --ito-style-main: #092f3a;
  --ito-style-accent: #2f7d6f;
  --ito-style-soft: #f5f7f4;
  --ito-style-line: rgba(9,47,58,.14);
  --ito-style-text: #1f2b2d;
  --ito-style-muted: #6f7b7d;
  padding: clamp(48px, 7vw, 104px) clamp(18px, 4vw, 56px);
  border-radius: 0;
  background: #fff;
  color: var(--ito-style-text);
}
.ito-style--compact { padding-top: clamp(36px, 5vw, 72px); padding-bottom: clamp(36px, 5vw, 72px); }
.ito-style--craft { --ito-style-main:#23342d; --ito-style-accent:#a46d3b; --ito-style-soft:#f7f2ea; --ito-style-line:rgba(35,52,45,.18); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; }
.ito-style--salon { --ito-style-main:#222; --ito-style-accent:#8d7b68; --ito-style-soft:#f5f1ed; --ito-style-line:rgba(34,34,34,.14); font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", sans-serif; }
.ito-style--tech { --ito-style-main:#061a44; --ito-style-accent:#2457ff; --ito-style-soft:#f2f5ff; --ito-style-line:rgba(36,87,255,.18); font-family: "Inter", "Helvetica Neue", Arial, sans-serif; }
.ito-style--social { --ito-style-main:#031b2f; --ito-style-accent:#00a5b5; --ito-style-soft:#eef8fa; --ito-style-line:rgba(0,165,181,.18); font-family: "Inter", "Helvetica Neue", Arial, sans-serif; }
.ito-style__eyebrow { margin:0 0 12px; color:var(--ito-style-accent); font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.ito-style__title { margin:0; color:var(--ito-style-main); font-size:clamp(2rem, 5.4vw, 5rem); line-height:1.05; letter-spacing:-.045em; }
.ito-style--craft .ito-style__title { letter-spacing:.02em; line-height:1.25; }
.ito-style--salon .ito-style__title { letter-spacing:.12em; font-weight:500; }
.ito-style__section-title { margin:0 0 18px; color:var(--ito-style-main); font-size:clamp(1.7rem, 3vw, 3.2rem); line-height:1.22; letter-spacing:-.03em; }
.ito-style__lead { margin:18px 0 0; color:var(--ito-style-muted); font-size:clamp(1rem, 1.4vw, 1.1rem); line-height:1.95; }
.ito-style__note { color:var(--ito-style-muted); font-size:.92rem; line-height:1.8; }
.ito-style__rule { width:72px; height:2px; margin:22px 0; background:var(--ito-style-accent); }
.ito-style__placeholder { min-height:260px; display:grid; place-items:center; padding:28px; border:1px dashed var(--ito-style-line); border-radius:24px; background:linear-gradient(135deg, var(--ito-style-soft), #fff); color:var(--ito-style-muted); text-align:center; }
.ito-style__placeholder--wide { min-height:360px; }
.ito-style__card { height:100%; padding:clamp(22px, 3vw, 34px); border:1px solid var(--ito-style-line); border-radius:22px; background:#fff; box-shadow:0 18px 45px rgba(5,24,44,.05); }
.ito-style__card--soft { background:var(--ito-style-soft); box-shadow:none; }
.ito-style__num { display:block; margin-bottom:18px; color:var(--ito-style-accent); font-size:.8rem; font-weight:800; letter-spacing:.12em; }
.ito-style__card h3, .ito-style__card h4 { margin-top:0; color:var(--ito-style-main); }
.ito-style__card p { color:var(--ito-style-muted); line-height:1.85; }
.ito-style__pills { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.ito-style__pills span, .ito-style__pills a { display:inline-flex; padding:8px 13px; border:1px solid var(--ito-style-line); border-radius:999px; color:var(--ito-style-main); background:#fff; text-decoration:none; font-size:.88rem; font-weight:700; }
.ito-style__news-row { padding:18px 0; border-top:1px solid var(--ito-style-line); display:flex; gap:18px; align-items:flex-start; }
.ito-style__news-row:last-child { border-bottom:1px solid var(--ito-style-line); }
.ito-style__date { min-width:112px; color:var(--ito-style-accent); font-weight:800; font-size:.88rem; }
.ito-style__tag { display:inline-flex; padding:4px 8px; margin-right:8px; border-radius:999px; background:var(--ito-style-soft); color:var(--ito-style-main); font-size:.72rem; font-weight:800; }
.ito-style__large-text { color:var(--ito-style-main); font-size:clamp(2.2rem, 6.5vw, 6.2rem); line-height:.98; letter-spacing:-.06em; font-weight:900; }
.ito-style__mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing:.02em; }
.ito-style__image-strip { display:flex; gap:16px; overflow:hidden; }
.ito-style__image-strip .ito-style__placeholder { min-width:32%; min-height:220px; }
.ito-style__guide-table { width:100%; border-collapse:collapse; margin-top:24px; }
.ito-style__guide-table th, .ito-style__guide-table td { padding:14px 12px; border-bottom:1px solid var(--ito-style-line); text-align:left; vertical-align:top; }
.ito-style__guide-table th { color:var(--ito-style-main); width:28%; }
.ito-style__button .wp-block-button__link { border-radius:999px; padding:13px 22px; background:var(--ito-style-main); color:#fff; font-weight:800; }
.ito-style__button-outline .wp-block-button__link { border-radius:999px; border:1px solid var(--ito-style-main); color:var(--ito-style-main); background:transparent; }
.ito-style--salon .ito-style__button .wp-block-button__link { background:#222; }
.ito-style--tech .ito-style__card { border-radius:8px; }
.ito-style--social .ito-style__large-text { letter-spacing:-.075em; }
@media (max-width: 781px) {
  .ito-style { padding:44px 18px; }
  .ito-style__title { font-size:clamp(2rem, 11vw, 3.2rem); }
  .ito-style__large-text { font-size:clamp(2.4rem, 13vw, 4rem); }
  .ito-style__news-row { display:block; }
  .ito-style__date { display:block; margin-bottom:8px; }
  .ito-style__image-strip { display:block; }
  .ito-style__image-strip .ito-style__placeholder { min-width:0; min-height:170px; margin-bottom:14px; }
}


/* =========================================================
   Wa-Modern Construction Pack v3.9.2（style-construction-11〜16）
   和モダン工務店パック：木の温もり・和の意匠を、CSSのみ（画像・JSなし）で表現。
   背景の木目・青海波はインラインdata URIのSVGのみを使用し、外部通信は発生しません。
   ========================================================= */
.ito-style__woodgrain {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.02 0.13' numOctaves='3' seed='7' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.55 0 0 0 0 0.44 0 0 0 0 0.31 0 0 0 0.12 0'/></filter><rect width='100%25' height='100%25' filter='url(%23g)'/></svg>");
  background-size: 300px;
}
.ito-style__seigaiha {
  height: 30px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='64' height='32'><g fill='none' stroke='rgba(35,52,45,0.28)' stroke-width='1.3'><path d='M0 32 A16 16 0 0 1 32 32 A16 16 0 0 1 64 32'/><path d='M0 24 A16 16 0 0 1 32 24 A16 16 0 0 1 64 24'/><path d='M0 16 A16 16 0 0 1 32 16 A16 16 0 0 1 64 16'/></g></svg>");
  background-size: 64px 32px;
  opacity: .6;
}
.ito-style--craft .ito-style__seigaiha--light {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='64' height='32'><g fill='none' stroke='rgba(247,242,234,0.5)' stroke-width='1.3'><path d='M0 32 A16 16 0 0 1 32 32 A16 16 0 0 1 64 32'/><path d='M0 24 A16 16 0 0 1 32 24 A16 16 0 0 1 64 24'/><path d='M0 16 A16 16 0 0 1 32 16 A16 16 0 0 1 64 16'/></g></svg>");
}
.ito-style__eyebrow-vert {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .3em;
  color: var(--ito-style-accent);
}
.ito-style__vtitle {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 700;
  font-size: clamp(24px, 3.6vw, 42px);
  line-height: 1.7;
  letter-spacing: .16em;
  color: var(--ito-style-main);
}
.ito-style__seal {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: var(--ito-style-main);
  color: #fff;
  text-align: center;
  transform: rotate(-10deg);
  position: relative;
  flex: 0 0 auto;
}
.ito-style__seal::before {
  content: "";
  position: absolute;
  inset: 7px;
  border: 1.5px dashed rgba(255,255,255,.55);
  border-radius: 50%;
}
.ito-style__seal b {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 20px;
  line-height: 1;
}
.ito-style__seal span {
  margin-top: 5px;
  font-size: 9px;
  letter-spacing: .12em;
}
.ito-style__badge-circle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  margin: 0 auto;
  border: 2px solid var(--ito-style-accent);
  border-radius: 50%;
  color: var(--ito-style-main);
  text-align: center;
}
.ito-style__badge-circle .lbl {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 12px;
  letter-spacing: .08em;
}
.ito-style__badge-circle .no {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 700;
  font-size: 34px;
  line-height: 1.1;
}
.ito-style__outline-num {
  display: block;
  margin: 0 0 -10px;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--ito-style-accent);
  font-weight: 700;
  font-size: clamp(64px, 9vw, 128px);
  line-height: .85;
  opacity: .55;
}
.ito-style__arch-portrait {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border-radius: 140px 140px 16px 16px;
  border: 1.5px solid var(--ito-style-accent);
  box-shadow: 0 26px 50px rgba(9,30,25,.28);
}
.ito-style__arch-portrait { background: linear-gradient(135deg, var(--ito-style-soft), #fff); }
.ito-style__number-cell { padding-top: 20px; border-top: 1px solid var(--ito-style-line); }
.ito-style__number-cell .v { display: flex; align-items: baseline; gap: 8px; }
.ito-style__number-cell b { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 800; font-size: clamp(44px, 6vw, 76px); color: var(--ito-style-accent); line-height: .95; }
.ito-style__number-cell .u { font-size: 16px; color: var(--ito-style-main); }
.ito-style__number-cell .lbl { margin-top: 10px; color: var(--ito-style-muted); font-size: 13px; line-height: 1.8; }
.ito-style__bar-row + .ito-style__bar-row { margin-top: 24px; }
.ito-style__bar-top { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 8px; }
.ito-style__bar-top .lb { font-weight: 700; font-size: 14px; }
.ito-style__bar-top .pc { font-weight: 800; font-size: 26px; color: var(--ito-style-main); }
.ito-style__bar-track { height: 18px; background: var(--ito-style-soft); border: 1.5px solid var(--ito-style-main); border-radius: 3px; overflow: hidden; }
.ito-style__bar-fill { height: 100%; background: repeating-linear-gradient(90deg, var(--ito-style-accent) 0 12px, #7a4d26 12px 14px); }
.ito-style__bar-fill--90 { width: 90%; }
.ito-style__bar-fill--92 { width: 92%; }
.ito-style__bar-fill--94 { width: 94%; }
.ito-style__bar-fill--95 { width: 95%; }
.ito-style__bar-fill--96 { width: 96%; }
.ito-style__bar-fill--97 { width: 97%; }
.ito-style__bar-fill--98 { width: 98%; }
.ito-style__bar-fill--99 { width: 99%; }
.ito-style__bar-fill--100 { width: 100%; }
.ito-style__quote-box { position: relative; padding: 32px 30px; background: var(--ito-style-soft); border: 1.5px solid var(--ito-style-main); border-radius: 6px; }
.ito-style__quote-box::before { content: ""; position: absolute; left: 7px; top: 7px; right: -7px; bottom: -7px; border: 1.5px solid var(--ito-style-accent); border-radius: 6px; z-index: -1; }
.ito-style__quote-box .q { margin: 0 0 16px; font-weight: 700; font-size: clamp(16px, 1.8vw, 19px); line-height: 1.8; }
.ito-style__quote-box .who { color: var(--ito-style-muted); font-size: 13px; }
.ito-style__row-alt {
  display: flex;
  align-items: center;
  gap: 28px;
}
.ito-style__row-alt.is-reverse { flex-direction: row-reverse; }
.ito-style__row-alt .ito-style__arch-photo,
.ito-style__row-alt .ito-style__placeholder { flex: 0 0 34%; }
.ito-style__row-alt .ito-style__row-txt { flex: 1 1 auto; }
.ito-style__row-alt.is-reverse .ito-style__row-txt { text-align: right; }
.ito-style__tag-line {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 13px;
  letter-spacing: .1em;
  color: var(--ito-style-soft);
}
.ito-style__hero-dark {
  padding: clamp(56px, 8vw, 112px) clamp(20px, 4vw, 56px);
  background: var(--ito-style-main);
  color: #f3ede1;
  border-radius: 0;
}
.ito-style__hero-dark .ito-style__eyebrow { color: var(--ito-style-accent); }
.ito-style__hero-dark .ito-style__title { color: #fbf6ec; }
.ito-style__hero-dark .ito-style__lead { color: rgba(251,246,236,.82); max-width: 34em; }
.ito-style__hero-dark .ito-style__button .wp-block-button__link { background: var(--ito-style-accent); color: #fff; }
.ito-style__hero-dark .ito-style__button-outline .wp-block-button__link { border-color: rgba(251,246,236,.5); color: #fbf6ec; }
.ito-style__bg-word {
  display: block;
  margin: 0 0 -0.15em;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(217,164,65,.4);
  font-family: -apple-system, "Segoe UI", sans-serif;
  font-weight: 700;
  letter-spacing: .02em;
  font-size: clamp(48px, 10vw, 150px);
  line-height: .85;
  text-align: center;
}
@media (max-width: 781px) {
  .ito-style__row-alt,
  .ito-style__row-alt.is-reverse { flex-direction: column; text-align: left; gap: 16px; }
  .ito-style__row-alt .ito-style__arch-photo,
  .ito-style__row-alt .ito-style__placeholder { flex-basis: auto; width: 100%; }
  .ito-style__row-alt.is-reverse .ito-style__row-txt { text-align: left; }
  .ito-style__vtitle { writing-mode: horizontal-tb; letter-spacing: .04em; }
  .ito-style__seal { width: 76px; height: 76px; }
  .ito-style__badge-circle { width: 76px; height: 76px; }
  .ito-style__outline-num { font-size: clamp(48px, 16vw, 80px); }
  .ito-style__arch-portrait { border-radius: 90px 90px 12px 12px; }
}


/* =========================================================
   FV Motion Pack v3.7
   1GUU-style inspiration: typography, layered cards, soft motion.
   CSS-only, no external communication, no JavaScript.
   ========================================================= */
.ito-fv-motion {
  --ito-fv-main: #071f35;
  --ito-fv-accent: #2b6df6;
  --ito-fv-sub: #6f7f8f;
  --ito-fv-soft: #f3f7fb;
  --ito-fv-line: rgba(7, 31, 53, .12);
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 10vw, 148px) clamp(18px, 5vw, 72px);
  background: #fff;
  color: var(--ito-fv-main);
  isolation: isolate;
}
.ito-fv-motion--type,
.ito-fv-motion--corporate {
  min-height: min(760px, 86vh);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ito-fv-motion--grid { background: linear-gradient(135deg, #f7faff 0%, #fff 48%, #f4f7fb 100%); }
.ito-fv-motion--visual { background: #fbfcff; }
.ito-fv-motion--shapes { text-align: center; background: linear-gradient(135deg, #ffffff 0%, #f3f7fb 100%); }
.ito-fv-motion--shigyo { --ito-fv-main:#102a43; --ito-fv-accent:#8a6d3b; --ito-fv-soft:#f7f3eb; background: linear-gradient(135deg, #fff, #f8f4ee); }
.ito-fv-motion--corporate { --ito-fv-main:#07111f; --ito-fv-accent:#00a5b5; background: #f8fafc; }
.ito-fv-motion--guide { background:#fff8e8; border:1px solid rgba(138,109,59,.25); border-radius:20px; padding:32px; }
.ito-fv-motion__layout { align-items: center; gap: clamp(28px, 5vw, 72px); }
.ito-fv-motion__eyebrow {
  margin: 0 0 16px;
  color: var(--ito-fv-accent);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.ito-fv-motion__title {
  margin: 0;
  color: var(--ito-fv-main);
  font-size: clamp(2.35rem, 6.1vw, 5.9rem);
  line-height: 1.04;
  letter-spacing: -.055em;
  font-weight: 900;
}
.ito-fv-motion--shigyo .ito-fv-motion__title { font-size: clamp(2.1rem, 5vw, 4.5rem); letter-spacing: -.025em; line-height: 1.16; }
.ito-fv-motion--corporate .ito-fv-motion__title { font-size: clamp(2.6rem, 7vw, 6.6rem); letter-spacing: -.07em; }
.ito-fv-motion__lead {
  max-width: 720px;
  margin: 24px 0 0;
  color: var(--ito-fv-sub);
  font-size: clamp(1rem, 1.45vw, 1.16rem);
  line-height: 1.95;
}
.ito-fv-motion__buttons { margin-top: 34px; gap: 14px; }
.ito-fv-motion__button .wp-block-button__link,
.ito-fv-motion__button-outline .wp-block-button__link {
  border-radius: 999px;
  padding: 14px 24px;
  font-weight: 800;
  transition: transform .35s ease, box-shadow .35s ease, opacity .35s ease;
}
.ito-fv-motion__button .wp-block-button__link { background: var(--ito-fv-main); color: #fff; box-shadow: 0 18px 38px rgba(7,31,53,.18); }
.ito-fv-motion__button-outline .wp-block-button__link { border: 1px solid var(--ito-fv-line); color: var(--ito-fv-main); background: rgba(255,255,255,.65); }
.ito-fv-motion__button .wp-block-button__link:hover,
.ito-fv-motion__button-outline .wp-block-button__link:hover { transform: translateY(-3px); opacity: .92; }
.ito-fv-motion__scroll {
  margin-top: clamp(48px, 7vw, 90px);
  color: var(--ito-fv-sub);
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.ito-fv-motion__scroll::after {
  content: "";
  display: block;
  width: 1px;
  height: 56px;
  margin: 12px 0 0 6px;
  background: var(--ito-fv-accent);
  transform-origin: top;
  animation: itoFvScrollLine 1.7s ease-in-out infinite;
}
.ito-fv-motion__cards {
  display: grid;
  gap: 16px;
  transform: rotate(-2deg);
}
.ito-fv-motion__mini-card,
.ito-fv-motion__trust-card {
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--ito-fv-line);
  border-radius: 24px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 24px 64px rgba(7,31,53,.09);
  backdrop-filter: blur(10px);
}
.ito-fv-motion__mini-card:nth-child(2) { margin-left: clamp(18px, 4vw, 72px); }
.ito-fv-motion__mini-card:nth-child(3) { margin-right: clamp(18px, 4vw, 72px); }
.ito-fv-motion__mini-card h3,
.ito-fv-motion__trust-card h3 { margin: 0 0 8px; color: var(--ito-fv-main); }
.ito-fv-motion__mini-card p,
.ito-fv-motion__trust-card p,
.ito-fv-motion__trust-card li { color: var(--ito-fv-sub); line-height: 1.75; }
.ito-fv-motion__mockup {
  min-height: clamp(280px, 38vw, 520px);
  display: grid;
  place-items: center;
  border: 1px dashed var(--ito-fv-line);
  border-radius: 32px;
  background: linear-gradient(135deg, #eaf0ff, #fff 58%, #f5f7fb);
  color: var(--ito-fv-sub);
  text-align: center;
  box-shadow: 0 28px 70px rgba(7,31,53,.10);
}
.ito-fv-motion__shape {
  position: absolute;
  z-index: -1;
  border-radius: 999px;
  filter: blur(.2px);
  opacity: .72;
  animation: itoFvFloat 8s ease-in-out infinite;
}
.ito-fv-motion__shape--one {
  width: clamp(140px, 22vw, 320px);
  height: clamp(140px, 22vw, 320px);
  top: 12%;
  left: 6%;
  background: rgba(43,109,246,.13);
}
.ito-fv-motion__shape--two {
  width: clamp(120px, 18vw, 260px);
  height: clamp(120px, 18vw, 260px);
  right: 8%;
  bottom: 10%;
  background: rgba(0,165,181,.14);
  animation-delay: -2.8s;
}
.ito-fv-motion__bottom-links {
  width: min(980px, 100%);
  margin-top: clamp(48px, 8vw, 96px);
  border-top: 1px solid var(--ito-fv-line);
  border-bottom: 1px solid var(--ito-fv-line);
}
.ito-fv-motion__bottom-links .wp-block-column {
  border-right: 1px solid var(--ito-fv-line);
}
.ito-fv-motion__bottom-links .wp-block-column:last-child { border-right: 0; }
.ito-fv-motion__bottom-links p { margin: 0; }
.ito-fv-motion__bottom-links a {
  display: block;
  padding: 18px 12px;
  color: var(--ito-fv-main);
  text-decoration: none;
  font-weight: 850;
  letter-spacing: .08em;
}
.ito-motion-delay-1,
.ito-motion-delay-2,
.ito-motion-delay-3,
.ito-motion-delay-4,
.ito-motion-delay-5 {
  opacity: 0;
  animation: itoFvFadeUp .9s cubic-bezier(.16,1,.3,1) forwards;
}
.ito-motion-delay-1 { animation-delay: .08s; }
.ito-motion-delay-2 { animation-delay: .22s; }
.ito-motion-delay-3 { animation-delay: .38s; }
.ito-motion-delay-4 { animation-delay: .54s; }
.ito-motion-delay-5 { animation-delay: .72s; }
.ito-fv-motion--grid .ito-motion-delay-2,
.ito-fv-motion--grid .ito-motion-delay-3,
.ito-fv-motion--grid .ito-motion-delay-4 { animation-name: itoFvCardIn; }
.ito-fv-motion--visual .ito-fv-motion__mockup { animation-name: itoFvSlideVisual; }
@keyframes itoFvFadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes itoFvCardIn {
  from { opacity: 0; transform: translateY(26px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes itoFvSlideVisual {
  from { opacity: 0; transform: translateX(34px) scale(.98); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}
@keyframes itoFvFloat {
  0%, 100% { transform: translate3d(0,0,0) scale(1); }
  50% { transform: translate3d(18px,-18px,0) scale(1.04); }
}
@keyframes itoFvScrollLine {
  0%, 100% { transform: scaleY(.28); opacity: .45; }
  50% { transform: scaleY(1); opacity: 1; }
}
@media (max-width: 781px) {
  .ito-fv-motion {
    padding: clamp(56px, 14vw, 84px) 18px;
  }
  .ito-fv-motion--type,
  .ito-fv-motion--corporate {
    min-height: auto;
  }
  .ito-fv-motion__title,
  .ito-fv-motion--corporate .ito-fv-motion__title,
  .ito-fv-motion--shigyo .ito-fv-motion__title {
    font-size: clamp(2rem, 10.8vw, 3.35rem);
    line-height: 1.13;
  }
  .ito-fv-motion__buttons .wp-block-button,
  .ito-fv-motion__buttons .wp-block-button__link {
    width: 100%;
  }
  .ito-fv-motion__cards { transform: none; margin-top: 26px; }
  .ito-fv-motion__mini-card:nth-child(2),
  .ito-fv-motion__mini-card:nth-child(3) { margin-left: 0; margin-right: 0; }
  .ito-fv-motion__mockup { min-height: 230px; margin-top: 28px; }
  .ito-fv-motion__bottom-links { display: grid; grid-template-columns: repeat(2, 1fr); }
  .ito-fv-motion__bottom-links .wp-block-column { border-right: 0; border-bottom: 1px solid var(--ito-fv-line); }
  .ito-fv-motion__bottom-links a { padding: 15px 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .ito-fv-motion *,
  .ito-fv-motion__shape,
  .ito-fv-motion__scroll::after {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* v3.8.0 Design Comp Pack -------------------------------------------------- */
.ito-design {
  --ito-design-main: #1f4e5f;
  --ito-design-accent: #549e38;
  --ito-design-bg: #f7faf5;
  --ito-design-soft: #eaf5e6;
  --ito-design-text: #1f2933;
  --ito-design-border: #d8e8d2;
  --ito-design-white: #ffffff;
  margin: 0 auto 40px;
  padding: clamp(38px, 6vw, 82px) clamp(18px, 4vw, 56px);
  color: var(--ito-design-text);
  background: var(--ito-design-bg);
  border-radius: 28px;
  overflow: hidden;
}
.ito-design--stylish {
  --ito-design-main: #102a43;
  --ito-design-accent: #549e38;
  --ito-design-bg: #ffffff;
  --ito-design-soft: #eef4f7;
}
.ito-design--soft {
  --ito-design-main: #2f6b24;
  --ito-design-accent: #549e38;
  --ito-design-bg: #fafcf8;
  --ito-design-soft: #f1f8ee;
}
.ito-design__hero {
  padding: clamp(42px, 7vw, 90px) 0;
  border-bottom: 1px solid var(--ito-design-border);
}
.ito-design__eyebrow,
.ito-design__tag {
  margin: 0 0 12px;
  color: var(--ito-design-accent);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.ito-design__hero-title {
  margin: 0 0 20px;
  font-size: clamp(2.1rem, 6.4vw, 5.7rem);
  line-height: 1.04;
  letter-spacing: -.05em;
  color: var(--ito-design-main);
}
.ito-design__heading {
  margin: 0 0 14px;
  font-size: clamp(1.7rem, 3.6vw, 3.2rem);
  line-height: 1.18;
  letter-spacing: -.04em;
  color: var(--ito-design-main);
}
.ito-design__hero-lead,
.ito-design__lead {
  max-width: 760px;
  color: rgba(31, 41, 51, .82);
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  line-height: 1.9;
}
.ito-design__section {
  padding: clamp(34px, 5vw, 68px) 0;
  border-bottom: 1px solid rgba(216, 232, 210, .9);
}
.ito-design__section:last-child { border-bottom: 0; }
.ito-design__cards {
  gap: clamp(18px, 3vw, 32px);
  margin-top: 28px;
}
.ito-design__card {
  height: 100%;
  padding: clamp(22px, 3vw, 34px);
  background: var(--ito-design-white);
  border: 1px solid var(--ito-design-border);
  border-radius: 22px;
  box-shadow: 0 18px 50px rgba(15, 23, 42, .06);
}
.ito-design__num {
  margin: 0 0 18px;
  color: var(--ito-design-accent);
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .14em;
}
.ito-design__card-title {
  margin: 0 0 10px;
  color: var(--ito-design-main);
  font-size: 1.18rem;
}
.ito-design__buttons {
  gap: 12px;
  margin-top: 28px;
}
.ito-design__button .wp-block-button__link {
  background: var(--ito-design-main);
  border-radius: 999px;
  padding: 15px 26px;
  font-weight: 800;
}
.ito-design__button-outline .wp-block-button__link {
  border-color: var(--ito-design-main);
  color: var(--ito-design-main);
  border-radius: 999px;
  padding: 15px 26px;
  font-weight: 800;
}
.ito-design__link-list {
  display: grid;
  gap: 12px;
  padding-left: 0;
  list-style: none;
}
.ito-design__link-list li a {
  display: block;
  padding: 18px 20px;
  background: var(--ito-design-white);
  border: 1px solid var(--ito-design-border);
  border-radius: 16px;
  color: var(--ito-design-main);
  font-weight: 800;
  text-decoration: none;
}
.ito-design--related-cta .ito-design__section {
  padding: clamp(30px, 5vw, 58px);
  background: var(--ito-design-main);
  border-radius: 26px;
  color: #fff;
}
.ito-design--related-cta .ito-design__heading,
.ito-design--related-cta .ito-design__lead,
.ito-design--related-cta .ito-design__tag { color: #fff; }
.ito-design--related-cta .ito-design__button .wp-block-button__link { background: #fff; color: var(--ito-design-main); }
.ito-design--related-cta .ito-design__button-outline .wp-block-button__link { border-color: #fff; color: #fff; }
@media (max-width: 781px) {
  .ito-design { border-radius: 18px; padding: 34px 18px; }
  .ito-design__hero-title { font-size: clamp(2rem, 10vw, 3.2rem); }
  .ito-design__buttons .wp-block-button,
  .ito-design__buttons .wp-block-button__link { width: 100%; }
  .ito-design__card { padding: 22px; }
}

/* v3.9.0 FV motion intensity / long copy / SP safe */
.ito-fv-motion,
.ito-fv-long-copy,
.ito-fv-static,
.ito-fv-sp-safe {
  --ito-fv-main: #1f3a2b;
  --ito-fv-accent: #549e38;
  --ito-fv-soft: #eef8ea;
  --ito-fv-border: #cfe5c8;
  padding: clamp(42px, 7vw, 92px) clamp(18px, 4vw, 52px);
  border: 1px solid var(--ito-fv-border);
  border-radius: 28px;
  background: linear-gradient(135deg, #ffffff 0%, var(--ito-fv-soft) 100%);
  overflow: hidden;
}
.ito-fv__inner { gap: clamp(22px, 4vw, 56px); }
.ito-fv__eyebrow { margin: 0 0 12px; color: var(--ito-fv-accent); font-weight: 900; font-size: .82rem; letter-spacing: .08em; }
.ito-fv__title { margin: 0 0 18px; color: var(--ito-fv-main); font-size: clamp(1.9rem, 4.8vw, 4.2rem); line-height: 1.12; letter-spacing: -.04em; }
.ito-fv-long-copy .ito-fv__title { font-size: clamp(1.7rem, 3.7vw, 3.1rem); line-height: 1.18; max-width: 12.5em; }
.ito-fv__lead { color: rgba(31,58,43,.78); line-height: 1.85; max-width: 42em; }
.ito-fv__button .wp-block-button__link { border-radius: 999px; background: var(--ito-fv-accent); color: #fff; padding: 14px 24px; font-weight: 800; }
.ito-fv__visual-card { min-height: 220px; border: 1px solid var(--ito-fv-border); border-radius: 26px; background:
  radial-gradient(circle at 24% 28%, #549e38 0 14%, transparent 15%),
  radial-gradient(circle at 82% 26%, #f3c847 0 16%, transparent 17%),
  linear-gradient(135deg, #fff, #eef8ea); box-shadow: 0 24px 70px rgba(31,58,43,.12); }
.ito-fv-motion--subtle .ito-fv__visual-card { animation: ito-fv-soft-float 7s ease-in-out infinite; }
.ito-fv-motion--standard .ito-fv__visual-card { animation: ito-fv-soft-float 5s ease-in-out infinite; }
.ito-fv-motion--strong .ito-fv__visual-card { animation: ito-fv-pop-float 3.8s ease-in-out infinite; }
.ito-fv-static .ito-fv__visual-card { animation: none; }
@keyframes ito-fv-soft-float { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-8px); } }
@keyframes ito-fv-pop-float { 0%,100%{ transform: translateY(0) scale(1); } 50%{ transform: translateY(-12px) scale(1.02); } }
@media (prefers-reduced-motion: reduce) { .ito-fv-motion .ito-fv__visual-card { animation: none !important; } }
@media (max-width: 781px) {
  .ito-fv-motion,
  .ito-fv-long-copy,
  .ito-fv-static,
  .ito-fv-sp-safe { padding: 34px 18px; border-radius: 20px; }
  .ito-fv__title { font-size: clamp(1.85rem, 8vw, 2.55rem); }
  .ito-fv-long-copy .ito-fv__title { font-size: clamp(1.65rem, 7vw, 2.25rem); }
  .ito-fv__visual-card { min-height: 170px; }
  .ito-fv-sp-safe .ito-fv__visual { order: -1; }
  .ito-fv-sp-safe .ito-fv__buttons .wp-block-button,
  .ito-fv-sp-safe .ito-fv__buttons .wp-block-button__link { width: 100%; }
}

/* ---- Figma自動生成パターン追加分 (v3.9.1) ---- */
.ito-pattern__placeholder {
  aspect-ratio: 16 / 9;
  background: var(--ito-color-border);
  border-radius: var(--ito-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  margin: 24px 0;
}
.ito-pattern__placeholder-text {
  margin: 0;
  color: var(--ito-color-muted);
  font-size: 12px;
  text-align: center;
}
.ito-pattern__placeholder--wide { aspect-ratio: 21 / 8; }
.ito-pattern__placeholder--square { aspect-ratio: 4 / 3; }

.ito-pattern__news-list { max-width: 760px; margin: 0 auto; }
.ito-pattern__news-item {
  padding: 18px 0;
  border-bottom: 1px solid var(--ito-color-border);
}
.ito-pattern__news-item:first-child { border-top: 1px solid var(--ito-color-border); }
.ito-pattern__news-meta {
  margin: 0 0 6px;
  font-size: 13px;
  color: var(--ito-color-muted);
}
.ito-pattern__news-title { margin: 0; font-size: 15px; }

/* =========================================================
   Editorial Salon Pack v3.9.3（style-salon-11〜16）
   モノクローム写真×ローズ系アクセント×明朝見出しの、雑誌的なサロン意匠。
   .ito-style--salon-editorial は既存の .ito-style--craft 系ユーティリティ
  （vtitle / outline-num / arch-portrait / bar-track・fill / quote-box / row-alt / hero-dark / bg-word）
   をそのまま流用できます（すべてCSS変数ベースのため）。
   ========================================================= */
.ito-style--salon-editorial {
  --ito-style-main: #171717;
  --ito-style-accent: #b0758b;
  --ito-style-soft: #f4f0ef;
  --ito-style-line: rgba(23,23,23,.14);
  --ito-style-text: #3c373a;
  --ito-style-muted: #857f83;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
}
.ito-style--salon-editorial .ito-style__eyebrow {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .78rem;
}
.ito-style--salon-editorial .ito-style__title,
.ito-style--salon-editorial .ito-style__section-title { letter-spacing: .03em; line-height: 1.55; }
.ito-style__pain-list { display: block; width: 100%; border-top: 1px solid var(--ito-style-line); margin-top: 24px; }
.ito-style__pain-item { display: flex; align-items: baseline; gap: 16px; width: 100%; padding: 20px 0; border-bottom: 1px solid var(--ito-style-line); }
.ito-style__pain-item .ck { flex: 0 0 auto; }
.ito-style__pain-item .ck { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; color: var(--ito-style-accent); }
.ito-style__pain-item p { flex: 1 1 auto; min-width: 0; width: auto; margin: 0; writing-mode: horizontal-tb !important; white-space: normal !important; word-break: normal; overflow-wrap: break-word; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 600; font-size: clamp(15px, 1.8vw, 18px); color: var(--ito-style-main); }
.ito-style__bigword {
  display: block;
  margin: 0 0 6px;
  color: transparent;
  -webkit-text-stroke: 1.2px var(--ito-style-accent);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 700;
  font-size: clamp(40px, 6vw, 96px);
  line-height: .9;
  opacity: .7;
}
.ito-style__portrait-sm {
  aspect-ratio: 3 / 4;
  border-radius: var(--ito-radius-md, 14px);
  overflow: hidden;
  background: var(--ito-style-soft);
  box-shadow: 0 20px 40px rgba(23,23,23,.14);
}
.ito-style__quote-editorial { margin-top: 20px; }
.ito-style__quote-editorial .q { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 600; font-size: clamp(16px, 1.7vw, 19px); line-height: 1.85; color: var(--ito-style-main); }
.ito-style__quote-editorial .q .qm { color: var(--ito-style-accent); font-size: 1.2em; }
.ito-style__quote-editorial .sm { display: block; margin-top: 12px; font-size: 13px; color: var(--ito-style-muted); line-height: 1.8; }
.ito-style__quote-editorial .by { margin-top: 12px; display: flex; align-items: center; gap: 12px; }
.ito-style__quote-editorial .by .ln { width: 30px; height: 1px; background: var(--ito-style-accent); }
.ito-style__quote-editorial .by .nm { font-weight: 700; font-size: 13px; color: var(--ito-style-main); }
.ito-style__quote-editorial .by .rl { font-size: 12px; color: var(--ito-style-muted); }
.ito-style__price-editorial { text-align: center; }
.ito-style__price-editorial .pn { font-size: 12px; color: var(--ito-style-muted); margin-top: 14px; }
.ito-style__price-editorial .big { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 800; font-size: clamp(34px, 5vw, 56px); color: var(--ito-style-main); margin-top: 6px; }
.ito-style__price-editorial .big .y { font-size: .4em; color: var(--ito-style-accent); margin-right: 2px; }
.ito-style__price-editorial .tax { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 10px; color: var(--ito-style-muted); margin-top: 8px; }
.ito-style__dropcap {
  float: left;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 800;
  font-size: clamp(64px, 8vw, 108px);
  line-height: .74;
  margin: 4px 14px -4px 0;
  color: var(--ito-style-accent);
}
.ito-style__menu-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ito-style-line); }
.ito-style__menu-list li { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; padding: 18px 4px; border-bottom: 1px solid var(--ito-style-line); }
.ito-style__menu-list .mt { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 700; font-size: 16px; color: var(--ito-style-main); }
.ito-style__menu-list .md { font-size: 12.5px; color: var(--ito-style-muted); flex: 1 1 auto; margin-left: 12px; }
.ito-style__menu-list .mp { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; color: var(--ito-style-accent); font-weight: 700; white-space: nowrap; }
@media (max-width: 781px) {
  .ito-style__bigword { font-size: clamp(32px, 12vw, 56px); }
  .ito-style__pain-item { gap: 12px; }
  .ito-style__menu-list li { flex-direction: column; align-items: flex-start; gap: 4px; }
}

/* =========================================================
   Editorial Clinic Pack v3.9.4（style-clinic 01〜06）
   アクア×オレンジのやさしい配色、罫線エディトリアルの整体・クリニック向け意匠。
   .ito-style--clinic も既存の汎用ユーティリティ（row-alt / outline-num / dropcap /
   portrait-sm / quote-editorial / menu-list / price-editorial）をそのまま流用できます。
   ========================================================= */
.ito-style--clinic {
  --ito-style-main: #274a53;
  --ito-style-accent: #4f8c9a;
  --ito-style-soft: #eef7f9;
  --ito-style-line: rgba(39,74,83,.16);
  --ito-style-text: #4c585c;
  --ito-style-muted: #8a969a;
}
.ito-style__qmark-item { position: relative; text-align: center; }
.ito-style__qmark-bg {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 0;
  font-weight: 700;
  font-size: 130px;
  line-height: 1;
  color: var(--ito-style-soft);
}
.ito-style__qmark-photo {
  position: relative;
  z-index: 1;
  width: 140px;
  height: 140px;
  margin: 0 auto;
  border-radius: 50%;
  overflow: hidden;
  border: 4px solid #fff;
  box-shadow: 0 14px 30px rgba(39,74,83,.24);
  background: var(--ito-style-soft);
}
.ito-style__qmark-cap { position: relative; z-index: 1; margin-top: 16px; font-weight: 700; font-size: 14.5px; color: var(--ito-style-main); }
.ito-style__flow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; font-size: 14.5px; }
.ito-style__flow .from { color: var(--ito-style-muted); }
.ito-style__flow .arrow { color: var(--ito-style-accent); font-weight: 700; }
.ito-style__flow .to { color: var(--ito-style-main); font-weight: 700; }
.ito-style__pullquote { font-weight: 700; font-size: clamp(17px, 2vw, 21px); line-height: 1.7; color: var(--ito-style-main); border-left: 4px solid var(--ito-style-accent); padding: 4px 0 4px 20px; margin: 22px 0; }
.ito-style__hl { display: inline-block; font-weight: 700; font-size: clamp(18px, 2.4vw, 24px); color: var(--ito-style-accent); }
@media (max-width: 781px) {
  .ito-style__qmark-bg { font-size: 90px; }
  .ito-style__qmark-photo { width: 108px; height: 108px; }
}

/* =========================================================
   Editorial Tax/Professional Pack v3.9.5（style-tax 01〜06）
   紺×金の端正な士業エディトリアル。既存の汎用ユーティリティ
  （row-alt / outline-num / number-cell / dropcap / portrait-sm /
   quote-editorial / menu-list / price-editorial / hero-dark）をそのまま流用。
   ========================================================= */
.ito-style--tax {
  --ito-style-main: #1f3a5f;
  --ito-style-accent: #b8944d;
  --ito-style-soft: #f4f6f8;
  --ito-style-line: rgba(31,58,95,.16);
  --ito-style-text: #2f3747;
  --ito-style-muted: #6b7280;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
}
.ito-style__uline { display: block; width: 60px; height: 5px; border-radius: 4px; background: var(--ito-style-accent); margin: 18px auto 0; }
.ito-style__uline--left { margin-left: 0; }

/* =========================================================
   Warm Cafe / Gourmet Pack v3.9.6（style-cafe 01〜06）
   テラコッタ×ゴールドの温かみのあるカフェ・飲食店向け意匠。
   .ito-style--cafe も既存の汎用ユーティリティ（row-alt / outline-num / number-cell /
   price-editorial / menu-list / quote-editorial / dropcap / portrait-sm / pullquote）
   をそのまま流用できます。
   ========================================================= */
.ito-style--cafe {
  --ito-style-main: #9B4A2F;
  --ito-style-accent: #E0A93B;
  --ito-style-soft: #F7EFE0;
  --ito-style-line: rgba(155,74,47,.2);
  --ito-style-text: #5A4639;
  --ito-style-muted: #8B7568;
}
.ito-style--cafe .ito-style__title,
.ito-style--cafe .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* 写真全面のダークオーバーレイHero（囲みの中に文字が乗る、写真は背景画像として設定） */
.ito-style__hero-photo {
  position: relative;
  min-height: clamp(420px, 58vw, 620px);
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: clamp(32px, 6vw, 72px);
  background:
    linear-gradient(180deg, rgba(20,10,5,.32) 0%, rgba(20,10,5,.22) 40%, rgba(20,10,5,.72) 100%),
    var(--ito-style-soft);
  color: #fff;
}
.ito-style__hero-photo .inner { max-width: 640px; }
.ito-style__hero-photo .ito-style__eyebrow { color: #F3D9A6; }
.ito-style__hero-photo .ito-style__eyebrow::before { background: var(--ito-style-accent); }
.ito-style__hero-photo .ito-style__title { color: #FFF6E8; text-shadow: 0 3px 24px rgba(0,0,0,.35); }
.ito-style__hero-photo .ito-style__lead { color: rgba(255,246,232,.92); }
.ito-style__hero-photo .ito-style__note { color: rgba(255,246,232,.7); font-size: 12px; margin-top: 18px; }
.ito-style__hero-photo .ito-style__note.is-bg-hint { font-style: italic; }

/* 実績数字/メニュー用：サムネイル付きの内訳リスト（menu-listの拡張） */
.ito-style__menu-list--thumb li { align-items: center; }
.ito-style__menu-list--thumb .mth { width: 56px; height: 42px; border-radius: 8px; overflow: hidden; flex: 0 0 auto; }
.ito-style__menu-list--thumb .ito-style__placeholder { min-height: 0; height: 42px; width: 56px; padding: 0; border-radius: 8px; font-size: 9px; }

@media (max-width: 781px) {
  .ito-style__hero-photo { min-height: 68vw; padding: 28px; }
}

/* =========================================================
   Trust Blue 学習塾・教育パック v3.9.7（style-juku 01〜06）
   ブルー×イエローの信頼感ある学習塾・教育サービス向け意匠。
   .ito-style--juku も既存の汎用ユーティリティ（qmark-item / bar-track / bar-fill /
   quote-editorial / dropcap / portrait-sm / row-alt）をそのまま流用できます。
   ========================================================= */
.ito-style--juku {
  --ito-style-main: #2563C9;
  --ito-style-accent: #F5C518;
  --ito-style-soft: #EEF4FD;
  --ito-style-line: rgba(37,99,201,.16);
  --ito-style-text: #37445A;
  --ito-style-muted: #6B7689;
}
.ito-style--juku .ito-style__title,
.ito-style--juku .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* Hero上に重ねる、実績数字の小さなボード（FV用） */
.ito-style__hero-board {
  margin-top: 28px;
  max-width: 330px;
  background: rgba(7,17,36,.74);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 16px;
  padding: 18px 22px 14px;
  color: #fff;
}
.ito-style__hero-board .bhd { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.ito-style__hero-board .bhd .t { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; font-weight: 700; font-size: 13px; letter-spacing: .02em; }
.ito-style__hero-board .bhd .live { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 10px; letter-spacing: .1em; color: #16243B; background: var(--ito-style-accent); padding: 2px 9px; border-radius: 99px; }
.ito-style__hero-board .stat { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: center; padding: 11px 0; border-bottom: 1px dashed rgba(255,255,255,.16); }
.ito-style__hero-board .stat:last-child { border-bottom: 0; }
.ito-style__hero-board .stat .cu { font-weight: 700; font-size: clamp(28px, 3.2vw, 40px); line-height: .86; letter-spacing: -.02em; color: var(--ito-style-accent); }
.ito-style__hero-board .stat .lbl { font-size: 11.5px; color: rgba(255,255,255,.72); line-height: 1.5; }
.ito-style__hero-board .stat .lbl b { display: block; color: #fff; font-size: 13px; font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* 理由カードの下に添える、比較の一言チップ */
.ito-style__vs-chip { display: inline-block; font-size: 11px; letter-spacing: .02em; color: var(--ito-style-accent, var(--ito-style-main)); background: transparent; border: 1px solid var(--ito-style-line); padding: 5px 12px; border-radius: 999px; margin-top: 4px; }

/* 声セクション用の小さな丸アバター（写真差し替え枠） */
.ito-style__avatar-sm { width: 54px; height: 54px; border-radius: 50%; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; background: var(--ito-style-soft); color: var(--ito-style-muted); font-size: 9px; text-align: center; overflow: hidden; }

@media (max-width: 781px) {
  .ito-style__hero-board { max-width: none; }
}

/* =========================================================
   汎用：アクセス・店舗情報の項目リスト（各業種パックのアクセスパターンで共通利用）
   ========================================================= */
.ito-style__info-list { list-style: none; margin: 0; padding: 0; }
.ito-style__info-list li { display: grid; grid-template-columns: 104px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--ito-style-line); font-size: 14px; }
.ito-style__info-list li strong { color: var(--ito-style-main); }
@media (max-width: 781px) {
  .ito-style__info-list li { grid-template-columns: 84px 1fr; }
}

/* =========================================================
   Trust Blue 歯科クリニックパック v3.9.8（style-clinic 08〜14）
   既存カテゴリ ito-swell-style-clinic を拡張。ブルー×ティールの
   誠実な医療系配色。qmark-item / row-alt / outline-num / number-cell /
   card / dropcap / portrait-sm / info-list をそのまま流用できます。
   ========================================================= */
.ito-style--clinic-dental {
  --ito-style-main: #2E8BC0;
  --ito-style-accent: #71C6B9;
  --ito-style-soft: #F6FAFD;
  --ito-style-line: rgba(46,139,192,.18);
  --ito-style-text: #415061;
  --ito-style-muted: #6E7A86;
}
.ito-style--clinic-dental .ito-style__title,
.ito-style--clinic-dental .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* Hero等に添える、区切り線つきの信頼バッジ横並び */
.ito-style__trust-row { display: flex; flex-wrap: wrap; border: 1px solid var(--ito-style-line); border-radius: 10px; overflow: hidden; background: #fff; margin-top: 8px; }
.ito-style__trust-row .ti { padding: 14px 24px; border-right: 1px solid var(--ito-style-line); flex: 1 1 auto; }
.ito-style__trust-row .ti:last-child { border-right: 0; }
.ito-style__trust-row .ti strong { display: block; color: var(--ito-style-main); font-size: 15px; font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }
.ito-style__trust-row .ti span { font-size: 12px; color: var(--ito-style-muted); }
@media (max-width: 781px) {
  .ito-style__trust-row .ti { flex-basis: 100%; border-right: 0; border-bottom: 1px solid var(--ito-style-line); }
  .ito-style__trust-row .ti:last-child { border-bottom: 0; }
}

/* =========================================================
   Quiet Gold エステサロンパック v3.9.9（既存カテゴリ拡張・style-salon 18〜24）
   既存カテゴリ ito-swell-style-salon を拡張。黒×ゴールドの静かな上質配色。
   hero-photo / trust-row / qmark-item / row-alt / outline-num / number-cell /
   card / dropcap / portrait-sm / info-list をそのまま流用できます。
   ========================================================= */
.ito-style--salon-esthetic {
  --ito-style-main: #14110F;
  --ito-style-accent: #C9A24B;
  --ito-style-soft: #F3EBDD;
  --ito-style-line: rgba(20,17,15,.16);
  --ito-style-text: #3A3430;
  --ito-style-muted: #7B706A;
}
.ito-style--salon-esthetic .ito-style__title,
.ito-style--salon-esthetic .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Bold Red/Black パーソナルジムパック v3.10.0（新規カテゴリ・style-gym 01〜07）
   赤×黒の説得力あるパーソナルジム・ボディメイク向け意匠。新規カテゴリ ito-swell-style-gym。
   既存の汎用ユーティリティ（hero-photo / row-alt / outline-num / vs-chip /
   number-cell / card / card--soft / info-list）をそのまま流用しつつ、
   数字対比行（compare-row）とプラン比較カード（plan-card）を新規追加。
   ========================================================= */
.ito-style--gym {
  --ito-style-main: #14110F;
  --ito-style-accent: #E11D2A;
  --ito-style-soft: #F2EFE9;
  --ito-style-line: rgba(20,17,15,.16);
  --ito-style-text: #3A3733;
  --ito-style-muted: #7A746C;
}

/* 汎用：数字の対比（自己流 → プロの伴走）を矢印でつなぐ比較行。今後の他パックでも流用可。 */
.ito-style__compare-row {
  display: grid;
  grid-template-columns: 1fr 60px 1.2fr;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1px solid var(--ito-style-line);
  border-radius: 16px;
  padding: 24px 30px;
  box-shadow: 0 16px 36px -28px rgba(17,17,17,.3);
}
.ito-style__compare-row + .ito-style__compare-row { margin-top: 18px; }
.ito-style__compare-row .lbl { grid-column: 1/-1; font-size: 11px; letter-spacing: .12em; color: var(--ito-style-muted); text-transform: uppercase; margin-bottom: -6px; }
.ito-style__compare-row .old .v { font-weight: 700; font-size: clamp(24px, 3vw, 34px); color: var(--ito-style-muted); }
.ito-style__compare-row .old .u { font-size: .5em; color: var(--ito-style-muted); margin-left: 2px; }
.ito-style__compare-row .old .cap { font-size: 12px; color: var(--ito-style-muted); margin-top: 2px; }
.ito-style__compare-row .arrow { text-align: center; font-size: 24px; color: var(--ito-style-accent); }
.ito-style__compare-row .new .v { font-weight: 900; font-size: clamp(32px, 5vw, 52px); color: var(--ito-style-accent); line-height: 1; }
.ito-style__compare-row .new .u { font-size: .34em; color: var(--ito-style-accent); margin-left: 3px; }
.ito-style__compare-row .new .cap { font-size: 13px; font-weight: 700; color: var(--ito-style-main); margin-top: 2px; }

/* 汎用：3プラン比較のプライスカード（おすすめバッジ＋特徴チェックリスト）。今後の他パックでも流用可。 */
.ito-style__plan-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 3vw, 32px);
  border: 1px solid var(--ito-style-line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 40px -28px rgba(17,17,17,.25);
  position: relative;
}
.ito-style__plan-card.is-reco { border: 2px solid var(--ito-style-accent); box-shadow: 0 30px 54px -26px rgba(0,0,0,.2); }
.ito-style__plan-card.is-reco::before {
  content: "おすすめ";
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
  background: var(--ito-style-accent); color: #fff; font-size: 11px; font-weight: 700;
  letter-spacing: .04em; padding: 5px 18px; border-radius: 999px; white-space: nowrap;
}
.ito-style__plan-card .pn { font-weight: 700; font-size: 17px; color: var(--ito-style-main); }
.ito-style__plan-card .cap { color: var(--ito-style-muted); font-size: 12.5px; margin: 4px 0 16px; }
.ito-style__plan-card .price { display: flex; align-items: flex-end; gap: 4px; margin-bottom: 4px; }
.ito-style__plan-card .price .y { font-size: 13px; color: var(--ito-style-accent); margin-bottom: 6px; }
.ito-style__plan-card .price .v { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 800; font-size: clamp(30px, 4.5vw, 44px); color: var(--ito-style-main); line-height: 1; }
.ito-style__plan-card .price .u { font-size: 12px; color: var(--ito-style-muted); margin-bottom: 6px; }
.ito-style__plan-card .tax { font-size: 10.5px; color: var(--ito-style-muted); margin-bottom: 18px; }
.ito-style__plan-card ul { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 9px; flex: 1; }
.ito-style__plan-card li { font-size: 13.5px; padding-left: 22px; position: relative; color: var(--ito-style-text); }
.ito-style__plan-card li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--ito-style-accent); font-weight: 700; }

@media (max-width: 781px) {
  .ito-style__compare-row { grid-template-columns: 1fr 40px 1.2fr; padding: 20px; }
}

/* =========================================================
   Warm Terracotta コーチング・カウンセリングパック v3.11.0（新規カテゴリ・style-coaching 01〜07）
   テラコッタ×グレージュの、否定せず寄り添う伴走型サービス向け意匠。新規カテゴリ ito-swell-style-coaching。
   新規CSSクラスの追加なし（既存の hero-photo / qmark-item / row-alt / outline-num / vs-chip /
   number-cell / price-editorial / menu-list / card / card--soft / dropcap / portrait-sm /
   pullquote / info-list をすべて流用）。
   ========================================================= */
.ito-style--coaching {
  --ito-style-main: #2E251F;
  --ito-style-accent: #A8543B;
  --ito-style-soft: #EEE6D9;
  --ito-style-line: rgba(46,37,31,.16);
  --ito-style-text: #534A42;
  --ito-style-muted: #8A7E72;
}
.ito-style--coaching .ito-style__title,
.ito-style--coaching .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Indigo Architect 建築設計事務所パック v3.12.0（既存カテゴリ拡張・style-tax 08〜14）
   既存カテゴリ ito-swell-style-tax を拡張。「一級建築士」も広い意味での士業のため、
   新規カテゴリは作らず既存の「伊藤テンプレ｜税理士・士業」に新トーン .ito-style--tax-architect
   として拡張。インディゴ×アイボリーの端正な設計事務所配色。
   新規CSSクラスの追加なし（既存の hero-photo / qmark-item / row-alt / outline-num / vs-chip /
   number-cell / price-editorial / menu-list / card / card--soft / dropcap / portrait-sm /
   info-list をすべて流用）。
   ========================================================= */
.ito-style--tax-architect {
  --ito-style-main: #1C1C1A;
  --ito-style-accent: #2C3E5A;
  --ito-style-soft: #F0F0EC;
  --ito-style-line: rgba(28,28,26,.16);
  --ito-style-text: #3C3C3A;
  --ito-style-muted: #84847E;
}
.ito-style--tax-architect .ito-style__title,
.ito-style--tax-architect .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Navy Green 不動産パック v3.13.0（新規カテゴリ・style-realestate 01〜07）
   紺×セージグリーンの、急かさず相場を先に示す地域密着不動産向け意匠。新規カテゴリ ito-swell-style-realestate。
   新規CSSクラスの追加なし（既存の hero-photo / qmark-item / row-alt / outline-num / vs-chip /
   number-cell / price-editorial / menu-list / card / card--soft / info-list をすべて流用）。
   ========================================================= */
.ito-style--realestate {
  --ito-style-main: #1A2A3E;
  --ito-style-accent: #5F8347;
  --ito-style-soft: #EAF0E7;
  --ito-style-line: rgba(31,58,95,.16);
  --ito-style-text: #41505E;
  --ito-style-muted: #7C8893;
}
.ito-style--realestate .ito-style__title,
.ito-style--realestate .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Deep Blue 外壁塗装パック v3.14.0（既存カテゴリ拡張・style-construction 18〜24）
   既存カテゴリ ito-swell-style-construction を拡張。「外壁塗装」も住宅に関わる工事業のため、
   新規カテゴリは作らず既存の「伊藤テンプレ｜工務店・住宅」に新トーン .ito-style--construction-paint
   として拡張。ディープブルー×オレンジの、急かさず写真と内訳で見せる塗装専門店配色。
   新規CSSクラスの追加なし（既存の hero-photo / qmark-item / row-alt / badge-circle /
   number-cell / price-editorial / menu-list / card / bar-row・bar-fill / quote-box /
   placeholder / info-list / num をすべて流用）。
   ========================================================= */
.ito-style--construction-paint {
  --ito-style-main: #103F63;
  --ito-style-accent: #E8821E;
  --ito-style-soft: #E6EFF6;
  --ito-style-line: rgba(16,63,99,.16);
  --ito-style-text: #3A4856;
  --ito-style-muted: #76828D;
}
.ito-style--construction-paint .ito-style__title,
.ito-style--construction-paint .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Sage Peach ペットサロンパック v3.15.0（新規カテゴリ・style-petsalon 01〜07）
   人向け美容の「伊藤テンプレ｜美容室・サロン」とは客層・訴求が異なるため、
   新規カテゴリ「伊藤テンプレ｜ペットサロン」（ito-swell-style-petsalon）を新設。
   セージグリーン×ピーチの、写真で相談してから整える急かさないドッグサロン配色。
   新規CSSクラスの追加なし（既存の hero-photo / qmark-item / row-alt / outline-num /
   vs-chip / plan-card / card--soft / placeholder / dropcap / portrait-sm / pullquote /
   info-list をすべて流用）。
   ========================================================= */
.ito-style--petsalon {
  --ito-style-main: #4A4136;
  --ito-style-accent: #D4847E;
  --ito-style-soft: #F3EAD8;
  --ito-style-line: rgba(74,65,54,.16);
  --ito-style-text: #675C4E;
  --ito-style-muted: #9A8E7C;
}
.ito-style--petsalon .ito-style__title,
.ito-style--petsalon .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Ink Red 写真館パック v3.16.0（新規カテゴリ・style-photo 01〜07）
   既存カテゴリのどれにも該当しない業種のため、新規カテゴリ
   「伊藤テンプレ｜写真館・フォトスタジオ」（ito-swell-style-photo）を新設。
   インク×朱の、急がず節目を撮る写真館・フォトスタジオ配色。
   新規CSSクラスの追加なし（既存の hero-photo / dropcap / menu-list / row-alt /
   outline-num / vs-chip / portrait-sm / number-cell / price-editorial / card /
   card--soft / placeholder / pullquote / info-list をすべて流用）。
   ========================================================= */
.ito-style--photo {
  --ito-style-main: #161616;
  --ito-style-accent: #C8312B;
  --ito-style-soft: #F6F3EF;
  --ito-style-line: rgba(22,22,22,.16);
  --ito-style-text: #4A453F;
  --ito-style-muted: #8A837A;
}
.ito-style--photo .ito-style__title,
.ito-style--photo .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Navy Brass 法律事務所パック v3.17.0（既存カテゴリ拡張・style-tax 15〜21）
   既存カテゴリ ito-swell-style-tax を拡張。「弁護士・法律事務所」も広い意味での士業のため、
   新規カテゴリは作らず既存の「伊藤テンプレ｜税理士・士業」に新トーン .ito-style--tax-law
   として拡張。ネイビー×真鍮の、費用の入口を先に示す法律事務所配色。
   新規CSSクラスの追加なし（既存の hero-photo / dropcap / row-alt / outline-num / vs-chip /
   plan-card / portrait-sm / card--soft / placeholder / pullquote / info-list をすべて流用）。
   ========================================================= */
.ito-style--tax-law {
  --ito-style-main: #15243B;
  --ito-style-accent: #B89B5E;
  --ito-style-soft: #F2F4F7;
  --ito-style-line: rgba(21,36,59,.16);
  --ito-style-text: #293241;
  --ito-style-muted: #6B7280;
}
.ito-style--tax-law .ito-style__title,
.ito-style--tax-law .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Rose Gold 美容クリニックパック v3.18.0（既存カテゴリ拡張・style-clinic 15〜21）
   既存カテゴリ ito-swell-style-clinic を拡張。「美容皮膚科・美容クリニック」も医療機関のため、
   新規カテゴリは作らず既存の「伊藤テンプレ｜整体・クリニック」に新トーン .ito-style--clinic-beauty
   として拡張。ローズ×ゴールドの、肌診断起点・料金を先に示す美容クリニック配色。
   新規CSSクラスの追加なし（既存の hero-photo / qmark-item / row-alt / outline-num / vs-chip /
   plan-card / portrait-sm / dropcap / pullquote / placeholder / info-list をすべて流用）。
   ========================================================= */
.ito-style--clinic-beauty {
  --ito-style-main: #312B27;
  --ito-style-accent: #C9A24B;
  --ito-style-soft: #F2EAE3;
  --ito-style-line: rgba(49,43,39,.16);
  --ito-style-text: #544B44;
  --ito-style-muted: #766960;
}
.ito-style--clinic-beauty .ito-style__title,
.ito-style--clinic-beauty .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Ink Red 製造業・精密板金パック v3.19.0（新規カテゴリ ito-swell-style-manufacturing）
   「精密板金・製造業・工場」は既存カテゴリのどれにも該当しないため、新規カテゴリとして追加。
   インク×赤の、図面ベースで加工可否を判断する製造業向け配色。技術的・工業的な見せ方のため、
   他の編集寄りトーンで多用しているShippori Minchoの見出し上書きはあえて行わず、標準の
   ゴシック（Zen Kaku Gothic系）のまま統一。
   新規CSSクラス .ito-style__split-vs を追加（ダーク×ライト2分割の比較パネル、×/○リスト）。
   それ以外は既存の hero-photo / card / card--soft / number-cell / outline-num / row-alt /
   dropcap / pullquote / placeholder / info-list をすべて流用。
   ========================================================= */
.ito-style--manufacturing {
  --ito-style-main: #16181B;
  --ito-style-accent: #D32F2F;
  --ito-style-soft: #ECEDEF;
  --ito-style-line: rgba(22,24,27,.16);
  --ito-style-text: #33373A;
  --ito-style-muted: #787E84;
}
.ito-style__split-vs { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--ito-style-line); overflow:hidden; }
.ito-style__split-vs .col { padding:34px 30px; }
.ito-style__split-vs .col.dark { background:var(--ito-style-main); color:#fff; }
.ito-style__split-vs .col.light { background:#fff; color:var(--ito-style-text); }
.ito-style__split-vs .col .lbl { display:block; font-size:12px; letter-spacing:.12em; text-transform:uppercase; opacity:.72; margin-bottom:8px; }
.ito-style__split-vs .col h3 { margin:0 0 20px; font-size:clamp(18px,2.2vw,24px); color:inherit; }
.ito-style__split-vs ul { list-style:none; margin:0; padding:0; }
.ito-style__split-vs li { position:relative; padding:12px 0 12px 34px; font-size:14.5px; border-top:1px solid rgba(125,125,125,.2); }
.ito-style__split-vs li:first-child { border-top:0; }
.ito-style__split-vs li::before { position:absolute; left:0; top:11px; width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; }
.ito-style__split-vs .col.dark li::before { content:"\00d7"; background:rgba(255,255,255,.14); color:rgba(255,255,255,.82); }
.ito-style__split-vs .col.light li::before { content:"\25cb"; background:rgba(211,47,47,.1); color:var(--ito-style-accent); }
@media(max-width:720px){ .ito-style__split-vs { grid-template-columns:1fr; } }

/* =========================================================
   Pink Green フラワーショップ・花屋パック v3.20.0（新規カテゴリ ito-swell-style-florist）
   「花屋・フラワーショップ（オーダーブーケ）」は既存カテゴリのどれにも該当しない
   （美容室・サロンとは客層も業態も異なるギフト小売）ため、新規カテゴリとして追加。
   ピンク×グリーンの、予算と相手で仕立てるオーダーブーケ向け配色。エディトリアルで
   柔らかい業種のため、他の編集寄りトーンと同様にShippori Minchoの見出し上書きを適用。
   新規CSSクラスの追加なし（既存の hero-photo / card / card--soft / outline-num / vs-chip /
   menu-list / plan-card / badge-circle / dropcap / pullquote / placeholder / info-list を
   すべて流用）。
   ========================================================= */
.ito-style--florist {
  --ito-style-main: #2F2B2A;
  --ito-style-accent: #C2858E;
  --ito-style-soft: #F8F4F2;
  --ito-style-line: rgba(47,43,42,.14);
  --ito-style-text: #514B49;
  --ito-style-muted: #817876;
}
.ito-style--florist .ito-style__title,
.ito-style--florist .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Amber Gold ワインバーパック v3.21.0（既存カテゴリ拡張・style-cafe 08〜14）
   既存カテゴリ ito-swell-style-cafe を拡張。「ワインバー・小さな酒場」も飲食店の一業態のため、
   新規カテゴリは作らず既存の「伊藤テンプレ｜カフェ・飲食」に新トーン .ito-style--cafe-winebar
   として拡張。琥珀×ゴールドの、好みと予算を聞いて選ぶ夜のワインバー配色。
   新規CSSクラスの追加なし（既存の hero-photo / card / card--soft / badge-circle / row-alt /
   plan-card / portrait-sm / dropcap / pullquote / placeholder / info-list をすべて流用）。
   ========================================================= */
.ito-style--cafe-winebar {
  --ito-style-main: #1E1813;
  --ito-style-accent: #B07A2E;
  --ito-style-soft: #EEE4D3;
  --ito-style-line: rgba(20,17,15,.16);
  --ito-style-text: #4A4138;
  --ito-style-muted: #867A6C;
}
.ito-style--cafe-winebar .ito-style__title,
.ito-style--cafe-winebar .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Grege Pink アパレル・ファッションECパック v3.22.0（新規カテゴリ ito-swell-style-fashion）
   「アパレル・ファッションEC」は既存カテゴリのどれにも該当しない（店舗型のサロン等とは異なる
   EC小売業）ため、新規カテゴリとして追加。グレージュ×ピンクの、40代世代の体型・素材相談に
   寄り添うアパレルEC配色。エディトリアルな見せ方のため見出しはShippori Mincho指定。
   新規CSSクラスの追加なし（既存の hero-photo / card / card--soft / row-alt / outline-num /
   vs-chip / menu-list / plan-card / dropcap / pullquote / placeholder / info-list を
   すべて流用）。
   ========================================================= */
.ito-style--fashion {
  --ito-style-main: #1C1A18;
  --ito-style-accent: #B5898A;
  --ito-style-soft: #F1ECE5;
  --ito-style-line: rgba(28,26,24,.16);
  --ito-style-text: #4E463F;
  --ito-style-muted: #8C8278;
}
.ito-style--fashion .ito-style__title,
.ito-style--fashion .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Tsumugian 手打蕎麦パック v3.23.0（既存カテゴリ ito-swell-style-cafe を拡張）
   「手打蕎麦店」は飲食店の一業態のため、新規カテゴリは作らず既存の「カフェ・飲食」
   （ito-swell-style-cafe）に新トーン .ito-style--cafe-soba を追加する形で対応。
   藍×生成り×行灯あかねの、鎌倉の十割そば店（石臼挽き・売り切れ仕舞い）配色。
   見出しはShippori Mincho指定。新規CSSクラスの追加なし（既存の hero-photo / card /
   card--soft / row-alt / badge-circle / number-cell / menu-list / info-list /
   portrait-sm / dropcap / pullquote / placeholder--wide をすべて流用）。
   ========================================================= */
.ito-style--cafe-soba {
  --ito-style-main: #1D3A5F;
  --ito-style-accent: #A3651C;
  --ito-style-soft: #F5EFE2;
  --ito-style-line: rgba(29,58,95,.16);
  --ito-style-text: #4D4334;
  --ito-style-muted: #85795F;
}
.ito-style--cafe-soba .ito-style__title,
.ito-style--cafe-soba .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Yuyado Yuki 旅館・宿泊施設パック v3.24.0（新規カテゴリ ito-swell-style-ryokan）
   「温泉宿・旅館」は既存カテゴリのどれにも該当しない（飲食店・サロン等の店舗業態ではなく
   宿泊業）ため、新規カテゴリとして追加。木色×生成り×夕茜（あかね）の、伊豆の山あいの
   全六室・テレビのない温泉宿配色。見出しはShippori Mincho指定。
   新規CSSクラスの追加なし（既存の hero-photo / card / card--soft / row-alt / badge-circle /
   number-cell / dropcap / pullquote / portrait-sm / placeholder--wide / info-list を
   すべて流用）。
   ========================================================= */
.ito-style--ryokan {
  --ito-style-main: #2C2418;
  --ito-style-accent: #B85C2E;
  --ito-style-soft: #F3ECDC;
  --ito-style-line: rgba(44,36,24,.16);
  --ito-style-text: #4D4438;
  --ito-style-muted: #8A7E6A;
}
.ito-style--ryokan .ito-style__title,
.ito-style--ryokan .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   サウナ無音（むおん）サウナ・温浴施設パック v3.25.0（新規カテゴリ ito-swell-style-sauna）
   「プライベートサウナ」は既存カテゴリのどれにも該当しない（整体・クリニックのような施術業でも
   ジム・フィットネスのような運動指導業でもなく、完全個室の温浴・リラクゼーション施設）ため、
   新規カテゴリとして追加。ミストグレー×ティール×墨の、代々木上原の1室1組プライベートサウナ配色。
   見出しはNoto Serif JP指定。
   新規CSSクラスの追加なし（既存の hero-photo / card / card--soft / quote-editorial / avatar-sm /
   number-cell / plan-card / dropcap / portrait-sm / placeholder--wide / info-list / num を
   すべて流用）。
   ========================================================= */
.ito-style--sauna {
  --ito-style-main: #23292A;
  --ito-style-accent: #4E7A72;
  --ito-style-soft: #EEF0EC;
  --ito-style-line: rgba(35,41,42,.14);
  --ito-style-text: #39423F;
  --ito-style-muted: #6C7672;
}
.ito-style--sauna .ito-style__title,
.ito-style--sauna .ito-style__section-title { font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif; }

/* =========================================================
   ゆい行政書士事務所パック v3.26.0（既存カテゴリ拡張・style-tax 22〜28）
   既存カテゴリ ito-swell-style-tax を拡張。「行政書士」も税理士・弁護士と並ぶ士業のため、
   新規カテゴリは作らず既存の「伊藤テンプレ｜税理士・士業」に新トーン .ito-style--tax-gyosei
   として追加（tax-architect／tax-law と同じ拡張方針）。生成り×朱×墨の、相続・遺言／許認可／
   在留資格を扱う行政書士事務所配色。見出しはShippori Mincho指定。
   新規CSSクラスの追加なし（既存の hero-photo / row-alt / outline-num / vs-chip / menu-list /
   seal / dropcap / portrait-sm / placeholder--wide / quote-editorial / card / card--soft /
   pullquote / info-list をすべて流用）。
   ========================================================= */
.ito-style--tax-gyosei {
  --ito-style-main: #262119;
  --ito-style-accent: #B3322B;
  --ito-style-soft: #F3EEE2;
  --ito-style-line: rgba(38,33,25,.16);
  --ito-style-text: #33291F;
  --ito-style-muted: #7A6F60;
}
.ito-style--tax-gyosei .ito-style__title,
.ito-style--tax-gyosei .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   墨進書道教室パック v3.27.0（既存カテゴリ拡張・style-juku 08〜14）
   既存カテゴリ ito-swell-style-juku を拡張。「書道教室」も学習塾・教育と同じ
   「こども〜大人までのお稽古・レッスン業」のため、新規カテゴリは作らず既存の
   「伊藤テンプレ｜学習塾・教育」に新トーン .ito-style--juku-shodo として追加
   （学習塾カテゴリ初の拡張トーン）。生成り×墨×朱（落款の一点のみ）の書道教室配色。
   見出しはShippori Mincho指定。
   新規CSSクラスの追加なし（既存の hero-photo / qmark-item / row-alt / outline-num /
   vs-chip / plan-card / seal / dropcap / portrait-sm / quote-editorial / card /
   card--soft / number-cell / info-list / pullquote をすべて流用）。
   ========================================================= */
.ito-style--juku-shodo {
  --ito-style-main: #1f1c16;
  --ito-style-accent: #a8302a;
  --ito-style-soft: #f4f0e6;
  --ito-style-line: rgba(31,28,22,.16);
  --ito-style-text: #3b362d;
  --ito-style-muted: #807a6e;
}
.ito-style--juku-shodo .ito-style__title,
.ito-style--juku-shodo .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* ==========================================================================
   保育園・幼稚園（にじいろ保育園サンプルより新規カテゴリとして追加）
   既存カテゴリに0〜5歳の全日制認可保育施設という業態に合致するものがなく
   （学習塾・教育=学習塾/放課後教室は対象年齢・業態が異なるため不採用）、
   新規カテゴリ ito-swell-style-nursery として新設。
   新規CSSクラスは追加せず、hero-photo / qmark-item / row-alt / number-cell /
   dropcap / seal / portrait-sm / quote-editorial / menu-list / info-list /
   placeholder--wide / button 系を流用。
   ========================================================================== */
.ito-style--nursery {
  --ito-style-main: #3b3a36;
  --ito-style-accent: #e2766b;
  --ito-style-soft: #fbf6ec;
  --ito-style-line: rgba(59,58,54,.16);
  --ito-style-text: #4a463d;
  --ito-style-muted: #8b8578;
}
.ito-style--nursery .ito-style__title,
.ito-style--nursery .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* ==========================================================================
   路地裏バーバーパック（BARBER 刈火サンプルより既存カテゴリ拡張・style-salon 25〜31）
   既存カテゴリ ito-swell-style-salon（伊藤テンプレ｜美容室・サロン）は理容室も
   包含する一般的なラベルのため新規カテゴリは作らず、salon-editorial /
   salon-esthetic に続く3つ目の拡張トーンとして追加。夜×琥珀のランプ配色。
   新規CSSクラスは追加せず、hero-photo / trust-row / qmark-item / row-alt /
   outline-num / number-cell / dropcap / seal / portrait-sm / card /
   info-list / placeholder--wide / button 系を流用。
   ========================================================================== */
.ito-style--salon-barber {
  --ito-style-main: #1c1712;
  --ito-style-accent: #a9752f;
  --ito-style-soft: #f3ead8;
  --ito-style-line: rgba(28,23,18,.16);
  --ito-style-text: #3c3126;
  --ito-style-muted: #8a7c68;
}
.ito-style--salon-barber .ito-style__eyebrow { font-family: "Courier New", ui-monospace, monospace; letter-spacing: .12em; }
.ito-style--salon-barber .ito-style__title,
.ito-style--salon-barber .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* ==========================================================================
   解体工業パック（大崩解体工業サンプルより既存カテゴリ拡張・style-construction 25〜31）
   既存カテゴリ ito-swell-style-construction（伊藤テンプレ｜工務店・住宅）は
   木造家屋・空き家の解体も含む住宅まわりの工事業を広く指すラベルのため、
   新規カテゴリは作らず paint に続く2つ目の拡張トーンとして追加。
   グレージュ×テラコッタの、確定金額・近隣挨拶代行を先に示す解体工業配色。
   新規CSSクラスは追加せず、hero-photo / qmark-item / row-alt / badge-circle /
   number-cell / card / price-editorial / menu-list / bar-row / bar-track /
   bar-fill / quote-box / dropcap / seal / portrait-sm / info-list /
   placeholder--wide / button 系を流用。
   ========================================================================== */
.ito-style--construction-demolition {
  --ito-style-main: #211c16;
  --ito-style-accent: #c4502c;
  --ito-style-soft: #efece4;
  --ito-style-line: rgba(33,28,22,.16);
  --ito-style-text: #4a443a;
  --ito-style-muted: #7a7264;
}
.ito-style--construction-demolition .ito-style__title,
.ito-style--construction-demolition .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   Night Aqua 眼科クリニックパック v3.31.0（既存カテゴリ拡張・style-clinic 22〜28）
   既存カテゴリ ito-swell-style-clinic（伊藤テンプレ｜整体・クリニック）を拡張。眼科も
   整体・クリニックの一業態のため新規カテゴリは作らず、dental・beautyに続く4つ目の
   拡張トーンとして追加。夜×アクアの、検査30分・執刀医一貫を先に示す眼科クリニック配色。
   新規CSSクラスは追加せず、hero-photo / trust-row / qmark-item / pullquote / row-alt /
   outline-num / number-cell / portrait-sm / quote-editorial / dropcap / info-list /
   placeholder--wide / button 系を流用。
   ========================================================= */
.ito-style--clinic-eye {
  --ito-style-main: #101820;
  --ito-style-accent: #2e8f8a;
  --ito-style-soft: #e4f3f2;
  --ito-style-line: rgba(16,24,32,.16);
  --ito-style-text: #3c4a53;
  --ito-style-muted: #71808a;
}
.ito-style--clinic-eye .ito-style__title,
.ito-style--clinic-eye .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   墨×温白×金 葬儀・セレモニーパック v3.32.0（新規カテゴリ・style-funeral）
   既存カテゴリに「葬儀・家族葬」を汎用的に指す業種ラベルがなかったため、
   ito-swell-style-funeral（伊藤テンプレ｜葬儀・セレモニー）を新設。一日一組の
   家族葬専門式場を想定した、墨（濃い墨色）×温白（生成り）×金の落ち着いた配色。
   新規CSSクラスは追加せず、hero-photo / row-alt / outline-num / number-cell /
   portrait-sm / dropcap / pullquote / card / card--soft / plan-card / button 系を流用。
   ========================================================= */
.ito-style--funeral {
  --ito-style-main: #171310;
  --ito-style-accent: #caa45f;
  --ito-style-soft: #f4ecdb;
  --ito-style-line: rgba(23,19,16,.16);
  --ito-style-text: #2b241a;
  --ito-style-muted: #7d7260;
}
.ito-style--funeral .ito-style__title,
.ito-style--funeral .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   測量紙×松葉×金茶 造園・エクステリアパック v3.33.0（新規カテゴリ・style-garden）
   既存カテゴリに「造園・庭」を汎用的に指す業種ラベルがなかったため（工務店・住宅は
   建物本体の工事業、花屋は切花・アレンジの小売業で、いずれも作庭・剪定・庭木の
   年間管理という業態とは異なる）、ito-swell-style-garden（伊藤テンプレ｜造園・
   エクステリア）を新設。測量紙のような生成り×松葉の深緑×金茶の、土地を読んでから
   植える造園会社らしい落ち着いた配色。
   新規CSSクラスは追加せず、hero-photo / qmark-item / row-alt / outline-num /
   portrait-sm / dropcap / seal / pullquote / card / card--soft / plan-card /
   button 系を流用。
   ========================================================= */
.ito-style--garden {
  --ito-style-main: #1F4A33;
  --ito-style-accent: #9C6F26;
  --ito-style-soft: #F4F2E7;
  --ito-style-line: rgba(31,74,51,.16);
  --ito-style-text: #46514A;
  --ito-style-muted: #84897A;
}
.ito-style--garden .ito-style__title,
.ito-style--garden .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }


/* =========================================================
   黒×紙×琥珀 映像制作・ドキュメンタリーパック v3.34.0（新規カテゴリ・style-film）
   既存カテゴリに「映像制作・ドキュメンタリー」を汎用的に指す業種ラベルがなかったため
   （写真館・フォトスタジオは店舗型のスチール写真撮影・小売業、IT・人材・SaaSは
   ソフトウェア/採用支援業で、いずれも企業の現場を密着取材してドキュメンタリー・
   ブランドフィルムを制作するBtoB映像制作という業態とは異なる）、
   ito-swell-style-film（伊藤テンプレ｜映像制作・ドキュメンタリー）を新設。
   墨のような黒×温白の紙×琥珀色のアクセントで見せる、編集室と現場を行き来する
   映像制作会社らしい配色。
   新規CSSクラスは追加せず、hero-photo / row-alt / outline-num / number-cell /
   portrait-sm / dropcap / seal / pullquote / card / card--soft / plan-card /
   button 系を流用。
   ========================================================= */
.ito-style--film {
  --ito-style-main: #10131A;
  --ito-style-accent: #C9913F;
  --ito-style-soft: #F0EBE0;
  --ito-style-line: rgba(16,19,26,.16);
  --ito-style-text: #2B2A24;
  --ito-style-muted: #6E7A72;
}
.ito-style--film .ito-style__title,
.ito-style--film .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

.ito-style--glass {
  --ito-style-main: #14333D;
  --ito-style-accent: #3E9D89;
  --ito-style-soft: #E4EDEA;
  --ito-style-line: rgba(20,51,61,.16);
  --ito-style-text: #13282E;
  --ito-style-muted: #7E938F;
}
.ito-style--glass .ito-style__title,
.ito-style--glass .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

.ito-style--tech-recruit {
  --ito-style-main: #12213D;
  --ito-style-accent: #E86F22;
  --ito-style-soft: #FBF3EC;
  --ito-style-line: rgba(18,33,61,.16);
  --ito-style-text: #17233A;
  --ito-style-muted: #6E7688;
  font-family: "Inter", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", sans-serif;
}

.ito-style--detailing {
  --ito-style-main: #10141B;
  --ito-style-accent: #2E63D9;
  --ito-style-soft: #F3F5F8;
  --ito-style-line: rgba(16,20,27,.16);
  --ito-style-text: #3A4150;
  --ito-style-muted: #737B8A;
}
.ito-style--detailing .ito-style__title,
.ito-style--detailing .ito-style__section-title { letter-spacing: .015em; }

.ito-style--inspection {
  --ito-style-main: #10171E;
  --ito-style-accent: #FF4D21;
  --ito-style-soft: #EEEAE0;
  --ito-style-line: rgba(16,23,30,.2);
  --ito-style-text: #10171E;
  --ito-style-muted: #6E6A62;
}
.ito-style--inspection .ito-style__title,
.ito-style--inspection .ito-style__section-title { font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif; }

.ito-style--tourism {
  --ito-style-main: #1F5FA6;
  --ito-style-accent: #E5392B;
  --ito-style-soft: #FFFDF7;
  --ito-style-line: rgba(22,38,59,.16);
  --ito-style-text: #16263B;
  --ito-style-muted: #7C8595;
}
.ito-style--tourism .ito-style__title,
.ito-style--tourism .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

.ito-style--laundry {
  --ito-style-main: #262D4D;
  --ito-style-accent: #3E9B68;
  --ito-style-soft: #F6F8F4;
  --ito-style-line: rgba(30,34,54,.12);
  --ito-style-text: #1E2236;
  --ito-style-muted: #787D93;
}
.ito-style--laundry .ito-style__title,
.ito-style--laundry .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

/* =========================================================
   おとのは音楽教室パック v3.41.0（既存カテゴリ拡張・style-juku 15〜21）
   既存カテゴリ ito-swell-style-juku を拡張。「音楽教室（ピアノ・ヴァイオリン）」も
   学習塾・教育と同じ「こども〜大人までのお稽古・レッスン業」のため、新規カテゴリは
   作らず既存の「伊藤テンプレ｜学習塾・教育」に新トーン .ito-style--juku-music として
   追加。墨紺×真鍮の、担任固定・落ち着いたレッスン室配色。見出しはShippori Mincho指定。
   新規CSSクラスの追加なし（既存の hero-photo / row-alt / outline-num / number-cell /
   portrait-sm / dropcap / pullquote / card / card--soft / plan-card / button を
   すべて流用。「代表印」の落款モチーフ（seal）は音楽教室の実態に合わないため未使用）。
   ========================================================= */
.ito-style--juku-music {
  --ito-style-main: #21262D;
  --ito-style-accent: #A8842F;
  --ito-style-soft: #F5F1E8;
  --ito-style-line: rgba(33,38,45,.12);
  --ito-style-text: #262420;
  --ito-style-muted: #8C8576;
}
.ito-style--juku-music .ito-style__title,
.ito-style--juku-music .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

.ito-style--tech-ai {
  --ito-style-main: #0B1626;
  --ito-style-accent: #E3A94A;
  --ito-style-soft: #F4F1E9;
  --ito-style-line: rgba(11,22,38,.14);
  --ito-style-text: #17233A;
  --ito-style-muted: #6E7688;
}

/* =========================================================
   Sage Green 経営コンサルティングパック v3.43.0（既存カテゴリ拡張・style-tax 29〜38）
   既存カテゴリ ito-swell-style-tax を拡張。中小企業診断士による経営コンサルティングも
   広い意味での士業のため、新規カテゴリは作らず既存の「伊藤テンプレ｜税理士・士業」に
   新トーン .ito-style--tax-keiei として拡張。クライアント指定のコーポレートカラー
  （メイン#549E38／サブ#396B26）を採用したグリーン基調の、硬すぎず親しみやすい経営
   相談事務所配色。既存の outline-num / pain-list / row-alt / number-cell /
   quote-editorial / pullquote / portrait-sm / dropcap / menu-list / card /
   hero-dark / button 系をすべて流用。新規追加は3点のみ：
   1) keiei-illust（FVの空白を埋める、成長を示す線画イラスト）
   2) faq-list / faq-item（tax系にFAQパターンが無かったため新規。ito-pattern側の
      FAQと同じ<details>構造だが、ito-style側の変数を参照するよう独自定義）
   3) cta-band（トーンの淡色地を全幅に敷く、CTA用の軽量ラッパー）
   ========================================================= */
.ito-style--tax-keiei {
  --ito-style-main: #396B26;
  --ito-style-accent: #549E38;
  --ito-style-soft: #EFF5EC;
  --ito-style-line: rgba(57,107,38,.16);
  --ito-style-text: #28331F;
  --ito-style-muted: #5C6656;
}
.ito-style--tax-keiei .ito-style__title,
.ito-style--tax-keiei .ito-style__section-title { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; }

.ito-style__keiei-illust { display: block; width: 150px; height: auto; margin: 40px 0 0 auto; opacity: .95; }
.ito-style__keiei-illust rect,
.ito-style__keiei-illust polyline { stroke: var(--ito-style-accent); }
.ito-style__keiei-illust path { fill: var(--ito-style-accent); }
.ito-style__keiei-illust .baseline { stroke: var(--ito-style-line); }

.ito-style__faq-list { display: grid; gap: 0; margin-top: 24px; border-top: 1px solid var(--ito-style-line); }
.ito-style__faq-item { padding: 18px 4px; border-bottom: 1px solid var(--ito-style-line); }
.ito-style__faq-item summary { font-weight: 700; font-size: 14.5px; color: var(--ito-style-main); cursor: pointer; }
.ito-style__faq-item p { margin: 10px 0 0; color: var(--ito-style-muted); font-size: 13px; line-height: 1.8; }

.ito-style__cta-band { padding: clamp(48px, 7vw, 88px) clamp(20px, 4vw, 56px); background: var(--ito-style-soft); border-radius: 28px; text-align: center; }
.ito-style__cta-band .ito-style__eyebrow,
.ito-style__cta-band .ito-style__section-title,
.ito-style__cta-band .ito-style__lead { justify-content: center; }

@media (max-width: 781px) {
  .ito-style__keiei-illust { width: 100px; margin-top: 24px; }
}
