/* アビックスリサイクル LP styles */

* { box-sizing: border-box; }
body { margin: 0; font-family: 'Noto Sans JP', sans-serif; color: #15355c; background: #fff; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }

/* ========================================
   AFFINGER theme override resets
   ======================================== */
.avics-lp h1, .avics-lp h2, .avics-lp h3, .avics-lp h4, .avics-lp h5 {
  border: none !important;
  background: none !important;
  padding: 0 !important;
  margin: 0;
  text-align: inherit;
  position: relative;
}
.avics-lp h2::before, .avics-lp h2::after,
.avics-lp h3::before, .avics-lp h3::after {
  content: none !important;
  display: none !important;
  border: none !important;
  background: none !important;
}
.avics-lp p { margin: 0; }
.avics-lp ul, .avics-lp ol { padding: 0; margin: 0; list-style: none; }
.avics-lp a { text-decoration: none; }
/* AFFINGER content max-width unset */
.avics-lp .entry-content, .avics-lp .post, .avics-lp #content {
  max-width: none !important;
}
/* Force slider image sizing — prevent full-screen banner */
.avics-lp .avics-slider .avics-slide a img,
.avics-lp .avics-slider .avics-slide img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1/1;
  object-fit: cover !important;
  display: block !important;
  border-radius: 18px;
}

/* FAQ */
.avics-faq-answer { display: none; }
.avics-faq-answer.open { display: block; }

/* Review card hover (Google口コミ) */
.avics-review-card {
  cursor: default;
  position: relative;
  border: 1.5px solid transparent;
}
.avics-review-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 28px 56px -16px rgba(20, 57, 124, 0.28),
              0 12px 24px -8px rgba(20, 57, 124, 0.12) !important;
  border-color: rgba(43, 127, 212, 0.25);
}
.avics-review-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(43, 127, 212, 0) 0%, rgba(43, 127, 212, 0.04) 100%);
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
}
.avics-review-card:hover::before { opacity: 1; }

/* ========================================
   CHECK STRIP — Marquee (mobile)
   ======================================== */
.avics-check-item {
  display: flex; align-items: center; justify-content: center; gap: 10px;
}
.avics-check-label {
  font-family: 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', sans-serif;
  font-weight: 700; font-size: 16px; color: #0D4F9E; white-space: nowrap;
}
/* Default: hide clones on desktop */
.avics-check-clone { display: none !important; }

/* Mobile-only elements hidden by default (desktop) — !important to beat AFFINGER theme overrides */
.avics-mobile-icon-nav,
.avics-hero-strengths,
.avics-mobile-fv {
  display: none !important;
}

/* Default SVG safety net — prevent oversized SVGs on AFFINGER theme */
.avics-lp svg {
  max-width: 48px !important;
  max-height: 48px !important;
  width: auto !important;
  height: auto !important;
  vertical-align: middle;
}
/* Allow larger SVGs only in specific containers */
.avics-lp .avics-hero-trust svg,
.avics-lp .avics-mn-icon svg,
.avics-lp .avics-mobile-icon-nav svg,
.avics-lp .avics-hs-item svg {
  max-width: 100% !important;
  max-height: 100% !important;
}
/* HIDE any rogue SVG that's not in a button/icon container */
.avics-lp > svg,
.avics-lp body > svg,
.avics-lp section > svg,
.avics-lp section > div > svg:first-child:last-child {
  display: none !important;
}
/* Hide hamburger button on DESKTOP */
@media (min-width: 768px) {
  #avics-hamburger { display: none !important; }
}

/* AFFINGER のページトップへ戻るボタンを完全に非表示 (LPページのみ) */
.avics-lp #page-top,
body.avics-lp #page-top,
body.avics-lp .page-top,
body.avics-lp .pagetop,
body.avics-lp .st-pagetop,
body.avics-lp #st-pagetop,
body.avics-lp .go_page_top,
body.avics-lp #scroll_to_top,
body.avics-lp .scroll-to-top,
body.avics-lp [class*="page-top"],
body.avics-lp [class*="pagetop"],
body.avics-lp [class*="back-to-top"],
body.avics-lp [id*="page-top"],
body.avics-lp [id*="pagetop"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* AFFINGER のサイドフローティング系も非表示 */
body.avics-lp .fixed-bottom-menu,
body.avics-lp .st-floating-link,
body.avics-lp .st-fl-fix,
body.avics-lp .footer-fix-bottom-menu-area {
  display: none !important;
}

/* Pricing grid default (desktop 2-col) */
.avics-pricing-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  align-items: stretch;
}

/* ========================================
   HERO — simple image-only embed (PC / Mobile picture)
   ======================================== */
.avics-hero { display: block; line-height: 0; }
.avics-hero-link { display: block; line-height: 0; }
.avics-hero picture,
.avics-hero img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}
/* Disable AFFINGER's hover white-overlay/opacity on hero image */
.avics-hero a:hover,
.avics-hero a:focus,
.avics-hero a:active,
.avics-hero-link:hover,
.avics-hero-link:focus,
.avics-hero-link:active {
  opacity: 1 !important;
  background: none !important;
  filter: none !important;
}
.avics-hero a:hover img,
.avics-hero a:focus img,
.avics-hero-link:hover img,
.avics-hero-link:focus img {
  opacity: 1 !important;
  filter: none !important;
}
.avics-hero a::before,
.avics-hero a::after,
.avics-hero-link::before,
.avics-hero-link::after { content: none !important; display: none !important; }

/* ========================================
   PC HIDE HAMBURGER
   ======================================== */
@media (min-width: 768px) {
  #avics-hamburger { display: none !important; }
}

/* ========================================
   PC: hide <br> inside the blue banner "分別や運び出しも、"
   ======================================== */
@media (min-width: 768px) {
  .avics-lp [style*="background: #0D4F9E"][style*="border-radius: 22px"] [style*="font-size: 26px"] br {
    display: none !important;
  }
}

/* ========================================
   PC: CTA card phone — center content
   ======================================== */
@media (min-width: 768px) {
  /* 1) CTA section (#contact) phone card */
  .avics-contact-ctas > a[href^="tel:"] {
    flex: 1 !important;
    min-width: 0;
    padding: 16px 28px !important;
    gap: 18px !important;
    justify-content: center !important;
  }
  .avics-contact-ctas > a[href^="tel:"] > svg,
  .avics-contact-ctas > a[href^="tel:"] > img {
    flex-shrink: 0;
  }
  .avics-contact-ctas > a[href^="tel:"] > span {
    text-align: center !important;
    flex: 0 1 auto;
  }

  /* 2) Troubles section big phone CTA (white card under blue banner) */
  .avics-lp a[href^="tel:"][style*="border: 2px solid #e3ebf3"] {
    justify-content: center !important;
  }
  .avics-lp a[href^="tel:"][style*="border: 2px solid #e3ebf3"] > span {
    flex: 0 1 auto !important;
    text-align: center !important;
  }
}

/* ========================================
   FLOW SECTION: PC = grid, Mobile/Tablet = slider
   ======================================== */
@media (min-width: 768px) {
  #flow .avics-slider-clip { overflow: visible !important; padding: 0 !important; margin: 0 !important; }
  #flow .avics-slider-wrap  { overflow: visible !important; }
  #flow .avics-slider-track {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    transform: none !important;
    gap: 18px !important;
  }
  #flow .avics-slider-track > .avics-slide {
    width: auto !important;
    padding: 0 !important;
  }
  #flow .avics-slider-track > [aria-hidden="true"] { display: none !important; }
  #flow .avics-slider-controls { display: none !important; }
}

/* ========================================
   CTA SECTION (PC): img-left + text-center + CTAs-right (horizontal)
   ======================================== */
@media (min-width: 768px) {
  .avics-contact-card {
    flex-direction: row !important;
    align-items: center !important;
    gap: 32px !important;
    padding: 36px 44px !important;
  }
  .avics-contact-intro {
    display: contents !important;
  }
  .avics-contact-img {
    width: 150px !important;
    height: auto !important;
    flex-shrink: 0 !important;
    align-self: center !important;
    order: 1;
  }
  .avics-contact-text {
    flex: 1 !important;
    order: 2;
    text-align: left !important;
  }
  .avics-contact-text > div:first-child {
    font-size: 26px !important;
    line-height: 1.5 !important;
    text-align: left !important;
  }
  .avics-contact-text > div:nth-child(2) {
    font-size: 14.5px !important;
    margin-top: 6px !important;
    text-align: left !important;
  }
  .avics-contact-ctas {
    order: 3;
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    gap: 14px !important;
    flex-wrap: nowrap !important;
    flex-shrink: 0;
  }
  .avics-contact-ctas > a { width: auto !important; }
}

/* ========================================
   HAMBURGER MENU (mobile overlay)
   ======================================== */
#avics-mobile-menu {
  position: fixed; inset: 0; z-index: 200;
  display: none; pointer-events: none;
}
#avics-mobile-menu.is-open { display: block; pointer-events: auto; }
.avics-mm-backdrop {
  position: absolute; inset: 0; background: rgba(10, 26, 48, 0.55);
  opacity: 0; transition: opacity 0.25s ease;
  z-index: 1;
}
#avics-mobile-menu.is-open .avics-mm-backdrop { opacity: 1; }
.avics-mm-panel {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: 80%; max-width: 320px; background: #fff;
  transform: translateX(100%); transition: transform 0.3s cubic-bezier(0.22,0.61,0.36,1);
  display: flex; flex-direction: column;
  overflow-y: auto;
  box-shadow: -8px 0 32px rgba(0,0,0,0.25);
  z-index: 2;
}
#avics-mobile-menu.is-open .avics-mm-panel { transform: translateX(0); }
#avics-mm-close {
  position: absolute; top: 12px; right: 14px;
  background: transparent; border: none; font-size: 32px; color: #0D4F9E;
  cursor: pointer; line-height: 1; padding: 4px 10px;
  z-index: 5;
}
.avics-mm-panel nav { padding: 60px 24px 20px; }
.avics-mm-panel nav a {
  display: block; padding: 14px 4px; text-decoration: none;
  color: #0D4F9E; font-weight: 700; font-size: 15px;
  border-bottom: 1px solid #eef2f6;
}
.avics-mm-panel nav .avics-mm-group { background: #F4F8FC; border-radius: 8px; padding: 4px 8px; margin: 4px 0; }
.avics-mm-panel nav .avics-mm-group a {
  border-bottom: 1px solid #e3ebf3; padding: 10px 4px;
  font-size: 13.5px; color: #2c4a6e; font-weight: 600;
}
.avics-mm-panel nav .avics-mm-group a:last-child { border-bottom: 0; }
.avics-mm-cta { padding: 18px 24px 32px; display: flex; flex-direction: column; gap: 10px; }
.avics-mm-cta a {
  display: block; text-align: center; text-decoration: none;
  padding: 14px; border-radius: 10px;
  font-weight: 800; font-size: 15px;
}
.avics-mm-cta a:first-child { background: #D94040; color: #fff; }
.avics-mm-cta a:last-child  { background: #2B7FD4; color: #fff; }

/* ========================================
   RESPONSIVE — Mobile (<= 767px)
   ======================================== */
@media (max-width: 767px) {
  /* Default grid → single column */
  .avics-lp [style*="grid-template-columns: repeat(2, 1fr)"],
  .avics-lp [style*="grid-template-columns: repeat(3, 1fr)"],
  .avics-lp [style*="grid-template-columns: repeat(4, 1fr)"],
  .avics-lp [style*="grid-template-columns: repeat(5, 1fr)"],
  .avics-lp [style*="grid-template-columns: 1.4fr 1fr"],
  .avics-lp [style*="grid-template-columns: 1.5fr 1fr 1fr"],
  .avics-lp [style*="grid-template-columns: 1.4fr 1fr 1fr"],
  .avics-lp [style*="grid-template-columns: 1fr 1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .avics-lp [style*="grid-template-columns: 1.4fr 1fr 1.3fr"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  /* Footer 4-col → 1-col */
  .avics-lp footer [style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  /* Service card column fix */
  .avics-lp article[style*="flex: 0 0 calc"] {
    flex: 0 0 100% !important;
  }

  /* Header collapse — hide menu nav on mobile (icon nav and hamburger take over) */
  .avics-lp .avics-nav { display: none !important; }
  /* Single-row mobile header: logo (left) + phone (right) - no hamburger space */
  .avics-lp header {
    border-bottom: 1px solid #e7eef5 !important;
  }
  .avics-lp header > div {
    padding: 8px 12px !important;
    gap: 12px !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
  }

  /* (Hero/FV settings consolidated below in the new HERO overlay block) */

  /* Section padding compress - tight on mobile to reduce dead space */
  .avics-lp section [style*="padding: 80px 24px"],
  .avics-lp section [style*="padding: 70px 24px"],
  .avics-lp section [style*="padding: 64px 24px"] {
    padding: 24px 14px !important;
  }
  .avics-lp section [style*="padding: 50px 0"],
  .avics-lp section [style*="padding: 40px 0 30px"],
  .avics-lp section [style*="padding: 40px 0 40px"] {
    padding: 18px 0 !important;
  }
  /* Specific paddings that have top+bottom asymmetry */
  .avics-lp section [style*="padding: 70px 24px 30px"] { padding: 24px 14px 12px !important; }
  .avics-lp section [style*="padding: 24px 24px 70px"] { padding: 8px 14px 24px !important; }
  /* News section margin compress */
  .avics-lp .avics-news-section {
    padding: 18px 0 !important;
  }
  /* Trouble/CTA card margin reduce */
  .avics-lp section > div > [style*="margin-top: 40px"] {
    margin-top: 16px !important;
  }
  /* Section internal divider margins */
  .avics-lp section > div > [style*="margin: 22px 0 0"] { margin: 8px 0 0 !important; }

  /* Heading sizes */
  .avics-lp h1 { font-size: 26px !important; line-height: 1.4 !important; }
  .avics-lp h2 { font-size: 22px !important; line-height: 1.4 !important; }
  .avics-lp h3 { font-size: 18px !important; }

  /* Blue banner cards — both #0D4F9E and #2B7FD4 stack vertically */
  .avics-lp [style*="background: #0D4F9E"][style*="border-radius: 22px"],
  .avics-lp [style*="background: #2B7FD4"][style*="border-radius: 22px"] {
    flex-direction: column !important;
    text-align: center !important;
    padding: 22px 18px !important;
    gap: 12px !important;
  }
  .avics-lp [style*="background: #0D4F9E"][style*="border-radius: 22px"] > img,
  .avics-lp [style*="background: #2B7FD4"][style*="border-radius: 22px"] > img {
    width: 70px !important;
    height: auto !important;
    margin: 0 auto !important;
  }
  .avics-lp [style*="background: #0D4F9E"][style*="border-radius: 22px"] [style*="font-size: 26px"],
  .avics-lp [style*="background: #2B7FD4"][style*="border-radius: 22px"] [style*="font-size: 24px"] {
    font-size: 17px !important;
    line-height: 1.5 !important;
  }
  .avics-lp [style*="background: #0D4F9E"][style*="border-radius: 22px"] [style*="font-size: 22px"] {
    font-size: 17px !important;
  }
  .avics-lp [style*="background: #0D4F9E"][style*="border-radius: 22px"] > div:nth-child(2),
  .avics-lp [style*="background: #2B7FD4"][style*="border-radius: 22px"] > div:nth-child(2) {
    width: 100% !important;
  }

  /* Big phone CTA in トラブル/連絡 */
  .avics-lp a[href^="tel:"][style*="font-size: 32px"] > span {
    font-size: 22px !important;
  }
  /* お問い合わせCTAセクション内の電話ボックス: 完全中央寄せ */
  .avics-lp .avics-contact-ctas {
    flex-direction: column !important;
    gap: 12px !important;
    align-items: stretch !important;
  }
  .avics-lp .avics-contact-ctas > a {
    display: flex !important;
    width: 100% !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
  /* 電話アイコンをモバイル非表示にして純粋な中央寄せ */
  .avics-lp .avics-contact-ctas > a[href^="tel:"] > img,
  .avics-lp .avics-contact-ctas > a[href^="tel:"] > svg {
    display: none !important;
  }
  .avics-lp .avics-contact-ctas > a[href^="tel:"] > span {
    text-align: center !important;
    line-height: 1.2 !important;
    width: 100% !important;
    display: block !important;
  }
  .avics-lp .avics-contact-ctas > a[href^="tel:"] > span > span {
    display: block !important;
    text-align: center !important;
    width: 100% !important;
  }

  /* Phone CTA receipt text (受付 9:00〜20:00 ／ 年中無休...): no wrap, smaller font */
  .avics-lp a[href^="tel:"][style*="border: 2px solid #e3ebf3"] > span > span:first-child {
    font-size: 9.5px !important;
    white-space: nowrap !important;
    letter-spacing: -0.01em;
    line-height: 1.3 !important;
  }
  .avics-lp a[href^="tel:"][style*="border: 2px solid #e3ebf3"] > span > span:last-child {
    font-size: 22px !important;
    white-space: nowrap !important;
  }
  .avics-lp a[href^="tel:"][style*="border: 2px solid #e3ebf3"] {
    padding: 12px 16px !important;
    gap: 10px !important;
  }
  .avics-lp a[href^="tel:"][style*="border: 2px solid #e3ebf3"] > svg {
    width: 26px !important;
    height: 26px !important;
  }

  /* CTA section gradient — restructured: img-left + text-right horizontal, ctas full-width below */
  .avics-contact-card {
    padding: 22px 18px !important;
    gap: 18px !important;
  }
  .avics-contact-intro {
    gap: 14px !important;
    align-items: center !important;
  }
  .avics-contact-img {
    width: 80px !important;
    height: auto !important;
    align-self: center !important;
  }
  .avics-contact-text > div:first-child {
    font-size: 17px !important;
    line-height: 1.55 !important;
    text-align: left !important;
  }
  .avics-contact-text > div:nth-child(2) {
    font-size: 12.5px !important;
    line-height: 1.7 !important;
    text-align: left !important;
    margin-top: 6px !important;
  }
  .avics-contact-ctas {
    flex-direction: column !important;
    gap: 12px !important;
  }
  .avics-contact-ctas > a {
    width: 100% !important;
    justify-content: center !important;
  }
  .avics-contact-ctas a[href^="tel:"] {
    padding: 12px 18px !important;
    gap: 10px !important;
  }
  .avics-contact-ctas a[href^="tel:"] span[style*="font-size: 28px"] {
    font-size: 22px !important;
  }
  .avics-contact-ctas a[href^="tel:"] img { width: 28px !important; height: 28px !important; }

  /* Reasons grid (5-col) → 2-col on mobile */
  .avics-lp #reasons [style*="grid-template-columns: repeat(5, 1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }

  /* Trouble cards/check strip 4-col → 2-col */
  .avics-lp [style*="grid-template-columns: repeat(4, 1fr)"][style*="margin-top: 40px"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }

  /* Pricing 2-col → 1-col, smaller text */
  .avics-lp #price [style*="grid-template-columns: repeat(2, 1fr)"] {
    grid-template-columns: 1fr !important;
  }
  .avics-lp #price [style*="font-size: 44px"] { font-size: 36px !important; }

  /* ==== SERVICES: 2-col compact grid on mobile ==== */
  .avics-lp #services > div > div[style*="flex-wrap: wrap"] {
    gap: 10px !important;
  }
  .avics-lp #services > div > div[style*="flex-wrap: wrap"] article {
    flex: 0 0 calc(50% - 5px) !important;
    border-radius: 12px !important;
  }
  /* Compact image */
  .avics-lp #services article > div:first-child {
    height: 110px !important;
  }
  /* Compact text area */
  .avics-lp #services article > div:nth-child(2) {
    padding: 12px 12px 14px !important;
  }
  /* Title smaller */
  .avics-lp #services article [style*="font-size: 20px"] {
    font-size: 14px !important;
    margin-bottom: 6px !important;
    line-height: 1.4 !important;
  }
  /* Description: clamp to 2 lines */
  .avics-lp #services article p {
    font-size: 11.5px !important;
    line-height: 1.55 !important;
    margin: 0 0 8px !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: none !important;
  }
  /* Price badge: 2-line layout — plan name on line 1, price on line 2 */
  .avics-lp #services article [style*="background: #E8F4FF"][style*="border-radius: 8px"] {
    padding: 8px 6px !important;
    margin-bottom: 8px !important;
    font-size: 10.5px !important;
    gap: 2px !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: baseline !important;
    min-height: 50px !important;
    line-height: 1.35 !important;
    text-align: center;
    overflow: visible !important;
  }
  /* First span (plan name like 軽トラプラン / 1R / 1K) → full width line 1 */
  .avics-lp #services article [style*="background: #E8F4FF"][style*="border-radius: 8px"] > span:first-child {
    width: 100% !important;
    flex-basis: 100% !important;
    text-align: center !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    color: #0D4F9E !important;
    white-space: nowrap;
  }
  /* Price (strong) + tax label on line 2 */
  .avics-lp #services article [style*="background: #E8F4FF"][style*="border-radius: 8px"] strong {
    font-size: 13px !important;
    white-space: nowrap;
  }
  .avics-lp #services article [style*="background: #E8F4FF"][style*="border-radius: 8px"] > span:not(:first-child) {
    font-size: 10px !important;
    white-space: nowrap;
  }

  /* 法人バナー: 3 bullet items → 1-col stacked & centered on mobile */
  .avics-lp #services [style*="display: flex"][style*="flex-wrap: wrap"][style*="gap: 18px"] {
    flex-direction: column !important;
    gap: 10px !important;
    align-items: center !important;
  }
  /* Equal card heights via flex */
  .avics-lp #services > div > div[style*="flex-wrap: wrap"] {
    align-items: stretch !important;
  }
  .avics-lp #services article {
    display: flex !important;
    flex-direction: column !important;
  }
  .avics-lp #services article > div:nth-child(2) {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .avics-lp #services article > div:nth-child(2) > a:last-child {
    margin-top: auto !important;
  }
  /* Button compact */
  .avics-lp #services article > div:nth-child(2) > a {
    padding: 8px 10px !important;
    font-size: 11.5px !important;
  }
  /* 法人バナー */
  .avics-lp #services [style*="border-radius: 20px"][style*="padding: 40px 44px"] {
    flex-direction: column !important;
    padding: 24px 20px !important;
    text-align: center !important;
    gap: 16px !important;
  }
  .avics-lp #services [style*="font-size: 26px"] {
    font-size: 19px !important;
  }

  /* Certificate card */
  .avics-lp [style*="border-radius: 22px"][style*="padding: 36px 40px"] {
    flex-direction: column !important;
    padding: 24px 20px !important;
    text-align: center !important;
    gap: 18px !important;
  }
  .avics-lp [style*="border-radius: 22px"][style*="padding: 36px 40px"] img {
    max-width: 240px !important;
    margin: 0 auto !important;
  }

  /* 許可情報 banner */
  .avics-lp [style*="background: #0D4F9E"][style*="padding: 30px 40px"] {
    flex-direction: column !important;
    padding: 24px 20px !important;
    text-align: center !important;
    gap: 14px !important;
  }
  .avics-lp [style*="background: #0D4F9E"][style*="padding: 30px 40px"] > div:last-child {
    width: 100% !important;
  }

  /* Hero feature cards (3-col → 1-col) */
  .avics-lp #top [style*="grid-template-columns: repeat(3, 1fr)"] {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin-top: 28px !important;
  }

  /* Reduce font on big numbers */
  .avics-lp [style*="font-size: 54px"] { font-size: 28px !important; }
  .avics-lp [style*="font-size: 56px"] { font-size: 32px !important; }
  .avics-lp [style*="font-size: 32px"] { font-size: 22px !important; }

  /* ==== LINE BREAK CONTROL on mobile ==== */
  /* デスクトップ用の改行はモバイルでは自然折返しに */
  .avics-lp h1 br,
  .avics-lp h2 br,
  .avics-lp p br,
  .avics-lp .avics-hero-strengths br,
  .avics-lp #top p br,
  .avics-lp #top h1 br {
    display: none !important;
  }
  /* 新HERO見出しの改行は維持（モックデザイン通り） */
  .avics-lp .avics-hero-h1 br { display: inline !important; }
  /* ただし強みカード内の改行は維持（コンパクト表示のため） */
  .avics-lp .avics-hs-label br { display: inline !important; }
  /* 文字の自動折返しを許可 */
  .avics-lp h1, .avics-lp h2, .avics-lp h3, .avics-lp p,
  .avics-lp [style*="white-space: nowrap"] {
    word-break: auto-phrase;
    overflow-wrap: anywhere;
  }
  /* 「お見積り後の追加請求なし」「遺品整理士在籍」など nowrap指定の重要文言は保持 */
  .avics-check-label, .avics-mm-cta a, .avics-sticky-text strong {
    white-space: nowrap !important;
  }

  /* ==== HEADER PHONE INFO (mobile only, right-aligned with icon) ==== */
  .avics-header-phone-mobile {
    display: flex !important;
    align-items: center !important;
    gap: 6px;
    margin-left: auto;
    text-decoration: none;
    padding: 4px 0;
    min-width: 0;
    flex-shrink: 0;
  }
  .avics-hp-icon { flex-shrink: 0; }
  .avics-hp-icon svg { width: 18px !important; height: 18px !important; }
  .avics-hp-text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    text-align: right;
    align-items: flex-end;
    white-space: nowrap;
  }
  .avics-hp-l1, .avics-hp-l3 {
    font-size: 8.5px;
    font-weight: 700;
    color: #6b7888;
    white-space: nowrap;
    letter-spacing: -0.01em;
  }
  .avics-hp-l3 { display: none !important; }
  .avics-hp-l2 {
    font-family: 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', sans-serif;
    font-weight: 900;
    font-size: 15px;
    color: #0D4F9E;
    letter-spacing: -0.02em;
    margin: 0;
    white-space: nowrap !important;
  }
  /* Compact header logo on mobile - smaller to leave room for phone */
  .avics-lp header > div > a[href="<?php echo esc_url( home_url( '/' ) ); ?>"],
  .avics-lp header > div > a[href*="abix-recycle.com"]:first-child,
  .avics-lp header > div > a:first-of-type {
    flex-shrink: 1;
    min-width: 0;
  }
  .avics-lp header > div > a:first-of-type > div:first-child {
    font-size: 8.5px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .avics-lp header > div > a:first-of-type > div:nth-child(2) {
    font-size: 14px !important;
    white-space: nowrap;
  }

  /* ==== HAMBURGER button: ヘッダーの少し下の右に固定 (高z-index) ==== */
  #avics-hamburger {
    display: inline-flex !important;
    position: fixed !important;
    top: 70px;
    right: 12px;
    z-index: 9998 !important;
    width: 44px; height: 44px;
    padding: 0 !important;
    margin: 0 !important;
    background: #2B7FD4 !important;
    border: 2px solid #fff !important;
    color: #fff !important;
    border-radius: 50% !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 6px 18px rgba(13,79,158,0.35);
    cursor: pointer !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
    -webkit-tap-highlight-color: rgba(255,255,255,0.2);
    touch-action: manipulation;
  }
  #avics-hamburger:active {
    transform: translateY(0) scale(0.95) !important;
  }
  /* メニュー全体のz-index も底上げしてハンバーガーより上に */
  #avics-mobile-menu {
    z-index: 9999 !important;
  }
  #avics-hamburger.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  #avics-hamburger svg { width: 22px !important; height: 22px !important; }
  /* Hide header CTAs on mobile (replaced by sticky footer + hamburger menu) */
  .avics-lp .avics-header-ctas > a { display: none !important; }
  .avics-lp .avics-header-ctas { gap: 0 !important; }

  /* ==== HERO (new design) — Mobile adjustments ==== */
  .avics-hero-main {
    min-height: 380px !important;
  }
  .avics-hero-overlay {
    padding: 24px 14px 28px !important;
    max-width: 100% !important;
  }
  .avics-hero-pill {
    font-size: 14px !important;
    gap: 6px !important;
  }
  .avics-hero-pill-inner {
    padding: 6px 14px !important;
    font-size: 12px !important;
  }
  .avics-hero-pill-inner svg { width: 14px !important; height: 14px !important; }
  .avics-hero-slash {
    font-size: 16px !important;
  }
  .avics-hero-h1 {
    font-size: 24px !important;
    line-height: 1.4 !important;
    margin: 14px 0 4px !important;
  }
  .avics-hero-brush {
    width: 70% !important;
    height: 10px !important;
    margin-bottom: 20px !important;
  }
  .avics-hero-trust {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
    max-width: 100% !important;
  }
  .avics-trust-card {
    padding: 10px 4px 8px !important;
    border-radius: 12px !important;
    gap: 4px !important;
  }
  .avics-trust-icon { width: 36px !important; height: 36px !important; }
  .avics-trust-icon svg { width: 20px !important; height: 20px !important; }
  .avics-trust-google svg { width: 22px !important; height: 22px !important; }
  .avics-trust-icon > span { font-size: 13px !important; }
  .avics-trust-sub { font-size: 10px !important; }
  .avics-trust-main { font-size: 17px !important; }
  .avics-trust-stars { font-size: 10px !important; letter-spacing: 1px !important; }
  .avics-trust-note { font-size: 9px !important; line-height: 1.4 !important; }

  /* Bottom blue stats bar — mobile compact */
  .avics-hero-stats {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 18px 16px !important;
    text-align: center;
  }
  .avics-stats-satisfaction { align-self: center; }
  .avics-laurel { padding: 10px 14px !important; }
  .avics-laurel-l, .avics-laurel-r { width: 24px !important; height: 50px !important; }
  .avics-laurel-num { font-size: 22px !important; }
  .avics-laurel-num small { font-size: 13px !important; }
  .avics-stats-record { align-items: center !important; }
  .avics-record-num { font-size: 38px !important; }
  .avics-record-main { font-size: 16px !important; gap: 6px !important; }
  .avics-record-unit { font-size: 13px !important; }
  .avics-record-note { font-size: 11px !important; text-align: center !important; }
  .avics-stats-truck {
    justify-self: center;
  }
  .avics-stats-truck img { width: 140px !important; }

  /* Hide old desktop feature cards if any remain */
  .avics-lp #top [style*="grid-template-columns: repeat(3, 1fr)"] { display: none !important; }
  /* Hide unused mobile strengths from previous design */
  .avics-hero-strengths { display: none !important; }

  /* ==== CHECK STRIP: marquee 1-row scrolling, attached to header ==== */
  .avics-check-section {
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden;
    background: #2B7FD4 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
  }
  /* Remove any spacing between header and check strip */
  .avics-lp header + .avics-check-section,
  .avics-lp header + section.avics-check-section {
    margin-top: 0 !important;
  }
  .avics-check-section .avics-check-grid {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    padding: 10px 0 !important;
    width: max-content !important;
    max-width: none !important;
    animation: avicsMarquee 24s linear infinite;
  }
  .avics-check-section .avics-check-item {
    padding: 0 22px;
    border-right: 1px solid rgba(255,255,255,0.3);
    flex-shrink: 0;
  }
  .avics-check-section .avics-check-item svg { stroke: #FFD500 !important; }
  .avics-check-label { font-size: 14px !important; color: #fff !important; }
  /* Show clones on mobile for seamless loop */
  .avics-check-clone { display: flex !important; }
  @keyframes avicsMarquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }

  /* ==== CAMPAIGN SLIDER: smaller card on mobile ==== */
  .avics-lp section[style*="background: #fff; padding: 40px 0 30px;"],
  .avics-lp section[style*="background: #fff; padding: 40px 0 40px;"] {
    padding: 18px 0 14px !important;
  }
  .avics-lp .avics-slider-shell { padding: 0 8px !important; }
  .avics-lp .avics-slider h2 { font-size: 16px !important; margin: 4px 0 0 !important; }
  .avics-lp .avics-slider-controls { margin-top: 12px !important; gap: 10px !important; }
  .avics-lp .avics-slider-controls button {
    width: 32px !important; height: 32px !important; font-size: 13px !important;
  }
  .avics-lp .avics-slider-dots button { width: 6px !important; height: 6px !important; }
  /* Smaller banner slides on mobile */
  .avics-lp .avics-slider .avics-slide { padding: 0 6px !important; }
  .avics-lp .avics-slider .avics-slide a img,
  .avics-lp .avics-slider .avics-slide a > div {
    border-radius: 14px !important;
  }
  /* Bigger peek effect: show more of next slide */
  .avics-lp #campaign-slider-wrap { /* placeholder */ }

  /* ==== HEADER: Mobile icon nav row visible (centered, balanced) ==== */
  .avics-mobile-icon-nav {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr);
    gap: 6px;
    padding: 8px 10px 10px;
    background: #fff;
    border-top: 1px solid #e7eef5;
    justify-items: center;
    align-items: stretch;
    max-width: 100%;
    margin: 0 auto;
  }
  .avics-mobile-icon-nav a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 4px;
    text-decoration: none;
    padding: 6px 2px;
    color: #0D4F9E;
    font-size: 9.5px;
    font-weight: 700;
    text-align: center;
    line-height: 1.3;
    border: 1px solid #e3ebf3;
    border-radius: 8px;
    background: #fff;
    width: 100%;
  }
  .avics-mn-icon {
    width: 32px; height: 32px;
    background: #E8F4FF;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .avics-mn-icon svg { width: 18px; height: 18px; }

  /* ==== HERO: zero gap to next section (CHECK STRIP) ==== */
  .avics-hero { margin: 0 !important; padding: 0 !important; line-height: 0; }
  .avics-hero + .avics-check-section,
  .avics-hero + section { margin-top: 0 !important; }

  /* ==== PRICING: stacked vertically, compact (both visible in one screen) ==== */
  .avics-pricing-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .avics-pricing-card { padding: 16px 18px 18px !important; }
  .avics-pricing-card [style*="font-size: 36px"] { font-size: 30px !important; }
  .avics-pricing-card [style*="font-size: 19px"] { font-size: 16px !important; }
  .avics-pricing-card .avics-pricing-feats { display: none !important; }
  .avics-pricing-card p { font-size: 12px !important; margin: 4px 0 6px !important; }

  /* ==== NEWS section mobile: hide image, show date+title+category+link ==== */
  .avics-news-card { display: grid !important; grid-template-columns: 1fr !important; }
  .avics-news-card > a:first-child { display: none !important; }
  .avics-news-card > div { padding: 16px 18px !important; }
  .avics-news-card h3 { font-size: 14.5px !important; margin: 4px 0 8px !important; }
  .avics-news-card > div > div:first-child::after {
    content: " ｜ お知らせ";
    background: #2B7FD4;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    margin-left: 8px;
    letter-spacing: 0.05em;
  }
  .avics-news-card > div > div:first-child {
    display: flex !important;
    align-items: center !important;
    gap: 4px;
    font-size: 11.5px !important;
  }
}

/* ========================================
   JAPANESE TYPOGRAPHY — balanced wrapping
   ======================================== */
@media (max-width: 767px) {
  /* 見出し: 行のバランスを整えて孤立を防ぐ */
  .avics-lp h1, .avics-lp h2, .avics-lp h3,
  .avics-lp [style*="font-size: 26px"],
  .avics-lp [style*="font-size: 24px"],
  .avics-lp [style*="font-size: 22px"],
  .avics-lp [style*="font-size: 19px"],
  .avics-lp [style*="font-weight: 900"] {
    /* text-wrap: balance は対応ブラウザで行長を均等化 */
    text-wrap: balance;
    /* 句読点・括弧の改行ルール */
    line-break: strict;
    /* 単語の途中で切らない (英数字は普通に折返し) */
    overflow-wrap: anywhere;
    /* word-break: keep-all は弊害が大きいので外す */
    word-break: normal;
  }

  /* 本文: pretty で孤立行を回避 */
  .avics-lp p, .avics-lp .avics-hs-label {
    text-wrap: pretty;
    line-break: strict;
  }

  /* 句読点・括弧を行頭に置かない (はみ出し許容) */
  .avics-lp h1, .avics-lp h2, .avics-lp h3, .avics-lp p {
    hanging-punctuation: allow-end;
  }
}
