@charset "UTF-8";

/*
Theme Name: SEO Minimal
Theme URI: https://example.com/
Author: Local Dev
Description: Minimal, fast, SEO-oriented WordPress theme with a very small file set.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 8.0
Text Domain: seo-minimal
*/


:root {
  --bg: #f0f0f0;
  --text: #111111;
  --muted: #666666;
  --line: #e5e5e5;
  --accent: #0b57d0;
}

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

img{
  vertical-align:bottom;
}

html {
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Noto Sans JP", sans-serif;
  background: var(--bg);
  color: var(--text);
}

a {
  color: var(--accent);
  text-underline-offset: 2px;
}

a:hover {
  opacity: 0.9;
}

.site-header,
.site-footer {
  border-bottom: 1px solid var(--line);
}

.site-footer {
  border-bottom: 0;
  background: #333;
  color: white;
}

.site-footer .container {
  padding: 1rem 0;
}

.footer-links ul {
  margin: 0 0 0.75rem;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  justify-content: center;
}

.footer-links a {
  text-decoration: none;
  color: inherit;
}

.site-footer p {
  margin: 0;
  color: #ddd;
  font-size: 0.9rem;
  text-align: center;
}

.container {
  width: calc(100% - 2rem);
  margin-inline: auto;
  max-width: 1200px;
}

.inner-width{
  max-width:1200px;
  margin:0 auto;
}

.site-header-top {background: #333;}

.site-header-top .inner-width {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 0;
}

.site-logo {
  display: block;
  text-decoration: none;
  color: inherit;
  min-width: 0;
  margin-bottom: -24px;
}

.site-logo-mark {
  width: 200px;
  height: 48px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
}

.site-logo-mark svg {
  display: block;
  width: 100%;
  height: 100%;
}

.site-logo-text {
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.site-header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.site-menu-drawer {
  position: relative;
}

.site-menu-drawer summary {
  list-style: none;
  border-radius: 4px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  cursor: pointer;
  user-select: none;
  background:yellow;
}

.site-menu-drawer summary::-webkit-details-marker {
  display: none;
}

.site-menu-panel {
  position: absolute;
  right: 0;
  top: 42px;
  width: 180px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  z-index: 20;
}

.site-menu-panel ul {
  margin: 0;
  padding: 0.5rem;
  list-style: none;
}

.site-menu-panel a {
  display: block;
  padding: 0.45rem 0.5rem;
  text-decoration: none;
  text-align: center;
}

.header-links {background: #111;color: white;}

.header-links ul {
  padding: .5em 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  justify-content: center;
}

.header-links a {
  text-decoration: none;
  color: inherit;
}

main {
  padding: 1.5rem 0 2rem;
}

.content-layout {
  display: grid;
  gap: 1.5rem;
}

.content-layout.has-sidebar {
  grid-template-columns: minmax(0, 1fr) 300px;
}

.content-layout.no-sidebar {
  grid-template-columns: minmax(0, 1fr);
}

.content-main {
  min-width: 0;
}

.content-sidebar {
  border-left: 1px solid var(--line);
  padding-left: 1rem;
}

.widget {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line);
}

.widget-title {
  font-size: 1rem;
  margin: 0 0 0.6rem;
}

.popular-posts-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.7rem;
}

.popular-post-link {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 0.6rem;
  text-decoration: none;
  color: inherit;
}

.popular-post-thumb {
  display: block;
  border-radius: 6px;
  overflow: hidden;
  background: #f4f4f4;
}

.popular-post-thumb img {
  display: block;
  width: 100%;
  height: 60px;
  object-fit: cover;
}

.popular-post-thumb-fallback {
  display: block;
  width: 100%;
  height: 60px;
  background: linear-gradient(90deg, #ececec, #f7f7f7);
}

.popular-post-title {
  font-size: 0.9rem;
  line-height: 1.4;
}

article {
  padding: 3rem;
  /* border: 1px solid var(--line); */
  border-radius: 10px;
  margin-bottom: 1rem;
  background: #fff;
}

article:last-child {
  margin-bottom: 0;
}

.is-list {
  display: flex;
  gap: 1.1rem;
  align-items: flex-start;
}

.is-list .post-body {
  flex: 1;
  min-width: 0;
}

.post-thumbnail {
  display: block;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
}

.post-thumbnail img {
  display: block;
  width: 100%;
  height: auto;
}

.post-header {
    padding: 0.7em 0;
    border-bottom: 1px solid lightgray;
}

.post-header h1 {
    font-size: 1.75em;
    margin: 0 0 .5em;
    color: #333;
}

.post-tags {
    display: flex;
    gap: 0.2em;
}

.post-tags a {
    color: white;
    background: #6e6e6e;
    text-decoration: none;
    line-height: 1;
    padding: 0.2em 0.6em;
    border-radius: 0.6em;
    display: flex;
    width: fit-content;
    align-items: center;
    font-size: 11px;
    justify-content: center;
}


.is-list .entry-content {
  font-size: 0.95rem;
  line-height: 1.55;
}

h1,
h2 {
  line-height: 1.3;
  margin: 0 0 0.75rem;
}

/* toc */
#toc_container {
    background: #fffef3;
    padding: 1em;
    font-size: 15px;
    width: fit-content;
    min-width: 50%;
    margin: 0 auto;
    border-radius: 1em;
    border: 1px solid #cecece;
}
#toc_container a {
    color: #fe0000;
    text-decoration: none;
}
.toc_title {
    text-align: center;
    border-bottom: 1px solid #cecece;
}

/* entry-content */


.entry-content {}

.entry-content h2 {
    background: linear-gradient(to left, #f98700, #fe0000);
    border-radius: 0.3em;
    padding: .4em 0.6em;
    color: white;
    text-shadow: 0 2px 2px #00000099;
    margin: 2em -0.5em 1em;
}

.entry-content h3 {
    color: #fe0000;
    font-weight: 900;
    border-left: .5em solid;
    padding-left: .4em;
    margin: 2em 0 1em;
}

.entry-content h4 {
    font-weight: 900;
    background: linear-gradient(to right, #ffd5d5, transparent);
    margin: 2em 0 1em;
    padding: .2em 0.6em;
    width: 100%;
}


.entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
}

.entry-content tbody {}

.entry-content th,
.entry-content td {
    padding: 10px 14px;
    border: 1px solid;
    line-height: 1.6;
    vertical-align: middle;
}

.entry-content th {
    background: linear-gradient(to bottom, #f98700, #f97200);
    color: #fff;
    font-weight: bold;
    text-align: left;
    white-space: nowrap;
    border-color: #d13331;
}

.entry-content td {
    background: #fff;
    border-color: #bebebe;
}

.entry-content tbody tr:nth-child(even) td {
    background: #f8f8f8;
}


.entry-content ul,
.entry-content ol {
    padding:0;
}

.entry-content ul li,
.entry-content ol li{
    margin-left: 1em;
    position: relative;
}

.entry-content ul li {
    list-style-type:"・";
}
.entry-content ul li::marker{
    color:#fe0000;
}
.entry-content ol li{}
.entry-content ol li::marker{
    color:dimgray;
}


.entry-meta {
  color: var(--muted);
  font-size: 0.9rem;
  margin: 0;
  display: flex;
  gap: 1em;
}

.pagination {
  display: flex;
  gap: 0.5rem;
  padding-top: 1.25rem;
  justify-content: center;
}

.pagination a,
.pagination span {
  border: 1px solid var(--line);
  padding: 0;
  text-decoration: none;
  height: 2.4em;
  width: 2.4em;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pagination a {
    color: black;
    font-weight: bold;
    background: white;
}

.pagination span {color: #c1c1c1;border-color: lightgray;}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.no-posts {
  margin:0 1em;
  padding: 5em 1.5em;
}

.no-posts h1 {
    font-size: 20px;
}

.no-posts p {
    font-size: 14px;
    color: #555;
}

.no-posts a {}




/***************
 * common
***************/
.common-title {
    font-size: 24px;
    display: flex;
    align-items: center;
    gap: .2em;
}


/***************
 * front-page
***************/
.front-page-content{}
.front-page-content__title{}
.front-page-wrapper {
    display: grid;
    grid-template-columns: 100%;
    gap: 3em;
}


/***************
 * card content
***************/

.card-content {
}

.card-content__title {}

.card-content__post-list {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 1em;
}

.card-content__post-item {
    padding: 0;
    margin: 0;
    border-radius: 1em;
    overflow: hidden;
    box-shadow: 0 4px 8px #dfdfdf;
    border: unset;
    display: flex;
    flex-direction: column;
}

.card-content__post-thumbnail {
    display: block;
}

.card-content__post-thumbnail img {
    width: 100%;
    height: auto;
}

.card-content__post-body {
    padding: 1em;
    display: flex;
    flex-direction: column;
    gap: 0.6em;
    flex-grow: 1;
}

.card-content__post-title {
    font-size: 18px;
    margin: unset;
}

.card-content__post-title a {
    color: #333;
    text-decoration: none;
}

.card-content__post-excerpt {
    font-size: 14px;
    color: dimgray;
    margin: unset;
}

.card-content__post-date {
    font-size: 14px;
    color: #b0b0b0;
    margin: unset;
    text-align: right;
}
.card-content__post-button {
    background: linear-gradient(to bottom, #b4fd07,#2add32);
    text-align: center;
    font-weight: 900;
    color: #111;
    border-radius: 0.5em;
    font-size: 20px;
    padding: 0.5em;
    border: 2px solid;
    box-shadow: 0 .2em white inset,0 -.2em #00000033 inset;
    margin-top: auto;
    text-decoration:none;
}


/***************
 * front-page swiper
***************/

.gs-slider { max-width: 960px; margin: 0 auto; overflow:hidden; }

/* メイン */
.gs-slider__main { overflow: visible; position: relative; filter:drop-shadow(0 2px 2px #888) }
.gs-slider__main .swiper-slide {width:56%;border-radius: 1em;overflow: hidden;}
.gs-slider__main .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 矢印 */
.gs-slider__prev, .gs-slider__next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: rgba(0,0,0,0.4);
    border: 1px solid rgba(255,255,255,0.4);
    border-radius: 50%;
    backdrop-filter: blur(4px);
    transition: background 0.2s;
}
.gs-slider__prev { left: 10px; }
.gs-slider__next { right: 10px; }
.gs-slider__prev:hover, .gs-slider__next:hover {
    background: rgba(0,0,0,0.7);
}

/* 三角形 */
.gs-slider__prev::before,
.gs-slider__next::before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
}
.gs-slider__prev::before {
    border-right: 10px solid #fff;
    margin-right: 3px; /* 視覚的な中央補正 */
}
.gs-slider__next::before {
    border-left: 10px solid #fff;
    margin-left: 3px;
}

/* サムネイル */
.gs-slider__thumbs { margin-top: 6px; }
.gs-slider__thumbs .swiper-wrapper {
    justify-content: center;
}
.gs-slider__thumbs .swiper-slide {
    width: 80px; 
    height: auto;
    opacity: .5;
    cursor: pointer;
    overflow: hidden;
}
.gs-slider__thumbs .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gs-slider__thumbs .swiper-slide-thumb-active { opacity: 1; outline: 2px solid #fff; outline-offset: -2px; }


/***************
 * sidebar
***************/

.sidebar-widget {
    margin-bottom: 28px;
}
.sidebar-widget__title {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* sidebar x */
.sidebar-x__link {
    display: flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(to bottom, white, whitesmoke);
    border-radius: 8px;
    padding: 12px;
    text-decoration: none;
    color: #333;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
    transition: box-shadow 0.2s;
    border: 1px solid #e3e3e3,;
}
.sidebar-x__link:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
.sidebar-x__icon { width: 36px; height: 36px; object-fit: contain; }
.sidebar-x__text { display: flex; flex-direction: column; }
.sidebar-x__name { font-size: 0.9rem; font-weight: bold; }
.sidebar-x__sub { font-size: 0.78rem; color: #999; }

/* sidebar-author */
.sidebar-author__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
    padding: 1em;
}
.sidebar-author__job {
    line-height: 1.4;
}

.sidebar-author__role {
    margin: 0;
    color: #5e5e5e;
    font-size: 15px;
}
.sidebar-author__name {
    margin: 0;
    font-weight: bold;
}
.sidebar-author__img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
}
.sidebar-author__bio {
    font-size: 0.8rem;
    color: #555;
    line-height: 1.6;
    margin: 0;
    text-align: justify;
}


/* sidebar-popular */
.sidebar-popular__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.sidebar-popular__link {
    display: flex;
    gap: 10px;
    text-decoration: none;
    color: inherit;
    align-items: center;
    background: #fff;
    border-radius: 1em;
    padding: 1em;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
.sidebar-popular__link:hover .sidebar-popular__title {
    text-decoration: underline;
}
.sidebar-popular__thumb {
    flex-shrink: 0;
    width: 68px;
    height: 68px;
    overflow: hidden;
    border-radius: 6px;
}
.sidebar-popular__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.sidebar-popular__title {
    font-size: 13px;
    line-height: 1.4;
    margin: 0;
    font-weight: bold;
    color: #333;
}
.sidebar-popular__date {
    font-size: 0.72rem;
    color: #999;
}

/* sidebar-category */
.sidebar-categories__list {
    list-style: none;
    padding: 0;
    margin: 0;
    background: #fff;
    border-radius: 1em;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
    overflow: hidden;
    padding: 1em;
}
.sidebar-categories__item a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0.4em 0;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    color: #5f5f5f;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.2s;
}
.sidebar-categories__item:last-child a {
    border-bottom: none;
}
.sidebar-categories__item a:hover {
    background: #f8f8f8;
}
.sidebar-categories__item a::before {
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}
.sidebar-categories__item.is--cat a::before {
    background: url('/blog/wp-content/themes/seo-minimal/images/category-icon.png') center / contain no-repeat;
}

.sidebar-categories__item.is--tag a::before {
    background: url('/blog/wp-content/themes/seo-minimal/images/tag-icon.png') center / contain no-repeat;
}

/***************
 * search form
***************/
.search-form {
    display: flex;
    align-items: center;
    background: #fff;
    border-radius: 999px;
    padding: 6px 14px;
    gap: 8px;
    width: 100%;
}
.search-form__input {
    border: none;
    outline: none;
    background: transparent;
    font-size: 0.9rem;
    color: #333;
    width: 100%;
}
.search-form__input::placeholder { color: #aaa; }
.search-form__btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
}
.search-form__btn img {
    width: 18px;
    height: 18px;
    object-fit: contain;
    opacity: 0.5;
}


/******************
  * archive-content
******************/

.archive-header{}
.archive-title{
    font-size: 24px;
}

.archive-content {}

.archive-content__post-list {
    display: grid;
    grid-template-columns: 100%;
    gap: 0.8em;
}

.archive-content__post-item {display: flex;padding: 1.4em;border-radius: 1em;border: unset;box-shadow: 0 2px 4px #00000022;gap: 1em;background: white;text-decoration: none;align-items: flex-start;}

.archive-content__post-thumbnail {
    display: block;
    width: 240px;
    height: auto;
    overflow: hidden;
    border-radius: 1em;
    flex-shrink: 0;
}

.archive-content__post-thumbnail img {
    width: 100%;
    height: auto;
}

.archive-content__post-body {
    display: grid;
    grid-template-columns: 100%;
    gap: 0.4em;
}

.archive-content__post-body h2 {
    font-size: 18px;
    margin: 0;
    color: #333;
}

.archive-content__post-excerpt {
    font-size: 14px;
    color: #818181;
}


















@media (max-width: 780px) {
  

  .site-header,
  .site-footer {
  }

  .site-footer {
  }

  .site-footer .container {
  }

  .footer-links ul {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  }

.footer-links ul li {
    font-size: 14px;
}

  .footer-links a {
  }

  .site-footer p {
  }

  .container {
    width: 100%;
    padding: unset;
  }

  .inner-width{
  }

  .site-header-top {}

  .site-header-top .inner-width {
  padding: .5em;
  }

  .site-logo {
  width: 26vw;
  margin-bottom: -4vw;
  }

.site-logo img {
    width: 100%;
    height: auto;
}

  .site-logo-mark {
  }

  .site-logo-mark svg {
  }

  .site-logo-text {
  }

  .site-header-actions {
  }

  .site-menu-drawer {
  }

  .site-menu-drawer summary {
  }

  .site-menu-drawer summary::-webkit-details-marker {
  }

  .site-menu-panel {
  }

  .site-menu-panel ul {
  }

  .site-menu-panel a {
  }

  .header-links {}

  .header-links ul {
  }

  .header-links a {
  font-size: 14px;
  }

  .content-layout.has-sidebar {
    grid-template-columns: minmax(0, 1fr);
	gap:0;
  }
  article{
    padding: 1.5em;
    border-radius: unset;
  }
  
  .entry-content {}

  .entry-content h2 {
  font-size: 1.3em;
  margin: 1em -0.5em 0.5em;
  }

  .entry-content h3 {
  font-size: 1.2em;
  margin: 1em 0 .5em;
  }

  .entry-content h4 {
  font-size: 1.05em;
  margin: 1em 0 .5em;
  }

  .entry-meta {
  display: block;
  font-size: 11px;
  }

  .post-header {
  }
  .post-header h1 {
  font-size: 1.3em;
  }
  .post-tags {
  margin-top: 0.4em;
  }
  .post-tags a {
  font-size: 14px;
  }

/***************
 * common
***************/
.common-title {font-size: 18px;}


/***************
 * front-page
***************/
.front-page-content{}
.front-page-content__title{}
.front-page-wrapper {padding: 1em;gap: 2em;}


/***************
 * card content
***************/

.card-content {
}

.card-content__title {}

.card-content__post-list {gap: 0.6em;}

.card-content__post-item {
}

.card-content__post-thumbnail {
}

.card-content__post-thumbnail img {
}

.card-content__post-body {padding: 0.6em;}

.card-content__post-title {font-size: 12px;}

.card-content__post-title a {
}

.card-content__post-excerpt {
	font-size:11px;
}

.card-content__post-date {font-size: 10px;}
.card-content__post-button {font-size: 13px;}


/***************
 * front-page swiper
***************/

.front-page__slider {margin: 0 -1em;}
.gs-slider__main .swiper-slide {width: 80%;}
.gs-slider__prev, .gs-slider__next {width: 7vw;height: 7vw;}

	.gs-slider__thumbs { margin-top: 6px; }
.gs-slider__thumbs .swiper-slide{width:20%;}


/***************
 * sidebar
***************/
.sidebar{
  padding: 1.5em;
  background: #e7e7e7;
}
.sidebar-widget {
}
.sidebar-widget__title {
}

/* sidebar x */
.sidebar-x__link {}
.sidebar-x__link:hover {}
.sidebar-x__icon {}
.sidebar-x__text {}
.sidebar-x__name {}
.sidebar-x__sub {}

/* sidebar-author */
.sidebar-author__inner {
}
.sidebar-author__img {
}
.sidebar-author__bio {
}


/* sidebar-popular */
.sidebar-popular__list {
}
.sidebar-popular__link {
}
.sidebar-popular__link:hover .sidebar-popular__title {
}
.sidebar-popular__thumb {
}
.sidebar-popular__thumb img {
}
.sidebar-popular__title {
}
.sidebar-popular__date {
}

/* sidebar-category */
.sidebar-categories__list {
}
.sidebar-categories__item a {
}
.sidebar-categories__item:last-child a {
}
.sidebar-categories__item a:hover {
}
.sidebar-categories__item a::before {}

/***************
 * search form
***************/
.search-form {
    width: fit-content;
}
.search-form__input {
    font-size: 12px;
    width: 8em;
}
.search-form__input::placeholder {}
.search-form__btn {}
.search-form__btn img {}

/******************
  * archive-content
******************/
.archive-header{}
.archive-title{
    font-size: 20px;
}
.archive-content {
    margin: 0 1em;
}
.archive-content__post-list {}
.archive-content__post-item {
    padding: 1em;
}
.archive-content__post-thumbnail {
    width: 25%;
    height: auto;
    border-radius: .5em;
    aspect-ratio: 1/1;
}
.archive-content__post-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.archive-content__post-body {}
.archive-content__post-body h2 {
    font-size: 14px;
}
.archive-content__post-excerpt {
    font-size: 11px;
}


}



/******************
 * ContactForm
*******************/
.cf7-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 20px;
}

.cf7-label {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cf7-label__text {
    font-size: 0.9rem;
    font-weight: bold;
    color: #333;
    display: flex;
    align-items: center;
    gap: 6px;
}

.cf7-label__required {
    font-size: 0.75rem;
    color: #cc0000;
    background: unset;
    padding: 1px 6px;
    border-radius: 3px;
}

.cf7-label__optional {
    font-size: 0.78rem;
    color: #999;
    font-weight: normal;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 0.95rem;
    color: #333;
    background: #fff;
    transition: border-color 0.2s;
    box-sizing: border-box;
    line-height: 1.5;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 textarea:focus {
    border-color: #0073aa;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0,115,170,0.1);
}

.wpcf7 textarea {
    min-height: 160px;
    resize: vertical;
}

.wpcf7 input[type="submit"] {
    display: block;
    width: 100%;
    padding: 14px;
    background: #e05a00;
    color: #fff;
    font-size: 1rem;
    font-weight: bold;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    transition: opacity 0.2s;
}

.wpcf7 input[type="submit"]:hover {
    opacity: 0.85;
}

.wpcf7 .wpcf7-not-valid-tip {
    font-size: 0.8rem;
    color: #cc0000;
    margin-top: 4px;
}

.wpcf7 .wpcf7-response-output {
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 0.85rem;
    margin-top: 8px;
}

/******************
  * 記事装飾
******************/

/*** 吹き出し ***/
.fukidashi {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin: 24px 0;
}
.fukidashi--right {
    margin-left: auto;
    width: fit-content;
}
.fukidashi__avatar {
    flex-shrink: 0;
    width: 4em;
    height: 4em;
    border-radius: 50%;
    overflow: hidden;
}
.fukidashi__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.fukidashi__balloon {
    position: relative;
    background: #f6f6f6;
    border-radius: 12px;
    padding: 12px 16px;
    line-height: 1.6;
    filter: drop-shadow(0 2px 2px #ddd);
}

.fukidashi__balloon p {
    margin: 0;
}
.fukidashi--left .fukidashi__balloon::before {
    content: '';
    position: absolute;
    top: 18px;
    left: -10px;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-right: 10px solid #f6f6f6;
}
.fukidashi--right .fukidashi__balloon::before {
    content: '';
    position: absolute;
    top: 18px;
    right: -10px;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 10px solid #f0f0f0;
}

/*** Q&A ***/
.qa {
    margin: 1.5em 0;
    font-size: 0.95rem;
}

.qa__question,
.qa__answer {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.qa__question {
    margin-bottom: .5em;
}

.qa__label {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 0.9rem;
    color: #fff;
}

.qa__label--q { background: #333; }
.qa__label--a {background: #ff4848;position: absolute;left: 0;top: 0;}

.qa__text {
    margin: 0;
    font-weight: bold;
    line-height: 1.8;
}

.qa__answer {
    background: #f5f5f5;
    border-radius: 8px;
    padding: 1em 1em 1em 2.8em;
    position: relative;
    font-size: 14px;
    margin-bottom: 1.5em;
}

.qa__body p {
    margin: 0 0 8px;
    line-height: 1.7;
}
.qa__body p:last-child { margin-bottom: 0; }


/*** 記事内CTA ***/
.cta {
    text-align: center;
    margin: 24px 0;
}

.cta__caption {
    color: #fe0200;
    margin: 0 0 8px;
    font-weight: bold;
    margin-bottom: unset;
}

.cta__button {
    display: inline-block;
    background: linear-gradient(to bottom, #e2ff00, #00c758, #cdff00);
    color: #fff;
    font-weight: bold;
    font-size: 1.2em;
    padding: 1em 2em;
    border-radius: 5em;
    text-decoration: none;
    transition: opacity 0.2s;
    text-shadow: 0 2px 4px #00000099;
    border: 3px solid #040404;
    box-shadow: 0 2px 4px #00000044, 0 4px 0 #ffffffcc inset, 0 -4px 0 #00c758 inset;
}

.cta__button:hover {
    opacity: 0.85;
    color: #fff;
}
.cta__note {
    font-size: 0.82rem;
    color: #555;
    margin: 6px 0 0;
    text-align: center;
    cursor: pointer;
    text-decoration: underline dotted;
}

.cta__note:hover {
    color: #e05a00;
}
.cta__code-wrap {
    text-align: center;
    margin-top: 10px;
}

.cta__code-label {
    font-size: 0.82rem;
    color: #555;
    margin: 0 0 6px;
}
@media (max-width: 780px) {
.cta {margin: 3em -1em;}
.cta__caption {font-size: .9em;}
.cta__button {font-size: 1.1em;width: 100%;padding: 1em;}
}

/*** タイトル付きリスト ***/
.listbox {
    --listbox-color: #cc0000;
    border: 2px solid var(--listbox-color);
    border-radius: 6px;
    padding: 1em;
    margin: 24px 0;
    position: relative;
}

.listbox__title {
    background: #fff;
    font-weight: bold;
    color: var(--listbox-color);
    margin: -1.8em 0 0.6em;
    line-height: 1.25;
    padding: 0 0.4em;
	width:fit-content;
}

.listbox__body ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.listbox__body ul li {
    padding-left: 1.6em;
    position: relative;
    line-height: 1.6;
    list-style-type: none;
    margin: 0;
}

.listbox__body ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.3em;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--listbox-color);
}

/*** マーカー ***/
.entry-content .marker {
    background: linear-gradient(to bottom, transparent 50%, #ffe741);
    padding: 0 0.1em;
    margin: 0 0.1em;
}

/*** 関連記事ボックス ***/
.related-link {
    border: 1px solid #89c4cd;
    border-radius: 6px;
    padding: 12px 16px;
    margin: 24px 0;
    background: #f0f8fa;
}

.related-link__title {
    font-weight: bold;
    color: #333;
    margin: 0 0 8px;
}

.related-link__body {
    display: flex;
    flex-direction: column;
}

.related-link__item {
    color: #0073aa;
    text-decoration: none;
    display: flex;
    align-items: center;
}

.related-link__item:hover {
    text-decoration: underline;
}
.related-link__item::before {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 7px solid #0073aa;
    margin-right: 6px;
    vertical-align: middle;
}


/*** 招待コードコピーガジェット ***/
.coupon {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.coupon__code {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 0.95rem;
	font-family: monospace;
	background: #fff;
	letter-spacing: 0.05em;
}
.coupon__btn {
	padding: 6px 14px;
	background: #e05a00;
	color: #fff;
	font-size: 0.85rem;
	font-weight: bold;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: opacity 0.2s;
	white-space: nowrap;
}
.coupon__btn:hover { opacity: 0.85; }
.coupon__btn.is--copied {
	background: #4caf50;
}


/*** 招待コードコピーガジェット ***/
.coupon {
	display: inline-flex;
	align-items: center;
	gap: .2em;
}
.coupon__code {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 0.8em;
	font-family: monospace;
	background: #fff;
	letter-spacing: 0.05em;
}
.coupon__btn {
	padding: 6px 14px;
	background: linear-gradient(to right, #f26b00, #e02b00);
	color: #fff;
	font-size: 0.85em;
	font-weight: bold;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: opacity 0.2s;
	white-space: nowrap;
}
.coupon__btn:hover { opacity: 0.85; }
.coupon__btn.is--copied {
	background: #4caf50;
}

/*** 招待コードコピーテーブル ***/
.coupon-table {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
    width: fit-content;
    margin: 2em auto;
    min-width: 64%;
}

.coupon-table__header {
    background: #fff0f0;
    text-align: center;
    font-weight: bold;
    padding: 10px 16px;
    border-bottom: 1px solid #e0e0e0;
}

.coupon-table__body {
    display: grid;
    grid-template-columns: auto 1fr;
}

.coupon-table__app {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.6em;
    border-right: 1px solid #e0e0e0;
    max-width: 120px;
}

.coupon-table__app a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: #0073aa;
    font-size: 0.85rem;
    font-weight: bold;
}

.coupon-table__app img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.coupon-table__app span {
    white-space: nowrap;
}

.coupon-table__codes {
    display: flex;
    flex-direction: column;
}

.coupon-table__row {
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: .2em;
    justify-content: center;
}

.coupon-table__row:first-child {
    border-bottom: 1px solid #e0e0e0;
}

.coupon-table__caption {
    margin: 0;
    color: #e05a00;
    font-size: 0.9em;
    font-weight:bold;
}
.coupon-table p:empty{
	display:none;
}