/* ==========================================================
   ログミーFinance 英訳LPテイスト — Zoho Sites カスタムCSS v2
   ========================================================== */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap');

:root{
  --lgm-primary:#1E5FE6;
  --lgm-primary-hover:#1749B8;
  --lgm-primary-pale:#EEF3FE;
  --lgm-text:#3E444E;
  --lgm-muted:#8B93A0;
  --lgm-bg-alt:#F7F9FC;
  --lgm-border:#E7ECF3;
}

/* ---------- 書体・本文 ---------- */
html body, html body *:not(i):not([class*="icon"]):not([class*="zpicon"]){
  font-family:'Noto Sans JP',sans-serif !important;
}
html body{ color:var(--lgm-text) !important; -webkit-font-smoothing:antialiased; }
html body p, html body li{ color:var(--lgm-text); line-height:2; letter-spacing:0.02em; }

/* ---------- 見出し（紺→LPの黒） ---------- */
html body h1, html body h2, html body h3, html body h4,
html body h1 a, html body h2 a, html body h3 a, html body h4 a{
  color:var(--lgm-text) !important;
  font-weight:700 !important;
  letter-spacing:0.02em !important;
}
html body h1{ font-size:clamp(28px,3.4vw,42px) !important; line-height:1.4 !important; }

/* ---------- ヘッダー ---------- */
html body header, html body [class*="theme-header"]{
  background:#ffffff !important;
  box-shadow:none !important;
  border-bottom:1px solid #E8EDF5 !important;
}
/* ロゴ文字 */
html body [class*="logo"] a, html body [class*="site-name"], html body [class*="site-name"] a{
  color:var(--lgm-text) !important;
  font-weight:700 !important;
}
/* ナビ */
html body nav a, html body [class*="menu"] a{
  color:var(--lgm-text) !important;
  font-size:14px !important;
  font-weight:700 !important;
  background:transparent !important;
  transition:color .2s ease !important;
}
html body nav a:hover, html body [class*="menu"] a:hover{ color:var(--lgm-primary) !important; }
/* 選択中メニュー（水色ベタ→青文字＋下線） */
html body [class*="menu-selected"], html body [class*="menu-selected"] a,
html body [class*="menu"] [class*="active"], html body [class*="menu"] [class*="active"] a,
html body nav [aria-current="page"]{
  background:transparent !important;
  color:var(--lgm-primary) !important;
  box-shadow:inset 0 -2px 0 var(--lgm-primary) !important;
  border-radius:0 !important;
}

/* ---------- リンク ---------- */
html body a{ transition:color .2s ease, opacity .2s ease; }
html body main a, html body [class*="content"] a{ color:var(--lgm-primary); }

/* ---------- ブログ一覧カード ---------- */
html body [class*="blog"] article,
html body [class*="blog-list"] > *,
html body [class*="post-list"] > *,
html body [class*="blogpost"]:not([class*="content"]):not([class*="title"]):not([class*="date"]){
  background:#ffffff !important;
  border:1px solid var(--lgm-border) !important;
  border-radius:16px !important;
  box-shadow:0 2px 14px rgba(62,68,78,0.05) !important;
  overflow:hidden !important;
  transition:box-shadow .3s ease, transform .3s ease !important;
}
html body [class*="blog"] article:hover,
html body [class*="blog-list"] > *:hover,
html body [class*="post-list"] > *:hover{
  box-shadow:0 12px 32px rgba(30,95,230,0.12) !important;
  transform:translateY(-2px);
}
/* カードのタイトル */
html body [class*="blog"] h2, html body [class*="blog"] h3,
html body [class*="blog"] h2 a, html body [class*="blog"] h3 a{
  color:var(--lgm-text) !important;
  font-size:19px !important;
  line-height:1.6 !important;
}
html body [class*="blog"] h2 a:hover, html body [class*="blog"] h3 a:hover{ color:var(--lgm-primary) !important; }
/* カードの本文 */
html body [class*="blog"] p{ font-size:14.5px !important; line-height:1.95 !important; }
/* Read more → 青のテキストリンク＋矢印 */
html body a[class*="read"], html body [class*="read-more"] a, html body [class*="readmore"] a{
  color:var(--lgm-primary) !important;
  font-weight:700 !important;
  font-size:14px !important;
}
html body a[class*="read"]::after, html body [class*="read-more"] a::after, html body [class*="readmore"] a::after{
  content:" \2192";
}
/* 日付エリア（カード下部のグレー帯） */
html body [class*="blog"] [class*="date"], html body [class*="blog"] time,
html body [class*="blog"] [class*="footer"], html body [class*="blog"] [class*="meta"]{
  background:transparent !important;
  color:var(--lgm-muted) !important;
  font-size:12.5px !important;
  border-top:1px solid var(--lgm-border) !important;
}
/* サムネイル */
html body [class*="blog"] img{ display:block; width:100%; height:auto; }

/* ---------- サイドバー（Categories / Tags） ---------- */
html body aside, html body [class*="sidebar"] > *, html body [class*="widget"]{
  background:#ffffff !important;
  border:1px solid var(--lgm-border) !important;
  border-radius:16px !important;
  box-shadow:none !important;
  overflow:hidden;
}
html body aside h2, html body aside h3, html body aside h4,
html body [class*="sidebar"] h2, html body [class*="sidebar"] h3, html body [class*="sidebar"] h4,
html body [class*="widget"] h2, html body [class*="widget"] h3, html body [class*="widget"] h4{
  background:var(--lgm-bg-alt) !important;
  color:var(--lgm-text) !important;
  font-size:14px !important;
  letter-spacing:0.12em !important;
  border-bottom:1px solid var(--lgm-border) !important;
}
html body aside a, html body [class*="sidebar"] a, html body [class*="widget"] a{
  color:var(--lgm-text) !important;
}
html body aside a:hover, html body [class*="sidebar"] a:hover, html body [class*="widget"] a:hover{
  color:var(--lgm-primary) !important;
}
/* タグ → 薄い青のピル */
html body [class*="tag"] a, html body a[class*="tag"]{
  display:inline-block;
  background:var(--lgm-primary-pale) !important;
  color:var(--lgm-primary) !important;
  font-size:12.5px !important;
  font-weight:700 !important;
  border-radius:999px !important;
  padding:5px 14px !important;
  border:none !important;
}
html body [class*="tag"] a:hover, html body a[class*="tag"]:hover{
  background:var(--lgm-primary) !important;
  color:#ffffff !important;
}

/* ---------- ヘッダー固定・ロゴ上下の余白 ---------- */
html body [data-headercontainer]{
  position:sticky !important;
  top:0 !important;
  z-index:1000 !important;
  background:#ffffff !important;
  transform:none !important;
}
/* Zohoの2段階固定を無効化：ロゴの段・メニューの段はヘッダーと一緒に動かす */
html body [data-headercontainer] .theme-header,
html body [data-headercontainer] .theme-header-topbar,
html body [data-headercontainer] .theme-header-navigation-style{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  width:auto !important;
  box-shadow:none !important;
}
html body [data-headercontainer] .theme-header-topbar{ position:static !important; }
html body [data-headercontainer] .theme-branding-info,
html body [data-headercontainer] .theme-logo-parent{
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  min-height:0 !important;
}
html body [data-headercontainer] .theme-header,
html body [data-headercontainer] .theme-header > .zpcontainer{
  padding-top:0 !important;
  padding-bottom:0 !important;
  min-height:0 !important;
}
/* ロゴの段：上下18px */
html body [data-headercontainer] .theme-header:not(.theme-header-navigation-style) .theme-branding-info{
  padding-top:18px !important;
  padding-bottom:18px !important;
}
/* メニューの段：上下20px（下線は文字の下に表示） */
html body [data-headercontainer] .theme-header-navigation-style .theme-menu > ul > li > a{
  padding-top:20px !important;
  padding-bottom:20px !important;
}
@media (max-width:767px){
  html body [data-headercontainer] .theme-header:not(.theme-header-navigation-style) .theme-branding-info{
    padding-top:14px !important;
    padding-bottom:14px !important;
  }
}
@media (max-width:767px){
  /* SP：h1の上の余白を狭く（トップ・記事詳細とも） */
  html body .zpsection[data-theme-content-container]{
    padding-top:24px !important;
  }
  html body #thememaincontent h1.theme-blog-h1,
  html body .theme-single-post .theme-blog-post-header-area,
  html body .theme-single-post h1.theme-blog-heading{
    margin-top:0 !important;
    padding-top:0 !important;
  }
}

/* ---------- ヘッダー右上：メディアへのボタン（PCのみ。JSで挿入） ---------- */
/* ロゴの段を基準に、ボタンを右端・上下中央に固定 */
/* 基準はロゴの段の中のサイト幅の枠（.zpcontainer 1140px） */
html body [data-headercontainer] .theme-header:not(.theme-header-navigation-style) > .zpcontainer:not(.theme-responsive-menu-area){
  position:relative !important;
}
html body [data-headercontainer] .theme-header:not(.theme-header-navigation-style) .theme-header-topbar{
  position:static !important;
}
html body [data-headercontainer] .theme-header:not(.theme-header-navigation-style) .theme-header-topbar{
  border:none !important;
  box-shadow:none !important;
  background:transparent !important;
}
html body .lgm-header-cta{
  position:absolute !important;
  top:50% !important;
  right:15px !important;
  left:auto !important;
  transform:translateY(-50%) !important;
  margin:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  padding:10px 20px !important;
  background:#1E5FE6 !important;
  color:#ffffff !important;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.5 !important;
  border:none !important;
  border-radius:10px !important;
  box-shadow:none !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  transition:background-color .3s ease !important;
}
html body .lgm-header-cta:hover{
  background:#1749B8 !important;
  color:#ffffff !important;
}
@media (max-width:991px){
  html body .lgm-header-cta{ display:none !important; }
}

/* ---------- トップ（ブログ一覧 data-zs-app="blogs"） ---------- */
/* h1の下の余白 */
html body #thememaincontent h1.theme-blog-h1{
  font-size:28px !important;
  line-height:1.5 !important;
  margin-bottom:48px !important;
}
/* カードの並び：間隔を広げ、行ごとに高さをそろえる */
html body .zprow[data-zs-app="blog_comments"]{
  display:flex !important;
  flex-wrap:wrap !important;
  row-gap:56px !important;
  margin-left:-28px !important;
  margin-right:-28px !important;
}
html body .zprow[data-zs-app="blog_comments"] > [class*="zpcol"]{
  display:flex !important;
  float:none !important;
  padding-left:28px !important;
  padding-right:28px !important;
  margin-bottom:0 !important;
  box-sizing:border-box !important;
}
/* カード */
html body .zprow[data-zs-app="blog_comments"] .theme-blog-container{
  display:flex !important;
  flex-direction:column !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:#ffffff !important;
  border:1px solid var(--lgm-border) !important;
  border-radius:16px !important;
  box-shadow:0 2px 14px rgba(62,68,78,0.05) !important;
  overflow:hidden !important;
  transition:box-shadow .3s ease, transform .3s ease !important;
}
html body .zprow[data-zs-app="blog_comments"] .theme-blog-container:hover{
  box-shadow:0 12px 32px rgba(30,95,230,0.12) !important;
  transform:translateY(-2px);
}
/* アイキャッチ：背景色とpaddingを消す */
html body .theme-blog-cover-img-container,
html body .theme-blog-cover-img-container-inner,
html body .theme-blog-cover-img-container a,
html body .theme-blog-cover-img-container picture{
  display:block !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  border:none !important;
  height:auto !important;
}
html body img.theme-blog-cover-img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  margin:0 !important;
  border-radius:0 !important;
}
/* カード内のテキスト */
html body .zprow[data-zs-app="blog_comments"] .theme-blog-part{
  padding:0 36px !important;
  margin:0 !important;
  border:none !important;
  background:transparent !important;
}
html body .zprow[data-zs-app="blog_comments"] .theme-blog-heading-author{ padding-top:32px !important; padding-bottom:14px !important; }
html body .zprow[data-zs-app="blog_comments"] h3.theme-blog-heading{ margin:0 !important; }
/* タイトル下の本文：2行で省略 */
html body .zprow[data-zs-app="blog_comments"] .theme-blog-part:not(.theme-blog-heading-author):not(.theme-blog-readmore):not(.theme-blog-date-container){
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  line-clamp:2 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
/* さらに表示する → ボタン（カード下部にそろえる） */
html body .zprow[data-zs-app="blog_comments"] .theme-blog-readmore{
  margin-top:auto !important;
  padding-top:28px !important;
  padding-bottom:32px !important;
  display:flex !important;
  justify-content:center !important;
  text-align:center !important;
}
html body .theme-blog-readmore a{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  justify-content:center !important;
  width:66% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  padding:12px 24px !important;
  background:var(--lgm-primary) !important;
  color:#ffffff !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1.5 !important;
  border-radius:10px !important;
  text-decoration:none !important;
  transition:background-color .3s ease !important;
}
html body .theme-blog-readmore a:hover{
  background:var(--lgm-primary-hover) !important;
  color:#ffffff !important;
}
/* 日付：線は1本だけ */
html body .zprow[data-zs-app="blog_comments"] .theme-blog-date-container{
  padding:16px 36px !important;
  border-top:1px solid var(--lgm-border) !important;
}
html body .zprow[data-zs-app="blog_comments"] .theme-blog-date-container *{
  border:none !important;
  padding:0 !important;
  background:transparent !important;
}
@media (max-width:767px){
  html body #thememaincontent h1.theme-blog-h1{ font-size:22px !important; margin-bottom:32px !important; }
  html body .zprow[data-zs-app="blog_comments"]{
    row-gap:32px !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  html body .zprow[data-zs-app="blog_comments"] > [class*="zpcol"]{
    width:100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  html body #thememaincontent .theme-blog-container-column{ padding-left:0 !important; padding-right:0 !important; margin-left:0 !important; margin-right:0 !important; }
  html body #thememaincontent .zprow[data-zs-app="blog_comments"] .theme-blog-part{ padding-left:20px !important; padding-right:20px !important; }
  html body #thememaincontent .zprow[data-zs-app="blog_comments"] .theme-blog-date-container{ padding-left:20px !important; padding-right:20px !important; }
}

/* ---------- footerのロゴ ---------- */
html body .theme-footer-area .zpelem-image img{
  width:160px !important;
  height:auto !important;
  max-width:100% !important;
}
@media (max-width:767px){
  html body .theme-footer-area .zpelem-image img{ width:140px !important; }
}

/* ---------- 記事詳細ページ（.theme-single-post） ---------- */
/* 枠線・影・角丸を外す */
html body .theme-single-post,
html body .theme-single-post .theme-blog-container,
html body .theme-single-post .theme-blog-part,
html body .theme-single-post .theme-blog-post-social-share{
  border:none !important;
  box-shadow:none !important;
  border-radius:0 !important;
  transform:none !important;
  background:transparent !important;
}
/* コンテンツ幅：タイトル・本文・SNS・タグすべて800px（header・footerは対象外） */
html body .theme-single-post .theme-blog-container{
  width:100% !important;
  max-width:800px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}
/* 本文内のZohoレイアウト枠の幅・左右余白をリセット */
html body .theme-single-post .theme-blog-post-content .zpcontainer,
html body .theme-single-post .theme-blog-post-content .zpsection,
html body .theme-single-post .theme-blog-post-content .zprow,
html body .theme-single-post .theme-blog-post-content .zpelem-col{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}
/* 画像・表・フォームのはみ出し防止（Zohoの1110px指定を上書き） */
html body .theme-single-post .zpimage-container figure img{
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
}
html body .theme-single-post table,
html body .theme-single-post iframe{ max-width:100% !important; }
/* SP：左右余白は外側（コンテンツ領域）だけ20px */
@media (max-width:767px){
  html body #thememaincontent,
  html body #thememaincontent .zprow,
  html body #thememaincontent .theme-single-post,
  html body #thememaincontent .theme-blog-container,
  html body #thememaincontent .theme-blog-part,
  html body #thememaincontent .theme-blog-post-social-share,
  html body #thememaincontent .zpcontent-container,
  html body #thememaincontent .zpsection,
  html body #thememaincontent .zpcontainer,
  html body #thememaincontent .zpcontainer-fluid,
  html body #thememaincontent .zpelem-col,
  html body #thememaincontent .zpelement,
  html body .zpsection[data-theme-content-container]{
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    max-width:100% !important;
  }
  html body .zpsection[data-theme-content-container]{
    padding-left:20px !important;
    padding-right:20px !important;
  }
}

/* タイトル */
html body .theme-single-post h1.theme-blog-heading{
  font-size:28px !important;
  line-height:1.5 !important;
  margin:0 0 14px !important;
}
/* 日付 */
html body .theme-single-post .theme-blog-post-details-area{
  margin-top:0 !important;
  margin-bottom:20px !important;
  padding-bottom:0 !important;
  border:none !important;
}
html body .theme-single-post .theme-blog-date{
  color:var(--lgm-muted) !important;
  font-size:13.5px !important;
  background:transparent !important;
  border:none !important;
}
@media (max-width:767px){
  html body .theme-single-post h1.theme-blog-heading{ font-size:22px !important; margin-bottom:10px !important; }
  html body .theme-single-post .theme-blog-post-details-area{ margin-bottom:14px !important; }
}

/* 日付の下：ヘッダーエリア・本文先頭の余白も詰める */
html body .theme-single-post .theme-blog-post-header-area{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
html body .theme-single-post .theme-blog-post-content{
  margin-top:0 !important;
  padding-top:0 !important;
}
/* 本文先頭のZohoセクションが持つ上余白を消す */
html body .theme-single-post .theme-blog-post-content .zpcontent-container,
html body .theme-single-post .theme-blog-post-content .zpcontent-container > .zpsection:first-child,
html body .theme-single-post .theme-blog-post-content .zpcontent-container > .zpsection:first-child > .zpcontainer,
html body .theme-single-post .theme-blog-post-content .zpcontent-container > .zpsection:first-child .zprow:first-of-type,
html body .theme-single-post .theme-blog-post-content .zpcontent-container > .zpsection:first-child .zpelem-col:first-of-type,
html body .theme-single-post .theme-blog-post-content .zpcontent-container > .zpsection:first-child .zpelem-col:first-of-type > .zpelement:first-of-type{
  margin-top:0 !important;
  padding-top:0 !important;
}
/* 本文のh2：背景つき見出し */
html body .theme-single-post .theme-blog-post-content h2.zpheading{
  background:#f4f5fb !important;
  padding:14px 20px !important;
  border-radius:8px !important;
  border:none !important;
  font-size:22px !important;
  line-height:1.5 !important;
}
@media (max-width:767px){
  html body .theme-single-post .theme-blog-post-content h2.zpheading{
    padding:12px 16px !important;
    font-size:19px !important;
  }
}

/* SNSボタン：縮めず左寄せ */
html body .theme-single-post .zpsocial-share-container{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:12px !important;
  width:100% !important;
  margin:48px 0 0 !important;
  padding:0 !important;
}
html body .theme-single-post .zpsocial-share-item{
  flex:0 0 auto !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
}
html body .theme-single-post .zpsocial-share-item svg{
  width:20px !important;
  height:20px !important;
  max-width:none !important;
  flex:0 0 auto !important;
}

/* タグ・カテゴリー：区切り線を消す */
html body .theme-single-post .theme-blog-post-footer-area,
html body .theme-single-post .theme-blog-post-footer-content{
  border:none !important;
  background:transparent !important;
}

/* footer上の線と余白：空のコメント欄を非表示、footerの上線を消す */
html body .theme-single-blog-comment-container:has(#comments:empty){ display:none !important; }
html body .theme-single-blog-comment-container,
html body .theme-footer-area,
html body .theme-footer-area > *:first-child{
  border-top:none !important;
  box-shadow:none !important;
}
html body .zpsection[data-theme-content-container]{ border-bottom:none !important; }

/* ---------- 記事本文 ---------- */
html body article h2{ padding-bottom:14px; border-bottom:1px solid var(--lgm-border); margin-top:2.4em !important; }
html body article h3{ padding-left:14px; border-left:3px solid var(--lgm-primary); margin-top:2em !important; }
html body article img{ border-radius:12px; max-width:100%; height:auto; }
html body article ul li::marker{ color:var(--lgm-primary); }
html body blockquote{
  margin:2em 0 !important; padding:20px 24px !important;
  background:var(--lgm-bg-alt) !important; border-left:3px solid var(--lgm-primary) !important;
  border-radius:0 10px 10px 0;
}

/* ---------- ボタン ---------- */
html body [class*="zpbutton"], html body button:not([class*="menu"]):not([class*="toggle"]), html body input[type="submit"]{
  background:var(--lgm-primary) !important;
  border:1.5px solid var(--lgm-primary) !important;
  color:#ffffff !important;
  font-weight:700 !important;
  border-radius:10px !important;
  transition:background-color .3s ease, border-color .3s ease !important;
}
html body [class*="zpbutton"]:hover, html body button:not([class*="menu"]):not([class*="toggle"]):hover, html body input[type="submit"]:hover{
  background:var(--lgm-primary-hover) !important;
  border-color:var(--lgm-primary-hover) !important;
  color:#ffffff !important;
}

/* ---------- フッター（濃紺にして白ロゴを見せる） ---------- */
html body footer, html body [class*="theme-footer"]{
  background:#1F2A3D !important;
  border-top:none !important;
}
html body footer *, html body [class*="theme-footer"] *{ background-color:transparent !important; }
html body footer h1, html body footer h2, html body footer h3, html body footer h4,
html body [class*="theme-footer"] h3, html body [class*="theme-footer"] h4{
  color:#ffffff !important; font-size:15px !important; letter-spacing:0.06em !important;
}
html body footer p, html body footer li, html body footer span,
html body [class*="theme-footer"] p, html body [class*="theme-footer"] span{
  color:#AEB8C8 !important; font-size:13.5px !important;
}
html body footer a, html body [class*="theme-footer"] a{ color:#DCE3EE !important; font-size:13.5px !important; }
html body footer a:hover, html body [class*="theme-footer"] a:hover{ color:#ffffff !important; }
html body footer hr, html body footer [class*="divider"]{ border-color:rgba(255,255,255,0.12) !important; }

/* ---------- SP ---------- */
@media (max-width:767px){
  html body p, html body li{ font-size:15px; line-height:1.95; }
  html body [class*="blog"] h2, html body [class*="blog"] h3{ font-size:17px !important; }
}

/* ---------- ロゴ ---------- */
/* PC：180px */
html body header [class*="logo"], html body [class*="theme-header"] [class*="logo"]{
  display:block !important;
  visibility:visible !important;
  width:180px !important;
  max-width:180px !important;
  min-width:0 !important;
  flex:0 0 180px !important;
}
html body header [class*="logo"] a, html body header [class*="logo"] picture,
html body header [class*="logo"] img, html body header [class*="logo"] svg,
html body [class*="theme-header"] [class*="logo"] a,
html body [class*="theme-header"] [class*="logo"] img,
html body [class*="theme-header"] [class*="logo"] svg{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:180px !important;
  max-width:180px !important;
  min-width:0 !important;
  height:auto !important;
  max-height:none !important;
}

/* SP：140px */
@media (max-width:767px){
  html body header [class*="logo"], html body [class*="theme-header"] [class*="logo"]{
    width:140px !important;
    max-width:140px !important;
    flex:0 0 140px !important;
  }
  html body header [class*="logo"] a, html body header [class*="logo"] picture,
  html body header [class*="logo"] img, html body header [class*="logo"] svg,
  html body [class*="theme-header"] [class*="logo"] a,
  html body [class*="theme-header"] [class*="logo"] img,
  html body [class*="theme-header"] [class*="logo"] svg{
    width:140px !important;
    max-width:140px !important;
  }
}

/* ---------- コンテンツ下とfooterの間隔 ---------- */
html body .zpsection[data-theme-content-container]{
  padding-bottom:96px !important;
}
@media (max-width:767px){
  html body .zpsection[data-theme-content-container]{ padding-bottom:64px !important; }
}

/* ---------- SP：フォームをコンテンツ幅いっぱいに ---------- */
@media (max-width:767px){
  html body #thememaincontent .zpelem-codesnippet,
  html body #thememaincontent .zpsnippet-container,
  html body #thememaincontent #zf_div_wp{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  html body #thememaincontent #zf_div_wp iframe{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
  }
}

/* ---------- ページトップへ戻るボタン（JSで挿入） ---------- */
html body .lgm-pagetop{
  position:fixed !important;
  right:24px !important;
  bottom:24px !important;
  z-index:999 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:48px !important;
  height:48px !important;
  padding:0 !important;
  border:none !important;
  border-radius:50% !important;
  background:#1E5FE6 !important;
  color:#ffffff !important;
  box-shadow:0 4px 16px rgba(30,95,230,0.25) !important;
  cursor:pointer !important;
  opacity:0 !important;
  visibility:hidden !important;
  transform:translateY(8px) !important;
  transition:opacity .3s ease, visibility .3s ease, transform .3s ease, background-color .3s ease !important;
}
html body .lgm-pagetop.is-show{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}
html body .lgm-pagetop:hover{ background:#1749B8 !important; }
html body .lgm-pagetop svg{ width:20px !important; height:20px !important; display:block !important; }
@media (max-width:767px){
  html body .lgm-pagetop{ right:16px !important; bottom:16px !important; width:44px !important; height:44px !important; }
}

/* ---------- footer：コピーライトとプライバシーポリシー ---------- */
html body .theme-footer-area a[href*="privacy"]{ white-space:nowrap !important; }
@media (max-width:767px){
  html body .theme-footer-area p:has(> span > a[href*="privacy"]){
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:8px !important;
  }
  html body .theme-footer-area span:has(> a[href*="privacy"]){
    order:-1 !important;
    display:block !important;
    font-size:0 !important;
    margin-top:0 !important;
  }
  html body .theme-footer-area span:has(> a[href*="privacy"]) a{
    font-size:13.5px !important;
  }
}

/* ---------- SP：ハンバーガーメニューを画面幅で開く ---------- */
@media (max-width:991px){
  html body [data-headercontainer] .theme-responsive-menu-area{
    position:static !important;
  }
  html body [data-headercontainer] .theme-responsive-menu[data-zp-responsive-container]{
    left:0 !important;
    right:0 !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    background:#ffffff !important;
  }
  html body [data-headercontainer] .theme-responsive-menu[data-zp-responsive-container] li,
  html body [data-headercontainer] .theme-responsive-menu[data-zp-responsive-container] a{
    width:100% !important;
    white-space:normal !important;
    box-sizing:border-box !important;
  }
}
