@charset "UTF-8";
/*ヘッダーカラー*/
#header {
background-color: var(--clr-header-bg1, var(--clr-main, #fff));
}

#logo {
color: var(--clr-logo-txt, var(--clr-header-fixed-txt, #333));
}

#spmenu-btn::before, #spmenu-btn::after, #spmenu-btn span::before {
background-color: var(--clr-header-txt1, var(--clr-header-fixed-txt, #333));
}

.headerimg-desc {
opacity: 1;
}

.headerimg-img::before {
background-color: var(--clr-headerimg-overlay, rgba(38, 10, 1, 0.38));
}

/*スマホの時だけ改行させるクラス*/
.br-sp {
    display: none ;
}

@media (max-width: 600px) {
    .br-sp {
        display: block;
    }
}

/*グロナビカラー*/
#logo-wrap {
background: linear-gradient(180deg,#ff946c,#ff3b62);
}

#logo {
color: var(--clr-logo-txt, var(--clr-header-fixed-txt, #fff));
}

#logo a img:hover {
opacity: 0.7;
}

#spmenu-btn::before, #spmenu-btn::after, #spmenu-btn span::before {
background-color: var(--clr-header-txt1, var(--clr-header-fixed-txt, #fff));
}

@media (min-width: 1025px) {
[data-header=""] #header .container, [data-header="row2"] #header .container, [data-header="row2-lead"] #header .container, [data-header="row2-center"] #header .container, [data-header="fixed"] #header .container {
background: linear-gradient(180deg,#ff946c,#ff3b62);
}
}

/*フォントサイズ*/
body {
font-size: 1.3rem;
line-height: 1.6;
}

@media (min-width: 1025px) {
body {
font-size: 1.54rem;
line-height: 1.7;
 }
}

.figcaption {
font-size: unset;
line-height: unset;
}

[data-column="col1"][data-main="wide"] h2:not([class*="topic"]) {
font-size: clamp(2.38rem, 5.11111vw, 2.6rem);
}

h3 {
font-size: clamp(2rem, 4.27777vw, 2.3rem);
text-align: center;
}

/* 最初の一文字だけ大きくして色変更 */
h3:not([class*="topic"])::first-letter {
  font-size: 30px;
  color: #fd5454;
}

h4 {
font-size: clamp(1.7rem, 4vw, 2rem);

}

h4:not([class*="topic"]) {
border-left: 4px solid var(--clr-main, #ff3b62);
}

/*h2*/
#main section h2 {
  position: relative;
  display: table !important; 
  margin: 0 auto 50px !important; 
  padding-bottom: 16px !important; 
  text-align: center;
  overflow: visible !important; 
  background: transparent !important; 
}

#main section h2:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: -15px; 
  right: -15px;
  height: 10px;
  background-image: repeating-linear-gradient(-45deg, #ff3b62, #ff3b62 1px, transparent 2px, transparent 5px) !important;
  background-size: 7px 7px;
  z-index: 1;
}

/*h3*/
h3:not([class*="topic"]) {
border-bottom: none;
margin-top: 0;
}

/*1，2*/
.point[data-point] {
font-size: unset;
}

/*画像*/
.grid .grid-item {
width: unset;
}

img {
border-radius: 8px;
}

.figure[data-figure-horizontal*="true"] > img, .figure[data-figure-horizontal*="true"] .figure-link img, .figure[data-figure-horizontal*="true"] .img-lb img {
max-width: 38%;
flex-shrink: 0;
object-fit: cover;
}

@media screen and (max-width: 640px) {
.figure[data-figure-horizontal*="true"] > img, .figure[data-figure-horizontal*="true"] .figure-link img, .figure[data-figure-horizontal*="true"] .img-lb img {
max-width: 100%;
}
}

.card-icon img {
width: 30%;
}

/* オリジナル・カードレイアウト */
.custom-card-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; 
    gap: 20px;   
    padding: 20px 0;  
    width: 100%;
    box-sizing: border-box;
}

.custom-card {
    background-color: #f2f2f2; 
    border-radius: 10px;
    padding: 30px 20px;
    text-align: center;
    box-sizing: border-box;
    width: 100%; 
    max-width: 500px;
    
    /* --- ここから枠線グラデーションの設定 --- */
    border: 5px solid transparent;
    background-image: linear-gradient(#fff, #fff), 
                      linear-gradient(180deg,#ff946c,#ff3b62); 
    background-origin: border-box;
    background-clip: padding-box, border-box;
    /* -------------------------------------- */
}

.card-icon {
    font-size: 40px;
    margin-bottom: 10px;
}

.card-title {
    font-weight: bold;
    font-size: 1.1em;
    color: #2c3e50;
    margin-bottom: 8px;
}

.card-text {
    font-size: 1.3rem;
    color: #555;
    line-height: 1.5;
    margin: 0;
    text-align: center;
}

@media (min-width: 1025px) {
.card-text {
font-size: 1.4rem;
 }
}

@media screen and (min-width: 960px) {
    .custom-card {
        width: calc(25% - 18px) !important; /* 枠線が太くなった分、少し余裕を持たせる */
        max-width: none;
        flex-shrink: 0; 
    }
}

/*box*/
.nmlbox {
font-weight: bold;
border: 3px solid #fd5c5c;
border-radius: 10px;
}

[class*="attention"] {
background: #ffcc6c1f;
border-radius: 8px;
}

[class*="hint"] {
background: #ff3b6221;
border-radius: 8px;
}

.thint:not(.noimage)::before, [class*="cbox-hint"] .cbox-caption span::before {
background-color: #ff869e;
}

/*テキストカラー*/
.text-pink {
display: block;
text-align: center;
font-weight: bolder;
font-style: italic;
font-size: 1.4rem;
background: linear-gradient(180deg,#ff946c,#ff3b62);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

@media (min-width: 1025px) {
.text-pink {
font-size: 1.6rem;
 }
}

.point[data-point]::before {
color: #ff3b62 !important;
}

.text-red {
color: #ff3b62;
font-size: 1.6rem;
}

/*テーブル*/
@media screen and (max-width: 1010px) {
 table th, table td {
min-width: 125px;
    }
}

table.table-fontsmall th, table.table-fontsmall td, div.table-fontsmall th, div.table-fontsmall td {
font-size: clamp(14px, calc(0.75rem + ((1vw - 4.8px) * 0.2088)), 14px);
}

@media screen and (max-width: 1010px) {
table.table-fontsmall th, table.table-fontsmall td, div.table-fontsmall th, div.table-fontsmall td {
font-size: clamp(12.25px, calc(0.75rem + ((1vw - 4.8px) * 0.2088)), 12.25px);
}
}

.graycolor {
background-color: #f3f3f3;
}



/* 全体の外枠*/
.timeline-container {
    position: relative;
    padding-left: 5px; 
}

/* 縦線 */
.timeline-item {
    position: relative;
    padding-bottom: 40px;
    border-left: 3px solid #ccc; 
    padding-left: 15px;
}

.timeline-item.blue { border-color: #ffba02; }

.timeline-item.purple { border-color: #ff869e; }

.timeline-item::before {
    content: "";
    position: absolute;
    left: -9px; 
    top: 0;
    width: 15px;
    height: 15px;
    background-color: inherit; 
    border-radius: 50%;
    background: white;
    border: 3px solid;
}

.timeline-item.blue::before { border-color: #ffba02; background-color: #ffba02; }
.timeline-item.purple::before { border-color: #ff869e; background-color: #ff869e; }

/* 仕組みを知ることセクション */
.strategy-guide {
    margin: 40px auto;
    max-width: 900px;
    position: relative;
    border-radius: 20px;
    background: #ffffff;
    border: 2px solid #f0f0f0;
    overflow: hidden;
    font-family: sans-serif;
}

.guide-inner {
    padding: 50px 30px 40px;
}

/* ステップ構成 */
.guide-item {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.guide-step {
    padding: 10px;
    border-radius: 12px;
    font-weight: bold;
    font-size: 0.85em;
    min-width: 85px;
    text-align: center;
    box-sizing: border-box;
    flex-shrink: 0;
}
.step-01 {
    background: #f8f9fa;
    color: #3498db;
    border: 1px solid #e9ecef;
}
.step-02 {
    background: #fff8f9;
    color: #f97590;
    border: 1px solid #f3e5f5;
}

.guide-body {
    line-height: 2;
    color: #444;
}
.guide-body p {
    margin: 0;
}

/* セパレーター */
.guide-separator {
    text-align: center;
    color: #eee;
    margin: 15px 0;
    font-size: 12px;
}

/* スマホ対応 */
@media screen and (max-width: 960px) {
    .guide-inner { padding: 40px 15px 30px; }
    .guide-item { flex-direction: column; gap: 10px; }
    .guide-step { min-width: 100%; text-align: left; padding-left: 15px; }
    .guide-separator { padding-left: 0; margin: 10px 0; }
}

/*フッター*/
#footer {
background: linear-gradient(180deg,#ff946c,#ff3b62);
}

.menubox > .title, #pickupentry > .title, .newentry-title, #menu .space-box > .title, #rmenu .space-box > .title {
border-bottom: 4px solid var(--clr-main, #fd5454);
}

#menu {
display: none !important;
}

.footer-menu_ul > li {
text-align: center;
padding: 0;
border-top: none;
}

.footer-menu_ul > li:last-child {
border-bottom: none;
}


@media (min-width: 1025px) {
.footer-menu_ul{
flex-direction: column;	
}
}

@media (min-width: 1025px) {
.footer-menu_ul > li {
border-left: unset;	
}
}

@media (min-width: 1025px) {
    .footer-menu_ul > li:last-child {
        border-bottom: none;
        border-right: none;
    }
}