@charset "UTF-8";
/* Office AVILO — additional.css （WordPress 用・.avilo スコープに統合）
   ※ css/common.css + 各ページ CSS を統合し、全セレクタを .avilo 配下へスコープ。
   ※ ヘッダー/ナビ/フッターの CSS は SWELL 管理のため除外。 */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=Shippori+Mincho:wght@500;600;700;800&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

/* ===== WordPress コアブロックの既定余白/幅をリセット（低詳細度・デザイン側優先） ===== */
.avilo :where(.wp-block-group,.wp-block-columns,.wp-block-column,.wp-block-image,.wp-block-buttons,.wp-block-button,.wp-block-heading,.wp-block-list,.wp-block-table,.wp-block-quote,figure,p,ul,ol,h1,h2,h3,h4){ margin:0; }
.avilo .wp-block-columns{ display:flex; flex-wrap:nowrap; gap:clamp(1rem,2.5vw,2rem); align-items:stretch; }
.avilo .wp-block-column{ min-width:0; }
.avilo .wp-block-image,.avilo .wp-block-image img{ display:block; }
.avilo .wp-block-group.wrap,.avilo .wp-block-group.wrap--narrow{ position:relative; }

/* ===== 統合デザイン CSS（.avilo スコープ） ===== */
:root {
  
  --navy:        #294b78;
  --navy-deep:   #1c3557;
  --navy-ink:    #142743;
  --sand:        #ddc4a2;
  --sand-soft:   #ecdcc6;
  --sand-line:   rgba(221, 196, 162, 0.45);

  
  --cream:       #f7f4ee;
  --cream-deep:  #efe9df;
  --paper:       #ffffff;
  --ink:         #26282c;
  --ink-soft:    #4a4e55;
  --muted:       #767a82;
  --line:        #e4ddd0;

  
  --on-navy:     #f2ede3;
  --on-navy-mut: #c3ccda;

  
  --serif: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", serif;
  --serif-latin: "Cormorant Garamond", "Shippori Mincho", Georgia, serif;
  --sans: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", system-ui, sans-serif;

  
  --wrap: 1180px;
  --wrap-narrow: 820px;
  --gap: clamp(1.25rem, 4vw, 2.75rem);
  --pad-x: clamp(1.25rem, 5vw, 3rem);
  --sec-y: clamp(4.5rem, 9vw, 8rem);
  --radius: 4px;
  --radius-lg: 10px;
  --shadow: 0 18px 50px -28px rgba(20, 39, 67, 0.4);
  --shadow-soft: 0 12px 34px -24px rgba(20, 39, 67, 0.35);
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --header-h: 78px;
}
.avilo, .avilo *, .avilo::before, .avilo *::before, .avilo::after, .avilo *::after { box-sizing: border-box; }
.avilo, .avilo * { margin: 0; }
.avilo { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
.avilo { scroll-behavior: auto; }
}
.avilo {
  font-family: var(--sans);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.85;
  font-size: 1rem;
  letter-spacing: 0.02em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
.avilo img, .avilo svg { display: block; max-width: 100%; }
.avilo a { color: inherit; text-decoration: none; }
.avilo button { font: inherit; cursor: pointer; }
.avilo ul { list-style: none; padding: 0; }
.avilo h1, .avilo h2, .avilo h3, .avilo h4 { line-height: 1.4; font-weight: 700; }
.avilo :focus-visible { outline: 2px solid var(--sand); outline-offset: 3px; }
.avilo .wrap { width: min(100% - (var(--pad-x) * 2), var(--wrap)); margin-inline: auto; }
.avilo .wrap--narrow { width: min(100% - (var(--pad-x) * 2), var(--wrap-narrow)); margin-inline: auto; }
.avilo .section { padding-block: var(--sec-y); position: relative; }
.avilo .section--cream { background: var(--cream); }
.avilo .section--paper { background: var(--paper); }
.avilo .section--navy { background: var(--navy); color: var(--on-navy); }
.avilo .section--navy-deep {
  background: linear-gradient(160deg, var(--navy-deep), var(--navy-ink));
  color: var(--on-navy);
}
.avilo .kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
  font-family: var(--serif-latin);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--navy);
}
.avilo .kicker::before {
  content: "";
  width: 26px;
  height: 1px;
  background: var(--sand);
}
.avilo .section--navy .kicker, .avilo .section--navy-deep .kicker { color: var(--sand); }
.avilo .section--navy .kicker::before, .avilo .section--navy-deep .kicker::before { background: var(--sand); }
.avilo .sec-title {
  font-family: var(--serif);
  font-size: clamp(1.75rem, 3.6vw, 2.75rem);
  line-height: 1.45;
  letter-spacing: 0.04em;
  margin-top: 0.85rem;
  color: var(--navy-ink);
  text-wrap: balance;
}
.avilo .section--navy .sec-title, .avilo .section--navy-deep .sec-title { color: #fff; }
.avilo .sec-title .accent { color: var(--sand); }
.avilo .section--cream .sec-title .accent, .avilo .section--paper .sec-title .accent { color: var(--navy); font-style: italic; font-family: var(--serif-latin); }
.avilo .lead {
  font-size: 1.02rem;
  line-height: 2.05;
  color: var(--ink-soft);
  max-width: 46em;
}
.avilo .section--navy .lead, .avilo .section--navy-deep .lead { color: var(--on-navy-mut); }
.avilo .btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
  padding: 0.95em 1.9em;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 0.98rem;
  letter-spacing: 0.08em;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: transform 0.35s var(--ease), background 0.35s var(--ease), color 0.35s var(--ease), box-shadow 0.35s var(--ease);
  will-change: transform;
}
.avilo .btn .arw { transition: transform 0.35s var(--ease); }
.avilo .btn:hover .arw { transform: translateX(4px); }
.avilo .btn:hover { transform: translateY(-2px); }
.avilo .btn--primary { background: var(--navy); color: #fff; box-shadow: var(--shadow-soft); }
.avilo .btn--primary:hover { background: var(--navy-deep); }
.avilo .btn--sand { background: var(--sand); color: var(--navy-ink); box-shadow: var(--shadow-soft); }
.avilo .btn--sand:hover { background: #e7d3b6; }
.avilo .btn--ghost { border-color: currentColor; color: var(--navy); }
.avilo .section--navy .btn--ghost, .avilo .section--navy-deep .btn--ghost { color: var(--on-navy); }
.avilo .btn--ghost:hover { background: rgba(41, 75, 120, 0.06); }
.avilo .section--navy .btn--ghost:hover, .avilo .section--navy-deep .btn--ghost:hover { background: rgba(255,255,255,0.08); }
.avilo .btn--lg { padding: 1.1em 2.3em; font-size: 1.02rem; }
.avilo .cta-note { font-size: 0.86rem; color: var(--muted); letter-spacing: 0.04em; }
.avilo .section--navy .cta-note, .avilo .section--navy-deep .cta-note { color: var(--on-navy-mut); }
.avilo .feather {
  display: inline-block;
  color: var(--sand);
}
.avilo .page-hero {
  background: linear-gradient(155deg, var(--navy), var(--navy-deep));
  color: var(--on-navy);
  padding-top: calc(var(--header-h) + clamp(3rem, 6vw, 5rem));
  padding-bottom: clamp(3rem, 6vw, 5rem);
  position: relative;
  overflow: hidden;
}
.avilo .page-hero::after {
  content: "";
  position: absolute;
  right: -6%; top: 50%;
  width: 420px; height: 420px;
  transform: translateY(-50%);
  background: radial-gradient(circle, rgba(221,196,162,0.16), transparent 62%);
  pointer-events: none;
}
.avilo .page-hero__inner { position: relative; z-index: 1; }
.avilo .page-hero__ja {
  font-family: var(--serif);
  font-size: clamp(2rem, 5vw, 3.1rem);
  color: #fff;
  letter-spacing: 0.05em;
  margin-top: 0.6rem;
}
.avilo .page-hero__en {
  font-family: var(--serif-latin);
  font-style: italic;
  letter-spacing: 0.12em;
  color: var(--on-navy-mut);
  margin-top: 0.8rem;
  font-size: 1.05rem;
}
.avilo .crumbs { font-size: 0.8rem; letter-spacing: 0.1em; color: var(--on-navy-mut); }
.avilo .crumbs a:hover { color: var(--sand); }
.avilo .reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.avilo .reveal.is-in { opacity: 1; transform: none; }
.avilo .reveal[data-delay="1"] { transition-delay: 0.08s; }
.avilo .reveal[data-delay="2"] { transition-delay: 0.16s; }
.avilo .reveal[data-delay="3"] { transition-delay: 0.24s; }
@media (prefers-reduced-motion: reduce) {
.avilo .reveal { opacity: 1; transform: none; transition: none; }
.avilo .btn { transition: none; }
}
.avilo .cta-band { text-align: center; }
.avilo .cta-band .sec-title { margin-inline: auto; }
.avilo .cta-band .lead { margin-inline: auto; text-align: center; }
.avilo .cta-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 2rem; align-items: center; }
.avilo .section--media { position: relative; }
.avilo .section--media .wrap, .avilo .section--media .wrap--narrow { position: relative; z-index: 2; }
.avilo .bg-media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.avilo .bg-media img {
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(0.92);
}
.avilo .bg-media::after {
  content: ""; position: absolute; inset: 0;
  background: var(--media-overlay, linear-gradient(160deg, rgba(28,53,87,0.86), rgba(20,39,67,0.92)));
}
.avilo .bg-media--soft img { filter: saturate(0.92) blur(1px); transform: scale(1.03); }
.avilo .imgband {
  position: relative;
  min-height: clamp(300px, 42vw, 460px);
  display: flex;
  align-items: center;
  overflow: hidden;
  color: var(--on-navy);
}
.avilo .imgband .bg-media::after {
  background: linear-gradient(90deg, rgba(20,39,67,0.9) 0%, rgba(20,39,67,0.66) 45%, rgba(28,53,87,0.42) 100%);
}
.avilo .imgband__inner { position: relative; z-index: 2; padding-block: clamp(3rem, 6vw, 5rem); }
.avilo .imgband__text {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 3vw, 2.3rem);
  line-height: 1.7; letter-spacing: 0.04em; color: #fff;
  max-width: 20em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.35);
}
.avilo .imgband__text .accent { color: var(--sand); }
.avilo .imgband__sub { margin-top: 1rem; color: var(--on-navy-mut); font-size: 0.95rem; line-height: 1.9; max-width: 34em; }
.avilo figure.figure { margin: 2.4rem 0; }
.avilo figure.figure img {
  width: 100%; border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}
.avilo figure.figure figcaption {
  margin-top: 0.7rem; font-size: 0.82rem; color: var(--muted);
  letter-spacing: 0.04em; padding-left: 1rem; border-left: 2px solid var(--sand);
}
.avilo .page-hero.page-hero--media { position: relative; }
.avilo .page-hero.page-hero--media .bg-media::after {
  background: linear-gradient(150deg, rgba(41,75,120,0.88), rgba(20,39,67,0.92));
}
.avilo .page-hero.page-hero--media .page-hero__inner { position: relative; z-index: 2; }
.avilo .hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  background: radial-gradient(120% 120% at 80% 10%, #315688 0%, var(--navy) 42%, var(--navy-deep) 100%);
  color: var(--on-navy);
  overflow: hidden;
  padding-top: var(--header-h);
}
.avilo .hero::before {
  content: "";
  position: absolute; inset: 0;
  z-index: 1;
  background:
    radial-gradient(60% 45% at 15% 90%, rgba(221,196,162,0.10), transparent 70%);
  pointer-events: none;
}
.avilo .hero__route {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  z-index: 1;
}
.avilo .hero__slides { position: absolute; inset: 0; z-index: 0; }
.avilo .hero__slide {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 1.3s var(--ease);
}
.avilo .hero__slide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 7s ease-out; filter: saturate(1.08) brightness(1.1); }
.avilo .hero__slide.is-active { opacity: 1; }
.avilo .hero__slide.is-active img { transform: scale(1.13); }
.avilo .hero__overlay {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(16,32,56,0.34) 0%, rgba(16,32,56,0) 26%, rgba(16,32,56,0) 58%, rgba(16,32,56,0.60) 100%), linear-gradient(100deg, rgba(16,32,56,0.62) 0%, rgba(16,32,56,0.34) 55%, rgba(16,32,56,0.22) 100%);
}
.avilo .hero__dots {
  position: absolute; z-index: 3;
  bottom: clamp(1.4rem, 3vw, 2.2rem);
  right: clamp(1.5rem, 5vw, 3rem);
  display: flex; gap: 0.6rem; align-items: center;
}
.avilo .hero__dot {
  width: 9px; height: 9px; padding: 0;
  border: 0; border-radius: 50%;
  background: rgba(255,255,255,0.4);
  cursor: pointer;
  transition: width 0.4s var(--ease), background 0.4s var(--ease);
}
.avilo .hero__dot:hover { background: rgba(255,255,255,0.7); }
.avilo .hero__dot.is-active { width: 28px; border-radius: 5px; background: var(--sand); }
@media (prefers-reduced-motion: reduce) {
.avilo .hero__slide { transition: none; }
.avilo .hero__slide img { transition: none; transform: none; }
}
.avilo .hero__inner { position: relative; z-index: 2; padding-block: clamp(3rem, 8vh, 6rem); }
.avilo .hero__eyebrow {
  font-family: var(--serif-latin);
  color: var(--sand);
  letter-spacing: 0.3em;
  font-size: 0.9rem;
  font-weight: 600;
  padding-left: 2px;
  position: relative;
  display: inline-block;
}
.avilo .hero__eyebrow::before {
  content: ""; display: inline-block;
  width: 34px; height: 1px; background: var(--sand);
  vertical-align: middle; margin-right: 1em;
}
.avilo .hero__title {
  font-family: var(--serif);
  font-weight: 800;
  font-size: clamp(2.2rem, 6.2vw, 4.6rem);
  line-height: 1.42;
  letter-spacing: 0.03em;
  color: #fff;
  margin-top: 1.4rem;
  text-shadow: 0 12px 40px rgba(0,0,0,0.25);
}
.avilo .hero__title-accent {
  color: var(--sand);
  position: relative;
  white-space: nowrap;
}
.avilo .hero__title-accent::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0.06em;
  height: 0.14em;
  background: rgba(221,196,162,0.28);
  z-index: -1;
}
.avilo .hero__sub {
  margin-top: 1.8rem;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 2.1vw, 1.35rem);
  color: var(--sand-soft);
  letter-spacing: 0.06em;
}
.avilo .hero__msg {
  margin-top: 1.1rem;
  color: var(--on-navy-mut);
  font-size: clamp(0.95rem, 1.4vw, 1.05rem);
  line-height: 2.1;
  max-width: 40em;
}
.avilo .hero__cta {
  margin-top: 2.6rem;
  display: flex; gap: 1rem; flex-wrap: wrap;
}
.avilo .hero__cta .btn--ghost { color: var(--on-navy); border-color: rgba(242,237,227,0.45); }
.avilo .hero__cta .btn--ghost:hover { background: rgba(255,255,255,0.08); border-color: var(--sand); color: #fff; }
.avilo .hero__scroll {
  position: absolute;
  left: 50%; bottom: 1.6rem;
  transform: translateX(-50%);
  z-index: 3;
  display: flex; flex-direction: column; align-items: center; gap: 0.6rem;
  font-family: var(--serif-latin);
  font-size: 0.72rem; letter-spacing: 0.3em;
  color: var(--on-navy-mut);
}
.avilo .hero__scroll-line { width: 1px; height: 46px; background: linear-gradient(var(--sand), transparent); }
@keyframes scrollpulse { 0%,100%{ transform: scaleY(0.4); opacity:.4; transform-origin: top;} 50%{ transform: scaleY(1); opacity:1; transform-origin: top;} }
.avilo .hero__scroll-line { animation: scrollpulse 2.4s var(--ease) infinite; }
@media (prefers-reduced-motion: reduce) {
.avilo .hero__scroll-line { animation: none; }
}
.avilo .issue__head {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: end;
}
.avilo .growth {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2.5vw, 2rem);
  margin-top: clamp(2.5rem, 5vw, 4rem);
}
.avilo .growth__item {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.4s var(--ease);
}
.avilo .growth__item:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--sand-line); }
.avilo .growth__media { overflow: hidden; }
.avilo .growth__media img {
  width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block;
  transition: transform 0.6s var(--ease);
}
.avilo .growth__item:hover .growth__media img { transform: scale(1.05); }
.avilo .growth__text { padding: 1.5rem 1.7rem 1.9rem; position: relative; }
.avilo .growth__text::before {
  content: ""; position: absolute; left: 0; top: 1.5rem; bottom: 1.5rem; width: 3px;
  background: var(--sand); transform: scaleY(0); transform-origin: top; transition: transform 0.5s var(--ease);
}
.avilo .growth__item:hover .growth__text::before { transform: scaleY(1); }
.avilo .growth__num {
  font-family: var(--serif-latin); font-style: italic;
  font-size: 1.3rem; color: var(--sand); font-weight: 600;
}
.avilo .growth__lead { font-family: var(--serif); font-size: 1.3rem; color: var(--navy-ink); margin-top: 0.4rem; letter-spacing: 0.03em; }
.avilo .growth__body { color: var(--ink-soft); font-size: 0.96rem; margin-top: 0.4rem; }
.avilo .issue__close {
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
  line-height: 1.95;
  color: var(--navy-ink);
  letter-spacing: 0.03em;
}
.avilo .issue__close b { color: var(--navy); font-weight: 700; }
.avilo .services__head { max-width: 56em; }
.avilo .services__head .lead { margin-top: 1rem; }
.avilo .svc-flow {
  margin-top: clamp(2rem, 4vw, 3rem);
  border-top: 1px solid var(--line);
}
.avilo .svc-flow__item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(1.3rem, 4vw, 2.8rem);
  align-items: start;
  padding: clamp(1.7rem, 3.5vw, 2.5rem) clamp(0.4rem, 1.5vw, 1rem);
  border-bottom: 1px solid var(--line);
  transition: background 0.4s var(--ease);
}
.avilo .svc-flow__item:hover { background: var(--cream); }
.avilo .svc-flow__no {
  display: inline-flex; align-items: center; justify-content: center;
  flex: none;
  width: clamp(54px, 6vw, 70px); height: clamp(54px, 6vw, 70px);
  border-radius: 50%;
  border: 1px solid var(--sand-line);
  background: var(--cream);
  font-family: var(--serif-latin); font-style: italic; font-weight: 600;
  font-size: clamp(1.5rem, 2.4vw, 2rem); color: var(--navy);
  transition: background 0.4s var(--ease), color 0.4s var(--ease), border-color 0.4s var(--ease);
}
.avilo .svc-flow__item:hover .svc-flow__no { background: var(--navy); color: #fff; border-color: var(--navy); }
.avilo .svc-flow__title {
  font-family: var(--serif); font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  color: var(--navy-ink); letter-spacing: 0.05em;
}
.avilo .svc-flow__meta {
  color: var(--navy); font-size: 0.85rem; font-weight: 500;
  margin-top: 0.5rem; letter-spacing: 0.04em;
}
.avilo .svc-flow__desc { color: var(--ink-soft); font-size: 0.97rem; margin-top: 0.8rem; max-width: 52em; }
.avilo .svc-note {
  margin-top: 2rem; text-align: center;
  color: var(--muted); font-size: 0.9rem; letter-spacing: 0.05em;
}
.avilo .svc-note .feather { color: var(--sand); margin-right: 0.4em; }
.avilo .services__more { margin-top: 2.4rem; text-align: center; }
.avilo .greeting-teaser__inner {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.avilo .portrait {
  background: linear-gradient(165deg, var(--navy), var(--navy-deep));
  color: var(--on-navy);
  border-radius: var(--radius-lg);
  padding: clamp(2.5rem, 5vw, 3.5rem) 2rem;
  text-align: center;
  box-shadow: var(--shadow);
  position: relative;
}
.avilo .portrait::after {
  content: ""; position: absolute; inset: 10px;
  border: 1px solid rgba(221,196,162,0.35);
  border-radius: 6px; pointer-events: none;
}
.avilo .portrait__mark { height: 50px; width: auto; margin: 0 auto 1.4rem; }
.avilo .portrait__role { font-size: 0.85rem; letter-spacing: 0.3em; color: var(--sand); }
.avilo .portrait__name { font-family: var(--serif); font-size: 2rem; color: #fff; margin-top: 0.6rem; letter-spacing: 0.14em; }
.avilo .portrait__name-en { font-family: var(--serif-latin); font-style: italic; color: var(--on-navy-mut); letter-spacing: 0.12em; margin-top: 0.3rem; }
.avilo .greeting-teaser__body {
  font-size: 1rem; line-height: 2.1; color: var(--ink-soft);
  margin: 1.4rem 0 2rem;
}
.avilo .final-cta { text-align: center; overflow: hidden; }
.avilo .final-cta::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(60% 80% at 50% 0%, rgba(221,196,162,0.14), transparent 70%);
  pointer-events: none;
}
.avilo .final-cta .wrap--narrow { position: relative; }
.avilo .final-cta .kicker { justify-content: center; display: flex; }
@media (max-width: 900px) {
.avilo .issue__head { grid-template-columns: 1fr; align-items: start; gap: 1.2rem; }
}
@media (max-width: 760px) {
.avilo .growth { grid-template-columns: 1fr; }
.avilo .greeting-teaser__inner { grid-template-columns: 1fr; }
.avilo .portrait { max-width: 380px; margin-inline: auto; }
}
.avilo .greeting__layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}
.avilo .profile { position: sticky; top: calc(var(--header-h) + 1.5rem); }
.avilo .profile__card {
  background: linear-gradient(165deg, var(--navy), var(--navy-deep));
  color: var(--on-navy);
  border-radius: var(--radius-lg);
  padding: clamp(2rem, 3vw, 2.6rem) clamp(1.6rem, 2.4vw, 2rem);
  box-shadow: var(--shadow);
  position: relative;
  text-align: center;
}
.avilo .profile__card::after {
  content: ""; position: absolute; inset: 9px;
  border: 1px solid rgba(221,196,162,0.32); border-radius: 6px; pointer-events: none;
}
.avilo .profile__mark { height: 48px; width: auto; margin: 0 auto 1.2rem; }
/* 代表 顔写真（プロフィールカード上部の角丸正方形ポートレート） */
.avilo .profile__photo { width: clamp(150px, 62%, 220px); margin: 0 auto 1.3rem; }
.avilo .profile__photo img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 14px; border: 3px solid rgba(221,196,162,0.55); box-shadow: 0 12px 30px -14px rgba(0,0,0,0.55); display: block; }
.avilo .profile__role { font-size: 0.8rem; letter-spacing: 0.3em; color: var(--sand); }
.avilo .profile__name { font-family: var(--serif); font-size: 1.9rem; color: #fff; margin-top: 0.5rem; letter-spacing: 0.14em; }
.avilo .profile__name-en { font-family: var(--serif-latin); font-style: italic; color: var(--on-navy-mut); letter-spacing: 0.12em; margin-top: 0.25rem; }
.avilo .profile__facts {
  margin-top: 1.8rem; text-align: left;
  border-top: 1px solid rgba(255,255,255,0.14); padding-top: 1.4rem;
  display: grid; gap: 1.1rem;
}
.avilo .profile__facts li { font-size: 0.86rem; line-height: 1.8; color: var(--on-navy-mut); }
.avilo .profile__facts span {
  display: block; font-family: var(--serif-latin); letter-spacing: 0.16em;
  color: var(--sand); font-size: 0.72rem; text-transform: uppercase; margin-bottom: 0.25rem;
}
.avilo .letter__title {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 3vw, 2.15rem);
  line-height: 1.6; letter-spacing: 0.04em;
  color: var(--navy-ink);
  margin-bottom: 2rem;
  padding-bottom: 1.6rem;
  border-bottom: 1px solid var(--line);
}
.avilo .letter__title .accent { color: var(--navy); font-family: var(--serif); font-style: normal; }
.avilo .letter p {
  font-size: 1.02rem; line-height: 2.15; color: var(--ink-soft);
  margin-bottom: 1.5rem;
}
.avilo .letter p b { color: var(--navy); font-weight: 700; }
.avilo .letter__quote {
  margin: 2.2rem 0;
  padding: 1.4rem 0 1.4rem 2rem;
  border-left: 3px solid var(--sand);
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  line-height: 1.9; letter-spacing: 0.03em;
  color: var(--navy-ink);
  position: relative;
}
.avilo .letter__closing {
  font-family: var(--serif);
  font-size: clamp(1.1rem, 1.9vw, 1.3rem);
  color: var(--navy-ink); line-height: 1.95; letter-spacing: 0.03em;
  margin-top: 2rem;
}
.avilo .signature {
  margin-top: 2.6rem; padding-top: 1.6rem;
  border-top: 1px solid var(--line);
  text-align: right;
}
.avilo .signature__co { display: block; font-size: 0.85rem; color: var(--muted); letter-spacing: 0.1em; }
.avilo .signature__name {
  display: inline-block; margin-top: 0.4rem;
  font-family: var(--serif); font-size: 1.5rem; letter-spacing: 0.2em; color: var(--navy-ink);
}
.avilo .final-cta { text-align: center; }
.avilo .final-cta .kicker { display: flex; justify-content: center; }
@media (max-width: 880px) {
.avilo .greeting__layout { grid-template-columns: 1fr; }
.avilo .profile { position: static; max-width: 420px; }
}
.avilo .svc-intro { padding-block: clamp(3rem, 6vw, 4.5rem); }
.avilo .svc-intro .lead { font-size: 1.08rem; }
.avilo .svc-detail .wrap { display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); }
.avilo .svc-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.6rem, 4vw, 3.5rem);
  align-items: center;
  padding-bottom: clamp(2.5rem, 5vw, 4.5rem);
  border-bottom: 1px solid var(--line);
}
.avilo .svc-row:last-of-type { border-bottom: 0; padding-bottom: 0; }
.avilo .svc-row__media {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.avilo .svc-row__media img {
  width: 100%; height: 100%;
  aspect-ratio: 4 / 3; object-fit: cover; display: block;
  transition: transform 0.6s var(--ease);
}
.avilo .svc-row:hover .svc-row__media img { transform: scale(1.05); }
.avilo .svc-row:nth-of-type(even) .svc-row__media { order: 2; }
.avilo .svc-row__head { position: relative; margin-bottom: 1.2rem; }
.avilo .svc-row__no {
  font-family: var(--serif-latin); font-style: italic; font-weight: 600;
  font-size: clamp(3rem, 6vw, 4.6rem); color: var(--sand); line-height: 1;
  display: block;
}
.avilo .svc-row__title {
  font-family: var(--serif); font-size: clamp(1.5rem, 2.6vw, 2rem);
  color: var(--navy-ink); margin-top: 0.5rem; letter-spacing: 0.06em;
}
.avilo .svc-row__meta { color: var(--navy); font-size: 0.9rem; font-weight: 500; margin-top: 0.7rem; letter-spacing: 0.03em; }
.avilo .svc-row__body p { font-size: 1.02rem; line-height: 2.1; color: var(--ink-soft); }
.avilo .svc-row__hint { color: var(--navy); font-weight: 500; margin-top: 1rem; font-size: 0.95rem; }
.avilo .svc-list { margin-top: 1.3rem; display: grid; gap: 0.7rem; }
.avilo .svc-list li {
  position: relative; padding-left: 1.6rem;
  color: var(--ink-soft); font-size: 0.98rem;
}
.avilo .svc-list li::before {
  content: ""; position: absolute; left: 0; top: 0.75em;
  width: 8px; height: 8px; border: 1.5px solid var(--sand); border-radius: 50%;
}
.avilo .chips { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.4rem; }
.avilo .chips li {
  font-size: 0.85rem; letter-spacing: 0.04em;
  padding: 0.45em 1.05em; border-radius: 999px;
  background: var(--cream); border: 1px solid var(--sand-line); color: var(--navy-ink);
}
.avilo .chips--plain li { background: transparent; border-color: var(--line); color: var(--ink-soft); }
.avilo .svc-flex {
  margin-top: 0.5rem;
  text-align: center;
  background: var(--cream);
  border: 1px dashed var(--sand-line);
  border-radius: var(--radius-lg);
  padding: 1.8rem 1.5rem;
  color: var(--ink-soft);
  font-size: 0.98rem; line-height: 1.9;
}
.avilo .svc-flex b { color: var(--navy); font-weight: 700; }
.avilo .svc-flex .feather { color: var(--sand); margin-right: 0.4em; }
.avilo .checkup__head { max-width: 52em; }
.avilo .checkup__head .lead { margin-top: 1rem; }
.avilo .diag-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: clamp(0.9rem, 1.6vw, 1.3rem);
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
}
.avilo .diag {
  padding: 1.7rem 1.5rem;
  border: 1px solid rgba(221,196,162,0.26);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.03);
  transition: background 0.4s var(--ease), transform 0.4s var(--ease);
}
.avilo .diag:hover { background: rgba(221,196,162,0.09); transform: translateY(-3px); }
.avilo .diag__idx { font-family: var(--serif-latin); font-style: italic; color: var(--sand); font-size: 1.1rem; font-weight: 600; }
.avilo .diag__name { font-family: var(--serif); font-size: 1.18rem; color: #fff; margin-top: 0.4rem; letter-spacing: 0.03em; }
.avilo .diag p { color: var(--on-navy-mut); font-size: 0.86rem; line-height: 1.85; margin-top: 0.7rem; }
.avilo .final-cta { text-align: center; }
.avilo .final-cta .kicker { display: flex; justify-content: center; }
.avilo .cta-title { text-wrap: initial; }
.avilo .cta-title span { white-space: nowrap; }
@media (max-width: 900px) {
.avilo .diag-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 780px) {
.avilo .svc-row { grid-template-columns: 1fr; gap: 1.5rem; }
.avilo .svc-row__no { font-size: 3rem; }
.avilo .svc-row:nth-of-type(even) .svc-row__media { order: 0; }
.avilo .svc-row__media img { aspect-ratio: 16 / 9; }
}
@media (max-width: 460px) {
.avilo .diag-grid { grid-template-columns: 1fr; }
}
.avilo .company__layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
.avilo .info {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
}
.avilo .info__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  border-bottom: 1px solid var(--line);
}
.avilo .info__row:last-child { border-bottom: 0; }
.avilo .info dt {
  padding: 1.3rem 1.6rem;
  background: var(--cream);
  font-weight: 700;
  color: var(--navy-ink);
  font-size: 0.92rem;
  letter-spacing: 0.06em;
  border-right: 1px solid var(--line);
}
.avilo .info dd {
  padding: 1.3rem 1.6rem;
  color: var(--ink-soft);
  line-height: 1.85;
}
.avilo .info dd a { color: var(--navy); border-bottom: 1px solid var(--sand-line); transition: color 0.3s var(--ease); }
.avilo .info dd a:hover { color: var(--sand); }
.avilo .biz { display: grid; gap: 0.6rem; }
.avilo .biz li { position: relative; padding-left: 1.4rem; }
.avilo .biz li::before {
  content: ""; position: absolute; left: 0; top: 0.7em;
  width: 7px; height: 7px; background: var(--sand); border-radius: 50%;
}
.avilo .company__map-btn { margin-top: 1.6rem; }
.avilo .company__aside { position: sticky; top: calc(var(--header-h) + 1.5rem); }
.avilo .mission {
  background: linear-gradient(165deg, var(--navy), var(--navy-deep));
  color: var(--on-navy);
  border-radius: var(--radius-lg);
  padding: clamp(2.2rem, 3.5vw, 3rem) clamp(1.8rem, 2.5vw, 2.2rem);
  box-shadow: var(--shadow);
  position: relative;
  text-align: center;
}
.avilo .mission::after {
  content: ""; position: absolute; inset: 10px;
  border: 1px solid rgba(221,196,162,0.3); border-radius: 6px; pointer-events: none;
}
.avilo .mission__mark { height: 46px; width: auto; margin: 0 auto 1.2rem; }
.avilo .mission__label { font-family: var(--serif-latin); font-style: italic; letter-spacing: 0.18em; color: var(--sand); font-size: 0.9rem; }
.avilo .mission__text { font-family: var(--serif); font-size: 1.45rem; color: #fff; line-height: 1.7; margin-top: 0.8rem; letter-spacing: 0.03em; }
.avilo .mission__sub { color: var(--on-navy-mut); font-size: 0.88rem; line-height: 1.9; margin-top: 1.2rem; }
.avilo .final-cta { text-align: center; }
.avilo .final-cta .kicker { display: flex; justify-content: center; }
@media (max-width: 880px) {
.avilo .company__layout { grid-template-columns: 1fr; }
.avilo .company__aside { position: static; max-width: 460px; }
}
@media (max-width: 520px) {
.avilo .info__row { grid-template-columns: 1fr; }
.avilo .info dt { border-right: 0; border-bottom: 1px solid var(--line); padding-block: 0.9rem; }
}
.avilo .contact__layout {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
.avilo .contact__aside { position: sticky; top: calc(var(--header-h) + 1.5rem); }
.avilo .assure {
  position: relative;
  overflow: hidden;
  background: linear-gradient(165deg, var(--navy), var(--navy-deep));
  color: var(--on-navy);
  border-radius: var(--radius-lg);
  padding: clamp(2.2rem, 3.5vw, 3rem);
  box-shadow: var(--shadow);
}
.avilo .assure .bg-media::after {
  background: linear-gradient(160deg, rgba(41,75,120,0.9), rgba(20,39,67,0.95));
}
.avilo .assure__inner { position: relative; z-index: 2; }
.avilo .assure__title { font-family: var(--serif); font-size: clamp(1.4rem, 2.4vw, 1.8rem); color: #fff; line-height: 1.7; letter-spacing: 0.03em; }
.avilo .assure__lead { color: var(--on-navy-mut); font-size: 0.95rem; line-height: 1.95; margin-top: 1.2rem; }
.avilo .assure__list {
  margin-top: 1.8rem; display: grid; gap: 1rem;
  border-top: 1px solid rgba(255,255,255,0.14); padding-top: 1.6rem;
}
.avilo .assure__list li { font-size: 0.98rem; color: var(--on-navy); }
.avilo .assure__k {
  display: inline-block; min-width: 4.5em;
  font-family: var(--serif-latin); letter-spacing: 0.1em;
  color: var(--sand); font-size: 0.78rem; text-transform: uppercase; margin-right: 0.8em;
}
.avilo .assure__direct { margin-top: 1.8rem; border-top: 1px solid rgba(255,255,255,0.14); padding-top: 1.6rem; }
.avilo .assure__direct p { font-size: 0.85rem; color: var(--on-navy-mut); }
.avilo .assure__contact { display: block; font-family: var(--serif); font-size: 1.2rem; color: #fff; margin-top: 0.5rem; letter-spacing: 0.04em; }
.avilo .assure__contact:hover { color: var(--sand); }
.avilo .contact__form-wrap {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(1.8rem, 3.5vw, 3rem);
  box-shadow: var(--shadow-soft);
}
.avilo .cform__note { font-size: 0.88rem; color: var(--muted); margin-bottom: 1.8rem; }
.avilo .req { color: #c0603f; font-weight: 700; }
.avilo .field { margin-bottom: 1.5rem; }
.avilo .field label, .avilo .field legend {
  display: block; font-weight: 500; color: var(--navy-ink);
  font-size: 0.92rem; letter-spacing: 0.04em; margin-bottom: 0.55rem; padding: 0;
}
.avilo .field input, .avilo .field textarea {
  width: 100%;
  font: inherit; font-size: 0.98rem;
  color: var(--ink);
  padding: 0.85em 1em;
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  transition: border-color 0.3s var(--ease), background 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.avilo .field input::placeholder, .avilo .field textarea::placeholder { color: #a7a29a; }
.avilo .field input:focus, .avilo .field textarea:focus {
  outline: none;
  border-color: var(--navy);
  background: var(--paper);
  box-shadow: 0 0 0 3px rgba(41,75,120,0.12);
}
.avilo .field textarea { resize: vertical; min-height: 130px; line-height: 1.8; }
.avilo .field__hint { font-size: 0.82rem; color: var(--muted); margin-top: 0.5rem; }
.avilo .field--radio legend { margin-bottom: 0.7rem; }
.avilo .radios { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.avilo .radio {
  display: inline-flex; align-items: center; gap: 0.6em;
  padding: 0.7em 1.3em;
  border: 1px solid var(--line); border-radius: 999px;
  background: var(--cream); cursor: pointer;
  transition: border-color 0.3s var(--ease), background 0.3s var(--ease);
  font-size: 0.95rem; margin-bottom: 0;
}
.avilo .radio input { accent-color: var(--navy); width: 1.05em; height: 1.05em; }
.avilo .radio:has(input:checked) { border-color: var(--navy); background: #fff; box-shadow: 0 0 0 3px rgba(41,75,120,0.1); }
.avilo .cform__submit { width: 100%; justify-content: center; margin-top: 0.5rem; }
.avilo .cform__privacy { text-align: center; font-size: 0.8rem; color: var(--muted); margin-top: 1rem; }
.avilo .cform-done { text-align: center; padding: clamp(2rem, 5vw, 4rem) 1rem; }
.avilo .cform-done__mark { height: 54px; width: auto; margin: 0 auto 1.4rem; }
.avilo .cform-done h2 { font-family: var(--serif); font-size: clamp(1.4rem, 2.6vw, 1.9rem); color: var(--navy-ink); letter-spacing: 0.04em; }
.avilo .cform-done p { color: var(--ink-soft); line-height: 1.95; margin: 1rem auto 2rem; max-width: 30em; }
@media (max-width: 880px) {
.avilo .contact__layout { grid-template-columns: 1fr; }
.avilo .contact__aside { position: static; }
}

/* ================= WordPress ブロック対応（デザイン優先の上書き） ================= */

/* wrap（中央寄せコンテナ） */
.avilo .wrap{ width:min(100% - (var(--pad-x) * 2), var(--wrap)); margin-inline:auto; }
.avilo .wrap--narrow{ width:min(100% - (var(--pad-x) * 2), var(--wrap-narrow)); margin-inline:auto; }

/* 背景メディア：wp:image の figure が挟まる分を補正 */
.avilo .bg-media .wp-block-image,
.avilo .bg-media figure{ position:absolute; inset:0; margin:0; height:100%; width:100%; }
.avilo .bg-media img{ width:100%; height:100%; object-fit:cover; }

/* ボタン（.wp-block-button 構造へ .btn を写像） */
.avilo .wp-block-buttons{ display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.avilo .wp-block-button__link{
  display:inline-flex; align-items:center; gap:.5em;
  padding:.95em 1.9em; font-family:var(--sans); font-weight:500; font-size:.98rem;
  letter-spacing:.08em; border-radius:999px; border:1px solid transparent; text-decoration:none;
  transition:transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease), box-shadow .35s var(--ease);
}
.avilo .wp-block-button__link:hover{ transform:translateY(-2px); }
.avilo .wp-block-button.btn--primary .wp-block-button__link{ background:var(--navy); color:#fff; box-shadow:var(--shadow-soft); }
.avilo .wp-block-button.btn--primary .wp-block-button__link:hover{ background:var(--navy-deep); }
.avilo .wp-block-button.btn--sand .wp-block-button__link{ background:var(--sand); color:var(--navy-ink); box-shadow:var(--shadow-soft); }
.avilo .wp-block-button.btn--sand .wp-block-button__link:hover{ background:#e7d3b6; }
.avilo .wp-block-button.btn--ghost .wp-block-button__link{ border-color:currentColor; color:var(--navy); background:transparent; }
.avilo .wp-block-button.btn--ghost .wp-block-button__link:hover{ background:rgba(41,75,120,.06); }
.avilo .wp-block-button.btn--lg .wp-block-button__link{ padding:1.1em 2.3em; font-size:1.02rem; }
.avilo .section--navy .wp-block-button.btn--ghost .wp-block-button__link,
.avilo .hero .wp-block-button.btn--ghost .wp-block-button__link{ color:var(--on-navy); border-color:rgba(242,237,227,.45); }
.avilo .section--navy .wp-block-button.btn--ghost .wp-block-button__link:hover,
.avilo .hero .wp-block-button.btn--ghost .wp-block-button__link:hover{ background:rgba(255,255,255,.08); color:#fff; }

/* 会社概要 テーブル（wp:table） */
.avilo .company__info .wp-block-table{ margin:0; }
.avilo .company__info table{ width:100%; border-collapse:collapse; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); table-layout:fixed; }
.avilo .company__info td{ padding:1.3rem 1.6rem; color:var(--ink-soft); line-height:1.85; border-bottom:1px solid var(--line); vertical-align:top; word-break:break-word; }
.avilo .company__info td:first-child{ width:20%; background:var(--cream); font-weight:700; color:var(--navy-ink); font-size:.92rem; letter-spacing:.06em; border-right:1px solid var(--line); }
.avilo .company__info tr:last-child td{ border-bottom:0; }
.avilo .company__info td a{ color:var(--navy); border-bottom:1px solid var(--sand-line); word-break:break-all; }
/* SWELL の .wp-block-table>table tr>:first-child ルール（--swl-cell1-width / min-width!important）を上書きして 1列目20%・2列目80%を固定 */
.avilo .company__info .wp-block-table>table{ --swl-cell1-width:20%; table-layout:fixed; }
.avilo .company__info .wp-block-table>table tr>td:first-child{ width:20% !important; min-width:20% !important; max-width:20% !important; }
.avilo .company__info .wp-block-table>table tr>td:last-child{ width:80% !important; }

/* お問い合わせフォーム（wp:html 内の素の HTML） */
.avilo .cform{ }

/* SWELL ヘッダー前提：固定ヘッダー用オフセットを除去 */
.avilo .hero{ padding-top:0; }
.avilo .page-hero{ padding-top:clamp(3rem,6vw,5rem); }
.avilo .profile, .avilo .company__aside, .avilo .contact__aside{ top:1.5rem; }

/* リンクの装飾を SWELL 既定から戻す */
.avilo a{ text-decoration:none; color:inherit; }

/* ================= SWELL テーマとのレイアウト調整（.avilo を含む固定ページのみ） ================= */
/* 1) ヘッダー直下の余白（.l-container の上パディング）を除去 */
body:has(.avilo) .l-container{ padding-top:0 !important; }

/* 2) SWELL 出力のページタイトル（h1）は当デザインと重複するため非表示 */
body:has(.avilo) .c-pageTitle{ display:none !important; }

/* 5) コンテンツ幅の制限を解除し、当デザインの最大幅(.wrap=1180px)を活かす */
body:has(.avilo) .l-article,
body:has(.avilo) .l-mainContent,
body:has(.avilo) .l-mainContent__inner,
body:has(.avilo) .post_content{ max-width:none !important; }
.avilo .wp-block-group__inner-container{ max-width:none !important; }

/* 3) CTAボタンの二重表示：外側 .wp-block-button の装飾を打ち消し、内側リンクのみボタンに */
.avilo .wp-block-button.btn{ background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; padding:0 !important; transform:none !important; }
.avilo .wp-block-button.btn:hover{ transform:none !important; background:transparent !important; }

/* 4) 見出しに乗る SWELL の装飾（背景色・擬似要素・左余白）を打ち消し、静的版のデザインに */
.avilo :is(h1,h2,h3,h4,h5,h6){ background:none !important; }
.avilo :is(h1,h2,h3,h4,h5,h6)::before,
.avilo :is(h1,h2,h3,h4,h5,h6)::after{ content:none !important; display:none !important; background:none !important; border:0 !important; }
.avilo .sec-title,.avilo .page-hero__ja,.avilo .hero__title,.avilo .svc-row__title,
.avilo .svc-flow__title,.avilo .assure__title,.avilo .cform-done h2{ padding:0 !important; border:0 !important; }
/* letter__title は当デザインの下線を維持 */
.avilo .letter__title{ padding:0 0 1.6rem !important; border:0 !important; border-bottom:1px solid var(--line) !important; }

/* 5-補) wrap 幅を静的版と同じ最大幅に（コンテナ幅の影響を受けないよう vw 基準） */
.avilo .wrap{ width:min(var(--wrap), 100vw - (var(--pad-x) * 2)) !important; margin-inline:auto !important; }
.avilo .wrap--narrow{ width:min(var(--wrap-narrow), 100vw - (var(--pad-x) * 2)) !important; margin-inline:auto !important; }

/* 1-補) 下層ページのヘッダー下の余白（post_content 上マージン）とSWELLパンくずを除去
        ※ 当デザインは page-hero 内に独自パンくずを持つため重複を避ける */
body:has(.avilo) .post_content{ margin-top:0 !important; }
body:has(.avilo) .p-breadcrumb{ display:none !important; }

/* FVのスライド/オーバーレイを常にヒーロー全高で覆う（min-height:100svh のズレで下部に出る明るい帯を解消） */
.avilo .hero__slides, .avilo .hero__overlay, .avilo .hero__slide{ height:100% !important; }

/* SWELL の blockquote::before の二重線を除去（border-left/right を消す） */
.avilo blockquote::before, .avilo .wp-block-quote::before{ border-left:0 !important; border-right:0 !important; }

/* ===== フッター（SWELLフッターウィジェット + コピーライトを静的demoのデザインに合わせる） =====
   ・footer_box1/2/3 に配置したブロックウィジェット（.avilo でラップ）を装飾
   ・下部バーは SWELL コピーライト（.copyright）を流用
   ・.avilo を含むページ（当サイトの固定ページ）にのみ適用 = body:has(.avilo) */
body:has(.avilo) .l-footer{
  background: linear-gradient(160deg, var(--navy-deep), var(--navy-ink)) !important;
  color: var(--on-navy) !important;
}
body:has(.avilo) .l-footer__widgetArea{
  padding-block: clamp(3.5rem, 6vw, 5rem) 0 !important;
}
/* 3カラム配置（SWELLの -col3 を上書き：1.4fr 1fr 1fr） */
body:has(.avilo) .l-footer .w-footer{
  max-width: var(--wrap) !important;
  width: min(var(--wrap), 100vw - (var(--pad-x) * 2)) !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: 1.4fr 1fr 1fr !important;
  gap: clamp(2rem, 5vw, 4rem) !important;
  align-items: start !important;
}
body:has(.avilo) .l-footer .w-footer__box{ margin: 0 !important; background: transparent !important; padding: 0 !important; box-shadow: none !important; border: 0 !important; }
/* フッターウィジェットに付けた .avilo クラスの基底背景(cream)・文字色(ink)を打ち消す */
body:has(.avilo) .l-footer .avilo{ background: transparent !important; color: var(--on-navy) !important; overflow: visible !important; }
/* コンテンツ下端とフッターの間の白余白を除去（最後の全幅セクションを端まで） */
body:has(.avilo) #content.l-container{ padding-bottom: 0 !important; }
body:has(.avilo) main#main_content{ padding-bottom: 0 !important; margin-bottom: 0 !important; }
body:has(.avilo) .l-mainContent,
body:has(.avilo) .l-article{ padding-bottom: 0 !important; margin-bottom: 0 !important; }
body:has(.avilo) .l-content{ padding-bottom: 0 !important; margin-bottom: 0 !important; }
body:has(.avilo) > #page,
body:has(.avilo) .l-footer{ margin-top: 0 !important; }
/* トップ階層 .avilo ラッパー自身の下余白と最終子要素の下マージンを除去 */
.alignfull.avilo{ padding-bottom: 0 !important; margin-bottom: 0 !important; }
.alignfull.avilo > *:last-child{ margin-bottom: 0 !important; }

/* ブランド列 */
body:has(.avilo) .l-footer .avilo.footer-brand .brand__name{
  font-family: var(--serif-latin);
  font-size: 1.7rem; color: #fff; font-weight: 600;
  letter-spacing: 0.06em; line-height: 1; margin: 0;
}
body:has(.avilo) .l-footer .avilo.footer-brand .brand__name b{ font-weight: 600; }
body:has(.avilo) .l-footer .avilo .footer-open{
  display: inline-flex; align-items: center; gap: 0.5em;
  color: var(--sand); font-size: 0.82rem; letter-spacing: 0.1em; margin-top: 1rem;
}

/* サイトマップ / 連絡先 列 */
body:has(.avilo) .l-footer .avilo.footer-col h4{
  font-family: var(--serif-latin); font-size: 0.8rem; letter-spacing: 0.28em;
  text-transform: uppercase; color: var(--sand); font-weight: 600;
  margin: 0 0 1.1rem; padding: 0; background: none; border: 0;
}
body:has(.avilo) .l-footer .avilo.footer-col h4::before,
body:has(.avilo) .l-footer .avilo.footer-col h4::after{ content: none !important; }
body:has(.avilo) .l-footer .avilo.footer-col ul{ list-style: none; margin: 0; padding: 0; }
body:has(.avilo) .l-footer .avilo.footer-col li{ margin-bottom: 0.7rem; }
body:has(.avilo) .l-footer .avilo.footer-col a{
  color: var(--on-navy-mut); font-size: 0.92rem; line-height: 1.9; text-decoration: none;
}
body:has(.avilo) .l-footer .avilo.footer-col a:hover{ color: var(--sand); }
body:has(.avilo) .l-footer .avilo.footer-col .foot-address{
  color: var(--on-navy-mut); font-size: 0.92rem; line-height: 1.9; margin: 0 0 0.8rem;
}
body:has(.avilo) .l-footer .avilo.footer-col .foot-contact{ margin: 0; }

/* 下部バー（コピーライト） */
body:has(.avilo) .l-footer__foot{
  margin-top: clamp(2.5rem, 5vw, 3.5rem) !important;
  border-top: 1px solid rgba(255,255,255,0.12) !important;
}
body:has(.avilo) .l-footer__foot .l-container{
  max-width: var(--wrap) !important;
  width: min(var(--wrap), 100vw - (var(--pad-x) * 2)) !important;
  margin-inline: auto !important;
}
body:has(.avilo) .l-footer .copyright{
  display: flex; align-items: center; flex-wrap: wrap;
  column-gap: 0.45em; row-gap: 0.4rem;
  padding-top: 1.6rem; margin: 0;
  color: var(--on-navy-mut); font-size: 0.82rem; letter-spacing: 0.06em; text-align: left;
}
body:has(.avilo) .l-footer .copyright .foot-right{ margin-left: auto; color: var(--on-navy-mut); }

/* レスポンシブ */
@media (max-width: 900px){
  body:has(.avilo) .l-footer .w-footer{ grid-template-columns: 1fr 1fr !important; }
  body:has(.avilo) .l-footer .avilo.footer-brand{ grid-column: 1 / -1 !important; }
}
@media (max-width: 600px){
  body:has(.avilo) .l-footer .w-footer{ grid-template-columns: 1fr !important; }
  body:has(.avilo) .l-footer .copyright{ flex-direction: column; align-items: flex-start; }
  body:has(.avilo) .l-footer .copyright .foot-right{ margin-left: 0; }
}

/* ===== Contact Form 7 出力を既存フォームデザイン(.cform)に適合 ===== */
/* CF7フォーム本体には html_class="cform" を付与しているため既存 .cform 系が効く */
.avilo .cform .wpcf7-form-control-wrap{ display:block; }
/* ラジオ（希望連絡方法）を既存のピル型に */
.avilo .cform .wpcf7-radio{ display:flex; gap:0.8rem; flex-wrap:wrap; }
.avilo .cform .wpcf7-radio .wpcf7-list-item{ margin:0; }
.avilo .cform .wpcf7-radio .wpcf7-list-item > label{
  display:inline-flex; align-items:center; gap:0.6em; padding:0.7em 1.3em;
  border:1px solid var(--line); border-radius:999px; background:var(--cream);
  cursor:pointer; font-size:0.95rem; transition:border-color .3s var(--ease), background .3s var(--ease);
}
.avilo .cform .wpcf7-radio input{ accent-color:var(--navy); width:1.05em; height:1.05em; margin:0; }
.avilo .cform .wpcf7-radio .wpcf7-list-item > label:has(input:checked){ border-color:var(--navy); background:#fff; box-shadow:0 0 0 3px rgba(41,75,120,0.1); }
/* プライバシーポリシー同意 */
.avilo .cform__agree{ text-align:center; margin:2rem 0 0.9rem; color:var(--ink-soft); font-size:0.95rem; line-height:1.9; }
.avilo .cform__agree a{ color:var(--navy); border-bottom:1px solid var(--sand-line); }
.avilo .cform .wpcf7-acceptance{ display:block; text-align:center; margin-bottom:1.6rem; }
.avilo .cform .wpcf7-acceptance .wpcf7-list-item{ margin:0; }
.avilo .cform .wpcf7-acceptance label{ display:inline-flex; align-items:center; gap:0.5em; cursor:pointer; font-size:0.95rem; color:var(--navy-ink); }
.avilo .cform .wpcf7-acceptance input{ accent-color:var(--navy); width:1.1em; height:1.1em; margin:0; }
/* 送信ボタン（input[type=submit] にも .btn 系クラスが付与される） */
.avilo .cform input.cform__submit{ width:100%; justify-content:center; }
/* CF7 応答メッセージ・バリデーション */
.avilo .cform .wpcf7-response-output{ margin:1.2rem 0 0; padding:0.9em 1.2em; border-radius:var(--radius); font-size:0.9rem; text-align:center; }
.avilo .cform .wpcf7-not-valid-tip{ color:#c0603f; font-size:0.82rem; margin-top:0.4rem; display:block; }
.avilo .cform .wpcf7-spinner{ margin:0.6rem auto 0; display:block; }
