@charset "UTF-8";
/*
Theme Name: Binary Theme (Adult Elegant Custom)
version:1.0
*/

/*
font-size
font-size:calc(XX + ((1vw - YY) * ZZ))
XX = min-font-size
YY = min-viewport / 100
ZZ = 100 * font-size-difference / viewport-difference
*/
:root {
  --header-height: 100px;
  /* 大人な清楚感を演出するカラーパレットを追加定義 */
  --maincolor: #5B6770;  /* メインカラー：スレートグレー（落ち着き・信頼） */
  --subcolor01: #9A8C98; /* サブカラー1：ダスティモーブ（上品なピンクパープル） */
  --subcolor02: #A3A8B1; /* サブカラー2：クールグレー */
  --subcolor03: #D0BDB0; /* サブカラー3：サンドベージュ（温かみのあるオレンジ・黄系の代用） */
  --subcolor04: #C9ADA7; /* サブカラー4：ローズグレー */
  --subcolor05: #8C9993; /* サブカラー5：セージグリーン（優しい緑・安心感） */
  --subcolor06: #B58D94; /* サブカラー6：ダスティローズ（派手すぎない赤の代用） */
  --bread1: #F0EBE9;     /* パンくずリストなどの背景 */
}

/* 1. メニューの大枠 (.spMenu) に対して高さを制限します */
.spMenu {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  background: var(--subcolor01); /* くすみパープルへ変更 */
  max-height: calc(100dvh - var(--header-height));
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* 2. サブメニュー（都道府県リスト）は自然に広げる */
.spMenu ul {
  height: auto;
  overflow: visible;
}

h1{font-size:calc(24px + ((1vw - 3.6px) * 1.66667));}
h2{font-size:calc(22px + ((1vw - 3.6px) * 1.38889));}
h3{font-size:calc(20px + ((1vw - 3.6px) * 1.11111));}
h4{font-size:calc(18px + ((1vw - 3.6px) * 0.83333));}
p:not([class]){font-size:calc(16px + ((1vw - 3.6px) * 0.27778));}

.flat-button a {
  width: 80%;
  background-color: var(--maincolor); /* スレートグレー */
  border-radius: 4px;
  box-shadow: 0 3px 0 #434D54; /* 落ち着いた影 */
  color: #ffffff;
  display: block;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  margin: 10px auto;
  padding: 10px 0;
  transition: all 0.3s ease;
}
.flat-button a:hover {
  background-color: #6d7a85;
}

@media screen and (max-width:360px){
  h1{font-size:24px;}
  h2{font-size:22px;}
  h3{font-size:20px;}
  h4{font-size:18px;}
  p:not([class]){font-size:16px;}
}
@media screen and (min-width:1080px){
  h1{font-size:36px;}
  h2{font-size:32px;}
  h3{font-size:28px;}
  h4{font-size:24px;}
  p:not([class]){font-size:18px;}
}

/*default*/
body{width:100%;font-family:'Sawarabi Gothic',sans-serif;color:#4A4A4A;background-color:#FCFBFA;}
img{vertical-align:bottom;}
.mainArticle{width:100%;min-height:100vh;margin:0 auto;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:flex-start;justify-content:flex-start;}
.mainContent{width:100%;background-color:#fff;flex-grow:1;padding-bottom:50px;}
.inline{display:inline-block;}
.linkButton{text-align:center;font-size:20px;line-height:3em;width:250px;margin:30px auto;display:block;position:relative;background-color:#727171;color:#fff;box-shadow:0 3px 6px rgba(0,0,0,0.15);}
.contentsList{padding:0 20px 7.5%;}
p:not([class]){margin:1.5em 0.5em;line-height:1.8em; letter-spacing: 0.05em;}
a{cursor:pointer; color:#7A8B94; transition: color 0.3s;}
a:hover{color:#5B6770;}

h1{text-align:center;font-weight:bold;line-height:1.5em;padding:7.5% 0 3.75%;margin-bottom:3.75%;position:relative;font-family:a-otf-ud-shin-go-pr6n,sans-serif;}
h1::after{content:'';width:8em;height:2px;margin:auto;position:absolute;bottom:0;left:0;right:0;background-color:var(--subcolor05);}
h2{line-height:1.5em;margin:3.5em auto 0.7em;padding:0.5em;box-shadow:0 3px 6px rgba(0,0,0,0.1);background-color:var(--maincolor);color:#fff;border-radius:2px;}
h3{line-height:1.5em;margin:1.75em auto 0.7em;padding:0.5em 0.75em;position:relative;background-color:var(--subcolor01);color:#fff;border-radius:2px;}
h3::before,h3::after{content:'';border-width:0.375em;border-style:solid;position:absolute;}
h3::before{border-color:transparent transparent #fff #fff;left:0;bottom:0;}
h3::after{border-color:#fff #fff transparent transparent;right:0;top:0;}
h4{line-height:1.4em;margin:0.7em auto 0.35em;padding:0.5em;position:relative;background-color:var(--subcolor01);color:#fff;border-radius:2px;}

@media screen and (min-width:700px){
  .contentsList,.recommendSite{padding-bottom:52.5px;}
  h1{padding:52.5px 0 26.25px;margin-bottom:26.25px;}
}

/*header*/
.mainHeader{width:100%;background-color:var(--subcolor01);}
.fixedBar{width:100%;height:50px;padding:5px;position:fixed;top:0;left:0;z-index:50;background-color:var(--subcolor01); color:#fff;}
.logoArea{width:100%;max-width:1280px;margin:auto;position:relative;}
.logoArea>a>img{width:auto;height:40px;}
.searchFormSelect{display:none;}
.searchFormControl{width:40px;height:40px;position:absolute;top:0;bottom:0;right:5px;}
.searchFormControl::before{content:'\f002';font-family:'Font Awesome 5 Free';font-weight:900;font-size:35px;text-align:center;line-height:0;height:0;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;transition-duration:0.3s;}
.searchFormSelect:checked+.searchFormControl::before{content:'\f00d';}
.searchForm{width:0;height:40px;margin:auto;position:absolute;top:0;bottom:0;right:50px;z-index:51;overflow:hidden;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;transition-duration:0.3s;}
.searchFormSelect:checked~.searchForm{width:calc(100% - 50px);}
.searchForm>input{height:100%;}
.searchForm>input[type="text"]{background-color:#fff;border-top-left-radius:10px;border-bottom-left-radius:10px;width:calc(100% - 3em);color:#4A4A4A;}
.searchForm>input[type="submit"]{text-align:center;background-color:#727171;border-top-right-radius:10px;border-bottom-right-radius:10px;width:3em;color:#fff;}
.firstView{width:100%;max-width:800px;padding-bottom:75%;position:fixed;top:50px;left:0;right:0;margin:auto;z-index:-1;background-color:var(--subcolor01);background-size:contain;background-position:top;background-repeat:no-repeat;}
.mainMenu{width:100%;padding:5px 0;background-color:var(--subcolor01);position:sticky;top:0;z-index:100;}
.mainMenu>ul:not([class]){width:100%;max-width:800px;height:40px;margin:0 auto;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;}
.mainMenu>ul:not([class])>li{width:100%;height:40px;}
.mainMenu>ul:not([class])>li{border-left:1px solid rgba(255,255,255,0.3);border-right:1px solid rgba(255,255,255,0.3);}
.mainMenu>ul:not([class])>li:first-of-type{border-left-width:0px;}
.mainMenu>ul:not([class])>li:last-of-type{border-right-width:0px;}
.mainMenu>ul:not([class])>li>a{text-align:center;height:100%;padding:7.5px 0;font-size:15px;display:block;color:#fff;}
.mainMenu>ul:not([class])>li>a:hover{background-color:rgba(255,255,255,0.1);}

.mainMenuSP{width:100%;padding:5px 0;margin-top:0px;background-color:var(--subcolor01);color:#fff;position:sticky;top:0;z-index:100;}
.mainMenuSP>ul>li{height:0;overflow:hidden;}
.mainMenuSP +input:checked~ul>li{padding:15px;border-bottom:1px solid rgba(255,255,255,0.3);}
.mainMenuSP>ul>li>ul>li{height:0;overflow:hidden;padding:0 5px;transition-duration:0.3s;}
.mainMenuSP>ul>li>input:checked~ul>li{line-height:3rem;border-bottom:1px solid rgba(255,255,255,0.3);}
.mainMenuSP>ul>li>ul>li>a{display:block; color:#fff;}
.mainMenuSP>ul>li:last-of-type,.mainMenuSP>ul>li>ul>li:last-of-type{border-bottom:0;}
.spMenuCon::before{content:'メニューを開く';text-align:center;width:100%;transition-duration:0.3s;display:block;line-height:3rem;}
.mainMenuSP input:checked+.spMenuCon::before{content:'閉じる';}
.spMenuCon::after{line-height:3rem;}
.spMenu>li{height:0;padding:0 5px;transition-duration:0.3s;}
.mainMenuSP label{display:block;position:relative;}
.mainMenuSP label::after{content:'▼';position:absolute;right:0;bottom:0;top:0;transition-duration:0.3s;}
.mainMenuSP input:checked+label::after{content:'▲';}
.mainMenuSP input{display:none;}
.mainMenuSP input:checked~ul>li{height:auto;padding:10px 5px;}

@media screen and (min-width:541px){
  .searchFormControl{display:none;}
  .searchForm,.searchFormSelect:checked~.searchForm{width:300px;right:5px;}
}
@media screen and (min-width:801px){
  .firstView{max-width:1920px;padding-bottom:40%;}
}
@media screen and (min-width:1921px){
  .firstView{padding-bottom:768px;}
}

/*footer*/
.mainFooter{text-align:center;width:100%;padding:30px 0;background-color:var(--subcolor01); color:#fff;}

/*link-card*/
.linkCardArea{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:20px 20px;}
.linkCard{width:300px;display:block;position:relative;box-shadow:0 3px 6px rgba(0,0,0,0.1); border-radius:4px; overflow:hidden;}
.linkCard>img{width:100%;height:auto;}
.linkCard>p{font-size:14px;line-height:1.4em;width:100%;height:75px;padding:10px;position:absolute;bottom:0;left:0;color:#fff;background-color:rgba(91,103,112,0.85);} /* スレートグレー透過 */
.innerText{height:100%;display:block;overflow:hidden;}

/*breadcrumb*/
.breadArea{width:100%;}
.breadCrumb {
    font-size: 0.9rem;
    line-height: 4rem;
    width: 100%;
    height: 2rem;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    white-space: nowrap;
    overflow-y: hidden;
    color: #666;
}
.breadCrumb>li:first-child {
    background-color: var(--bread1);
    padding-left: 10px;
    padding-right: 10px;
    color: #666;
}
.breadCrumb>li {
    position: relative;
    width:250px;
    padding-left:1.5rem;
}
.breadCrumb>li:last-of-type{width:100%;}
.breadCrumb>li>a{display:block; color:#666;}
.breadCrumb>li:not(:last-child)::after {
    content: '';
    width: 0;
    height: 0;
    margin: auto;
    border-top: 1rem solid transparent;
    border-bottom: 1rem solid transparent;
    border-left: 1rem solid;
    position: absolute;
    top: 0;
    bottom: 0;
    right: -1rem;
    z-index: 10;
}
.breadCrumb>li:first-of-type{background-color:#EFEBE9;color:#666;}
.breadCrumb>li:first-of-type::after{border-left-color:#EFEBE9;}
.breadCrumb>li:nth-of-type(2){background-color:#E6DFDB;color:#666;}
.breadCrumb>li:nth-of-type(2)::after{border-left-color:#E6DFDB;}
.breadCrumb>li:nth-of-type(3){background-color:#DCD4CF;color:#555;}
.breadCrumb>li:nth-of-type(3)::after{border-left-color:#DCD4CF;}
.breadCrumb>li:nth-of-type(4){background-color:#D2C8C2;color:#555;}
.breadCrumb>li:nth-of-type(4)::after{border-left-color:#D2C8C2;}

.articleSection{width:100%;max-width:1080px;margin:auto;padding:0 20px 7.5%;}
@media screen and (min-width:700px){
  .articleSection{padding-bottom:52.5px;}
}
[id^='ARTICLE0']{margin-top:-35px;padding-top:25px;}

.indexList{width:100%;max-width:640px;margin:60px auto 50px;padding:calc(1em + 10px) 1em 1em;border:2px solid var(--subcolor02);background-color:rgba(163,168,177,0.05);position:relative; border-radius:4px;}
.indexList::before{content:'目次';text-align:center;font-size:16px;width:100px;margin:auto;position:absolute;top:-15px;left:0;right:0;background-color:var(--subcolor02);color:#fff; border-radius:2px;}
.indexList li{line-height:1.4em;width:100%;padding:8px 0;}
.indexList>li>ul{margin-top:0.5em;padding:0 1em;}

.articleQuote,.checkArea,.cautionArea,.sumupArea{width:100%;max-width:800px;border:2px solid;position:relative; border-radius:4px;}
.articleQuote{margin:50px auto;padding:1em;border-color:var(--subcolor04);background-color:rgba(201,173,167,0.1);}
.articleQuote::before,.articleQuote::after{font-family:'Font Awesome 5 Free';font-weight:900;line-height:1;height:0;margin:auto;position:absolute; color:var(--subcolor04);}
.articleQuote::before{content:'\f10d';top:5px;left:5px;}
.articleQuote::after{content:'\f10e';bottom:calc(1em + 5px);right:5px;}

.checkArea,.cautionArea,.sumupArea{margin:60px auto 50px;padding:calc(1em + 10px) 1em 1em;}
.checkArea{border-color:var(--subcolor03);background-color:rgba(208,189,176,0.15);}
.cautionArea{border-color:var(--subcolor06);background-color:rgba(181,141,148,0.15);}
.sumupArea{border-color:var(--subcolor05);background-color:rgba(140,153,147,0.15);}
.checkArea::before,.cautionArea::before,.sumupArea::before{text-align:center;font-size:16px;width:120px;margin:auto;position:absolute;top:-15px;left:0;right:0;color:#fff; border-radius:2px;}
.checkArea::before{content:'CHECK!';background-color:var(--subcolor03);}
.cautionArea::before{content:'CAUTION!';background-color:var(--subcolor06);}
.sumupArea::before{content:'SUM UP!';background-color:var(--subcolor05);}
.articleQuote>p,.checkArea>p,.cautionArea>p,.sumupArea>p,.figureArea p{margin:0;}
.figureArea{text-align:center;width:100%;max-width:800px;margin:50px auto;}
.sumupList{padding-left:1em;}
.sumupList>li{margin-bottom:1em;position:relative;}
.sumupList>li:last-child{margin-bottom:0;}
.sumupList>li::before{content:'\f00c';font-family:'Font Awesome 5 Free';font-weight:900;line-height:1.5em;height:0;margin:auto;position:absolute;top:0;left:-1.2em; color:var(--subcolor05);}

.fullBoxBOTransaction{width:100%;padding:10px;background-color:var(--subcolor03);color:#fff;position:relative; border-radius:4px;}
.fullBoxBOTransaction::before,.fullBoxBOTransaction::after{width:calc(50% - 10px);margin:auto;position:absolute;bottom:-30px;background-color:#fff;color:var(--subcolor01);z-index:1; text-align:center; box-shadow:0 2px 4px rgba(0,0,0,0.1); border-radius:2px;}
.fullBoxBOTransaction::before{content:'予想的中';left:0;}
.fullBoxBOTransaction::after{content:'外れた';right:0;}
.halfBoxBOTransaction{width:calc(50% - 10px);margin-top:50px;padding:10px 5px;color:#fff;position:relative; text-align:center; border-radius:4px; background-color:var(--subcolor01);}
.halfBoxBOTransaction::before{content:'';width:2px;height:50px;margin:auto;background-color:var(--subcolor01);position:absolute;top:-50px;left:0;right:0;}
.halfBoxBOTransaction::after{content:'';width:0;height:0;margin:auto;border-width:10px;border-style:solid;border-color:var(--subcolor01) transparent transparent;position:absolute;top:-10px;left:0;right:0;}

.bold{font-weight:bold;background:linear-gradient(transparent 75%, rgba(140,153,147,0.5) 75%);} /* マーカー色も淡く */

.comparison2{width:100%;max-width:800px;margin:50px auto;table-layout:fixed; border-collapse: collapse;}
.comparison2 th,.comparison2 td{vertical-align:middle;padding:12px 10px;}
.comparison2 td{border-right:1px solid #E0E0E0;border-bottom:1px solid #E0E0E0; background-color:#fff;}
.comparison2 th{text-align:center;border-right:1px solid #fff;}
.comparison2>thead>tr>th:nth-child(n+2){background-color:var(--subcolor04);color:#fff;}
.comparison2>thead>tr>th:first-child{width:6em; background-color:var(--subcolor04); color:#fff;}
.comparison2>tbody>tr>th{background-color:var(--subcolor04);color:#fff;}
.colorRed td{border-right:1px solid #E0E0E0;border-bottom:1px solid #E0E0E0;}
.colorRed th{border-right:1px solid #fff;}
.colorRed>thead>tr>th:nth-child(n+2){background-color:var(--subcolor06);}
.colorRed>tbody>tr>th{background-color:var(--subcolor06);}
.leftHeadShort>thead>tr>th:first-child{width:3em;}
.numberComparison td{text-align:right;}

.affiLinkCard{width:100%;max-width:800px;margin:50px auto;padding:20px;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;justify-content:center;gap:20px;background-color:#F8F6F5;box-shadow:0 3px 10px rgba(0,0,0,0.05); border-radius:8px;}
.LCtextArea{width:100%;order:1;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;justify-content:center;}
.LCtextArea>img{width:70%;height:auto;display:block;}
.LCtextLink{font-size:16px;line-height:3em;font-weight:bold;text-align:center;width:100%;margin:30px auto 0;display:block;background-color:var(--subcolor05);color:#fff;box-shadow:0 3px 0px #6A7771;position:relative; border-radius:4px; text-decoration:none;}
.LCtextLink:hover{background-color:#7B8882; text-decoration:none; color:#fff;}
.LCtextLink::after{content:'\f054';font-family:'Font Awesome 5 Free';font-weight:900;line-height:0;height:0;margin:auto;position:absolute;top:0;bottom:0;left:auto;right:15px;}
.siteImage{width:100%;margin:auto;display:block;filter:drop-shadow(5px 5px 10px rgba(0,0,0,0.1)); border-radius:4px;}
@media screen and (min-width:601px){
  .affiLinkCard{flex-direction:row;}
  .LCtextArea,.siteImage{width:50%;}
  .LCtextArea{order:0;}
}

/*OLD*/

/*■全体設定■*/
body {
    font-size: 16px;
    margin: 0px;
    padding: 0px;
}
img {
    border: none;
}
.advice01, .advice02 {
    color: var(--subcolor06);
    text-align: center;
    font-size: 100%;
}
.defs{ display: none; }
.clearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
.clearfix { display: inline-table; }
* html .clearfix { height: 1%; }
.clearfix { display: block; }

.tablePressUnder {
    line-height: 100%;
    margin-top: -1em;
    border: 1px solid var(--subcolor06);
    text-align: center;
    width: 100%;
    box-sizing: border-box;
    padding-bottom: 1em;
}

/*◆hタグ用デザイン◆*/
.box_01 {
  margin: 1.5em 0;
  padding: 0.8em 0.5em 0.8em 1em;
  font-size: 120%;
  font-weight: bold;
  color: #4A4A4A;
  border-left: 5px solid var(--subcolor06);
  background-color: #F8F6F5;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
  border-radius: 2px;
}
.box_02{
   background-color: #F8F6F5;
   border: 1px solid #E0E0E0;
   box-shadow: 0 2px 4px rgba(0,0,0,0.05);
   padding: 15px;
   border-radius: 4px;
}
.box_03{
    position: relative;
    color: #4A4A4A;
    font-size: 120%;
    font-weight: bold;
    margin: 0 0 1.5em;
    padding: 0.5em 0.5em 0.5em 1.7em;
    border-bottom: 2px solid var(--subcolor06);
}
.box_03:before{
    content: "";
    position: absolute;
    background: var(--subcolor06);
    top: 0.3em;
    left: 0.4em;
    height: 10px;
    width: 10px;
    transform: rotate(45deg);
}
.box_03:after{
    content: "";
    position: absolute;
    background: var(--subcolor03);
    top: 1.0em;
    left: 0;
    height: 6px;
    width: 6px;
    transform: rotate(15deg);
}
.box_04{
    color: var(--subcolor01);
    font-size:24px;
    font-weight:bold;
    text-shadow: 0 0 5px rgba(255,255,255,0.8), 0 0 10px rgba(154,140,152,0.3);
    padding: 15px;
    text-align: center;
}
.box_05 {
    position: relative;
    padding-left: 40px;
    color: var(--maincolor);
    font-size: 110%;
    line-height: 1.6;
    font-weight: bold;
}
.box_05:before {
    position:  absolute;
    top: 6px;
    left: 10px;
    width: 12px;
    height: 12px;
    border: 3px solid var(--subcolor03);
    content: "";
}
.box_05:after {
    position:  absolute;
    top: 0px;
    left: 2px;
    width: 15px;
    height: 15px;
    border: 3px solid var(--subcolor06);
    content: "";
}

/*◆チャット風◆*/
.chatbox {
    width: 100%;
    height: auto;
    overflow: hidden; 
    margin-bottom: 20px;
}
.chatface {
    float: left;
    margin-right: -100px;
}
.chatface img{
    border-radius: 50%; /* 丸くする */
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    width: 80px;
}
.chatarea {
    width: 100%;
    float: right;
}
.chathukidashi {
    display: inline-block;
    padding: 15px 20px;
    margin-left: 110px;
    margin-top: 8px;
    border-radius: 8px;
    position: relative;
    background-color: #F0F2F5; /* 上品なごく薄いグレーブルー */
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.chathukidashi:after {
    content: "";
    position: absolute;
    top: 20px; left: -10px;
    margin-top: -5px;
    display: block;
    width: 0px;
    height: 0px;
    border-style: solid;
    border-width: 8px 10px 8px 0;
    border-color: transparent #F0F2F5 transparent transparent;
}
.someone {
    background-color: #EFEBE9; /* 上品なごく薄いピンクグレー */
}
.someone:after {
    border-color: transparent #EFEBE9 transparent transparent;
}

/*◆文字装飾◆*/
.text01 { background: linear-gradient(transparent 60%, rgba(140,153,147,0.4) 60%); }
.text02 { background: linear-gradient(transparent 60%, rgba(201,173,167,0.4) 60%); }
.text03 { border: 2px dashed var(--subcolor01); padding:2px 5px; border-radius:2px; }

/*◆細かな装飾で使用しているもの◆*/
.sectionTitle { display: none; }
.space01 { margin: 0 10px 20px 10px; }
.space02 { margin-bottom: 20px; }

/* カードデザイン用CSS */
section .card {
  margin: 30px auto;
  width: 300px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
  overflow: hidden;
}
section .card-img {
  width: 100%;
  height: auto;
}
section .card-content {
  padding: 20px;
}
section .card-title {
  font-size: 18px;
  margin-bottom: 15px;
  text-align: center;
  color: #4A4A4A;
  font-weight: bold;
}
div .card-text {
  color: #6A6A6A;
  font-size: 14px;
  line-height: 1.6;
}
div .card-link {
  text-align: center;
  border-top: 1px solid #F0EBE9;
  padding: 15px;
  background: #FAFAFA;
}
div .card-link a {
  text-decoration: none;
  color: var(--subcolor01);
  font-weight: bold;
}
div .card-link a:hover {
  color: var(--maincolor);
}

.alignleft { float: left; margin-right: 2em; }
.alignright { float: right; margin-left: 2em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.red-txt { color: var(--subcolor06); }
.pickimg { text-align: center; }
.rank-img {
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  margin-top: 25px;
  border-radius: 4px;
}

/*■ヘッダーエリア■*/
.headerWrap { width: 100%; }
#head {
    width: 100%;
    max-width:960px;
    margin-right: auto;
    margin-left: auto;
    display: table;
    position: relative;
    height: auto;
}
#tagline {
    position: absolute;
    left: 0px;
    font-size: 11px;
    color: #888;
    padding-top: 5px;
    padding-bottom: 5px;
}
.headImage {
    vertical-align: middle;
    display: table-cell;
    width: 24%;
    padding-right: 1%;
    height: auto;
    margin: 0px;
}
.headLogo {
    vertical-align: middle;
    display: table-cell;
    height: auto;
    width: 100%;
}
.headnoImage {
    font-size: 150%;
    font-weight: bold;
    margin: 0px;
    padding: 0px;
    color: var(--maincolor);
}
.headBanner {
    vertical-align: middle;
    display: table-cell;
    text-align: right;
    width: 74%;
    max-width:728px;
    margin: 0px;
    padding: 0px;
}
.headBanner span { display: none !important; }
.headBanner img { height: auto; width: 100%; }

/*■ナビゲーションメニューエリア■*/
.naviWrap {
    width: 100%;
    background-color: var(--maincolor);
    /* 落ち着いたグラデーションへ変更 */
    background-image: linear-gradient(to bottom, #6d7a85 0%, var(--maincolor) 100%);
}
#navi {
    width: 100%;
    max-width:960px;
    margin-right: auto;
    margin-left: auto;
}
.menuOpen { display: none; }
#navi ul {
    margin: 0px;
    padding: 0px;
    display: table;
    table-layout: fixed;
    width: 100%;
    text-align: center;
    list-style-type: none;
}
#navi ul li {
    display: table-cell;
    border-right: 1px solid rgba(255,255,255,0.1);
    vertical-align: middle;
}
#navi ul li:first-child { border-left: 1px solid rgba(255,255,255,0.1); }
#navi ul li a {
    font-weight: normal;
    color: #FFF;
    display: block;
    text-decoration: none;
    padding: 12px 10px;
    cursor:pointer;
    transition: background 0.3s;
}
#navi ul li a:hover {
    background-color: rgba(255,255,255,0.1);
}
#navi ul li ul {
    display:none;
    position:absolute;
    z-index:9999;
    box-shadow: 0 3px 6px rgba(0,0,0,0.1);
}
#navi ul li ul li {
    background-color: var(--maincolor);
    display:block;
    padding:0;
    position:relative;
    text-align: left;
    border: none;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}
#navi ul li ul li:first-child { border-top: 2px solid var(--subcolor01); }
#navi ul li ul li a.isParent { padding-right: 30px; }
#navi ul li ul li a.isParent:after {
    content:"▼"; font-size: 80%; color: rgba(255,255,255,0.5);
    position: absolute; top: 12px; right: 10px;
}

/*■パンくずエリア■*/
#bread { width: 100%; max-width:960px; margin: 0 auto; }
.breadTitle { display: none; }
.breadInner { padding: 10px 5px; font-size:12px; color:#888; }
.breadInner a { color: var(--subcolor01); text-decoration:none; }
.breadInner a:hover { text-decoration:underline; }

#wrap {
    width:100%;
    max-width:960px;
    background-color: #FCFBFA; /* 優しいオフホワイト */
    clear: both;
    margin: 0 auto;
    padding: 20px 0;
}

/*■コンテンツエリア■*/
#main {
    width: 66.66%;
    max-width:640px;
    float: left;
    margin-bottom: 0px;
}
[class^="icon-"], [class*=" icon-"] {
    display: inline-block;
    color: var(--subcolor03);
    fill: currentColor;
}
.icon-n-star, .icon-h-star, .icon-star { width: 20px; height: 20px; }
.icon-n-star2, .icon-h-star2, .icon-star2 { width: 15px; height: 15px; }

/*◆記事エリア共通◆*/
.postArea {
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid #EAEAEA;
    margin-right: 15px;
    margin-left: 15px;
}
.postAreaInner { width: 100%; }
.postContent { width: 100%; }
.postTitle {
    background-color: #F8F6F5;
    border-left: 4px solid var(--subcolor01);
    font-weight: bold;
    padding: 15px;
    font-size: 110%;
    border-radius: 2px;
}
.postTitle a { text-decoration: none; color: #4A4A4A; }
.postTitle a:hover { color: var(--subcolor01); }
.postTime { font-size: 12px; color: #888; margin-top: 5px; display:block; text-align:right; }
.postArea p { line-height: 1.8; color: #555; }
.postArea footer p { text-align: right; margin: 0; padding: 0; }

#rssblockquote {
    background-color: #F8F6F5;
    padding: 15px;
    border: 1px solid #EAEAEA;
    margin: 1em 0;
    border-radius: 4px;
}
#rssblockquote img { max-width:100%; height:auto; }

/*ランキング用テーブル*/
.pure-table {
    border-collapse: collapse;
    border-spacing: 0;
    border: 1px solid #E0E0E0;
    width: 100%;
    margin-bottom: 2em;
}
.pure-table caption { color: #666; font-size: 90%; padding: 1em 0; text-align: center; }
.pure-table td, .pure-table th {
    border-left: 1px solid #E0E0E0;
    border-bottom: 1px solid #E0E0E0;
    padding: 10px 15px;
}
.pure-table td:first-child, .pure-table th:first-child { border-left-width: 0; }
.pure-table thead { background: var(--subcolor02); color: #fff; text-align: left; }
.pure-table td { background-color: #fff; }
.pure-table-odd td, .pure-table-striped tr:nth-child(2n-1) td { background-color: #F8F6F5; }

.imgs_ct div { width: 50%; text-align: center; float: left; }
.clear_rank { clear: both; }

/*○トップページウィジェットエリア○*/
.postSubArea { margin: 0 15px 20px 15px; }
.postSubArea h2 {
    font-weight: bold;
    padding: 12px 15px;
    background-color: var(--subcolor04);
    color: #fff;
    margin-top: 10px;
    border-radius: 2px;
}
.postSubArea ul {
    padding: 15px;
    border: 1px solid #E0E0E0;
    border-top: none;
    height: 150px;
    overflow: auto;
    margin: 0 0 20px 0;
    background: #fff;
}
.postSubArea ul li {
    padding: 8px 0;
    border-bottom: 1px dashed #E0E0E0;
    font-size: 90%;
}
.postSubArea ul li a { color:#555; text-decoration:none; }
.postSubArea ul li a:hover { color:var(--subcolor01); }

/*○記事エリア（アイテム一覧用）○*/
.areaList {
    margin: 0 15px 20px 15px;
    background-color: #fff;
    border: 1px solid #E0E0E0;
    padding: 15px;
    border-radius: 4px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}
.areaList ul, .areaListPage ul { margin: 0px; padding: 0px; }
.areaList li, .areaListPage li { padding: 5px 10px; float: left; list-style-type: none; font-size:90%; }
.areaListTextTitle { margin-bottom: 1em; font-weight:bold; color:var(--maincolor); border-bottom:1px solid #E0E0E0; padding-bottom:5px; }

.itemMainArea { padding-top: 10px; clear: both; display: flex; align-items: center; }
.itemPostImage { float: left; width: 45%; }
.itemPostImage img { width: 100%; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.metaList {
    width: 50%;
    margin: 0 0 0 5%;
    background: #F8F6F5;
    border-radius: 4px;
    padding: 15px;
}
.metaList ul { margin: 0; padding: 0; list-style:none; font-size: 14px; line-height:1.8; color:#555; }

.itemPostLink { text-align: center; margin-top:20px; }
.itemPostLink a {
    width: 90%;
    background-color: var(--subcolor03); /* サンドベージュ */
    border-radius: 4px;
    color: #fff;
    display: block;
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    margin: 0 auto;
    padding: 12px 0;
    transition: background 0.3s;
}
.itemPostLink a:hover { background-color: #BAA698; }

.itemListLink { clear: both; width: 80%; margin: 20px auto; text-align: center; }
.itemListLink a {
    color: #FFF;
    display: block;
    padding: 15px;
    font-size: 120%;
    font-weight: bold;
    text-decoration: none;
    border-radius: 4px;
    background-color: var(--subcolor05);
    background-image: linear-gradient(to bottom, #9EAAA4 0%, var(--subcolor05) 100%);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: all 0.3s;
}
.itemListLink a:hover {
    background-color: #7A8881;
    background-image: linear-gradient(to bottom, #8C9993 0%, #7A8881 100%);
}

/*◆ページナビ関連◆*/
.listPageNavi, .singlePageNavi { width: 100%; padding: 20px 0; overflow:hidden; }
.next_post { float: left; width: 45%; padding-left: 15px; }
.previous_post { float: right; width: 45%; text-align: right; padding-right: 15px; }
.next_post a, .previous_post a { color: var(--subcolor01); text-decoration:none; font-size:90%; }

/*◆コメントエリア◆*/
.comment_title, .comment-reply-title {
    font-weight: bold;
    padding: 10px 15px;
    background-color: var(--subcolor04);
    color: #fff;
    margin-top: 20px;
    border-radius: 2px;
}
.comments_list { list-style-type: none; margin: 0; padding: 0; margin-bottom: 20px; }
.comments_list ul { list-style-type: none; margin: 0; padding: 0; padding-left:20px; }
.comments_list li { padding: 15px; background: #fff; border: 1px solid #E0E0E0; margin-top: 10px; border-radius:4px; }
.comment-awaiting-moderation { color: var(--subcolor06); font-size:90%; }
.comments_pagination { width: 100%; padding: 0; list-style-type: none; margin: 10px 0; overflow:hidden; }
.next_comments { float: left; width: 48%; }
.prev_comments { float: right; width: 48%; text-align: right; }
.commentInputField, .commentInputArea { width: 100%; max-width:400px; padding:10px; border:1px solid #ccc; border-radius:4px; margin-bottom:10px; font-family:inherit;}
.commentInputArea { height: 120px; resize:vertical; }
.commentNeed { font-size: 80%; color: var(--subcolor06); padding-left: 1em; }

.contentsSearch { margin: 0 15px 40px 15px; }
.contentsSearch .searchFrom { width: 100%; margin-bottom: 10px; padding:8px; border:1px solid #ccc; border-radius:4px; }
.contentsSearch .searchButton { 
    display: block; width:100px; padding:8px; background:var(--maincolor); color:#fff; border:none; border-radius:4px; cursor:pointer;
}

/*■サイドエリア■*/
#side {
    width: 31.25%;
    max-width:300px;
    float: right;
    color: #4A4A4A;
}
.sideBanner { text-align: center; margin-bottom:20px;}
.sideBanner h2 { display: none; }
.sideBanner img { height: auto; width: 100%; max-width:300px; border-radius:4px; }

/*◆サイドランキングエリア◆*/
.sideRank { text-align: center; margin-bottom:30px; }
.sideRank h2 {
    background-color: var(--maincolor) !important;
    padding: 12px;
    color: #FFF !important;
    font-weight: bold;
    border-radius:2px;
    font-size:110%;
}
.sideRank h3 {
    padding: 8px;
    font-weight: bold;
    color: var(--maincolor);
    background-color: #F8F6F5 !important;
    border-bottom:1px solid #E0E0E0;
    font-size:100%;
    margin-top:10px;
}
.sideRank img { height: auto; max-width:100%; margin: 15px auto; display: block; border-radius:4px; }

.rankBtn { width: 100%; }
.rankBtn p { margin: 0 auto 15px; width: 90%; }
.rankBtn a {
    display: block;
    padding: 10px;
    text-decoration: none;
    font-weight: bold;
    color: #FFF;
    border-radius: 4px;
    font-size: 90%;
    transition: opacity 0.3s;
}
.rankBtn a:hover { opacity: 0.8; }
.rankBtn01 {
    background-color: var(--subcolor05);
    background-image: linear-gradient(to bottom, #9EAAA4 0%, var(--subcolor05) 100%);
}
.rankBtn02 {
    background-color: var(--subcolor03);
    background-image: linear-gradient(to bottom, #DCD0C7 0%, var(--subcolor03) 100%);
}

/*◆検索窓エリア◆*/
.searchFormWrap { text-align: center; position: relative; height: 36px; margin-bottom: 20px; }
.searchFrom { width: 70%; height: 34px; position: absolute; left: 0px; padding: 0 10px; border:1px solid #ccc; border-radius:4px 0 0 4px; }
.searchButton {
    cursor: pointer; height: 36px; width: 28%; position: absolute; right: 0;
    border: none; background: var(--subcolor02); color: #fff; border-radius: 0 4px 4px 0;
}

/*◆サイドメニュー◆*/
#side aside { margin-bottom:30px; background:#fff; border:1px solid #E0E0E0; border-radius:4px; overflow:hidden;}
#side aside h2 { background-color: var(--subcolor04); padding: 12px 15px; color:#fff; font-size:100%; margin:0;}
#side aside ul { margin: 0px; padding:0; list-style:none; }
#side select { margin: 15px; width:calc(100% - 30px); padding:8px; border-color:#ccc;}

.sideMenuType1 ul li, .sideMenuType2 ul li { border-bottom: 1px solid #F0F0F0; }
.sideMenuType1 ul li a, .sideMenuType2 ul li a { display:block; padding: 12px 15px; color:#555; text-decoration:none; font-size:90%; transition:background 0.3s;}
.sideMenuType1 ul li a:hover, .sideMenuType2 ul li a:hover { background-color: #F8F6F5; color:var(--subcolor01); }

.sideMenuType3 ul { padding: 10px 15px; }
.sideMenuType3 ul li { list-style-position: inside; padding: 8px 0; font-size:90%; color:#555; border-bottom:1px dashed #E0E0E0;}
.sideMenuType4 div { padding: 15px; font-size:90%; line-height:1.6;}

/*■フッターエリア■*/
#foot {
    width: 100%;
    max-width:960px;
    background-color:var(--maincolor);
    margin: 0 auto;
    color: #FFF;
    padding: 20px 0;
    font-size:90%;
}
#foot a { color: #E0E0E0; text-decoration:none; }
#foot a:hover { color: #fff; text-decoration:underline;}
.widgetFooterTitle1, .widgetFooterTitle2 { display: none; }
.footerMenuType1 { text-align: center; }
.footerMenuType1 ul { width: 90%; margin: 0 auto; display: table; table-layout: fixed; padding:0;}
.footerMenuType1 ul li { display: table-cell; border-right: 1px solid rgba(255,255,255,0.2); padding: 0 10px; vertical-align: middle; }
.footerMenuType1 ul li:last-child { border-right: none; }
.footerMenuType1 ul li ul { display: none; }

.footerMenuType2 { float: left; padding: 0 20px; width:33.3%; box-sizing:border-box;}
.footerMenuType2 ul { padding-left:15px; margin:10px 0;}

/*◆最下部エリア◆*/
address {
    width: 100%;
    max-width:960px;
    background-color: var(--maincolor);
    text-align: center;
    margin: 0 auto;
    padding: 15px 0;
    color: rgba(255,255,255,0.6);
    font-size: 12px;
    border-top: 1px solid rgba(255,255,255,0.1);
}
address a { color: rgba(255,255,255,0.8); text-decoration:none;}

/*■検索結果、カテゴリ等一覧ページ■*/
.catch_that_img { height: auto; width: 150px; border-radius:4px;}
.listTitle { font-size: 130%; font-weight: bold; color:var(--maincolor); margin-bottom:10px;}

.flat-button a {
    width: 80%;
    background-color: var(--maincolor);
    border-radius: 4px;
    box-shadow: 0 3px 0 #434D54;
    color: #ffffff;
    display: block;
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    padding: 15px;
    margin: 2em auto;
}

/*■レスポンシブ■*/
@media (max-width: 767px) { 
  #main { width: 100%; float: none; margin-bottom: 20px; }
  #side { width: 100%; float: none; }
  .searchFormWrap { padding: 15px 10px; background: transparent;}
  .searchFrom { width: 70%; left: 0; }
  .footerMenuType2 { width:100%; float:none; margin-bottom:20px;}
}
@media (max-width: 643px) { 
  #head, .headLogo, .headImage, .headBanner { display: block; width: 100%; text-align: center; padding:0; margin:0 auto 10px;}
  #tagline { position:relative; display: block; padding: 5px 0; }
  .headnoImage { width: 100%; }

  /*◆ナビゲーションメニューがアコーディオンタイプに変更◆*/
  .menuOpen { display: inline-block; cursor: pointer; color: #FFF; padding: 10px 15px; font-weight:bold;}
  .menuOpen:after { content:"▼"; padding-left: 1em; }
  #navi .menu-item-has-children { position: relative; }
  #navi .menu-item-has-children:after { content:"▼"; position: absolute; top: 12px; right: 15px; color: rgba(255,255,255,0.5); }
  
  #navi ul { display: block; text-align: left; }
  #navi ul li {
      display: block;
      border:none;
      border-bottom: 1px solid rgba(255,255,255,0.1);
      background-color: var(--maincolor);
      padding: 0;
  }
  #navi ul li a { display: block; padding: 15px; }
  #navi ul li a:hover { background-color: rgba(0,0,0,0.1); color:#fff; }
  
  #navi ul li ul { display:none; position:static; margin: 0; box-shadow:none;}
  #navi ul li ul li { background-color:rgba(0,0,0,0.1); padding:0; border-bottom: 1px solid rgba(255,255,255,0.05); }
  #navi ul li ul li:first-child { border-top: none; }
  #navi ul li ul li a { padding-left:30px; font-size:90%;}

  .itemPostImage { float: none; width: 100%; max-width:300px; margin: 0 auto 15px; }
  .metaList { width: 100%; margin: 0; font-size: 13px; padding:10px;}
  .itemListLink { width: 90%; }
  .itemListLink a { font-size: 110%; }
  
  .footerMenuType1 { text-align: left; padding: 0 15px; }
  .footerMenuType1 ul { width: 100%; display: block; margin:0;}
  .footerMenuType1 ul li { display: block; border:none; padding: 10px 0; border-bottom:1px solid rgba(255,255,255,0.1);}
  .rank-img { margin-top: 10px; }
}
@media (max-width: 480px) { 
  .itemPostImage { width: 100%; }
  .metaList { width: 100%; }
  .itemListLink { width: 100%; }
  .mahosp { display:block; margin:0 auto 10px; text-align:center; }
  .maho { display:block; margin:0 auto 20px; text-align:center; }
}

.postArea img { max-width: 100% !important; height: auto; border-radius:4px;}
.trbgcolor { background-color: #E6DFDB; } /* 大人しいベージュに */
.font { color: #4A4A4A; font-size: 100%; }

/*◆blockquoteデザイン追加◆*/
blockquote{
    background-color:#F8F6F5;
    padding:1.5em 1.5em 1.5em 3em;
    position:relative;
    color:#666;
    border-radius:4px;
    border:1px solid #EAEAEA;
}
blockquote:before{
    content:"“";
    font-size:400%;
    line-height:1em;
    font-family: serif;
    color:var(--subcolor02);
    position:absolute;
    left:10px;
    top:10px;
}

/*◆リストデザイン◆*/
.defaultlist, .defaultlist li{ padding:0px; margin:0px; }
.defaultlist li{ list-style-type:none !important; margin: 5px 0 !important; }
.list5 li{ position:relative; padding-left:20px; line-height:1.6; margin-bottom:8px;}
.list5 li:before{
    content:''; height:0px; width: 90%; display:block; position:absolute; 
    top:1.2em; left:0px; border-bottom: 1px dashed #ccc; z-index:-1;
}
.list5 li:after{
    content:''; display:block; position:absolute; background:var(--subcolor01);
    width:6px; height:6px; top:0.6em; left:4px; border-radius: 50%;
}

/*◆お問合せフォームスタイル◆*/
.wpcf7 { margin: 40px 0; background:#fff; padding:20px; border-radius:4px; border:1px solid #EAEAEA;}
.asterisk { margin: 0 0.2em; color: var(--subcolor06); }
.wpcf7 span.wpcf7-not-valid-tip { font-size: 80%; color:var(--subcolor06);}
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="url"], .wpcf7 textarea {
    background-color: #FAFAFA; color: #4A4A4A; width: 100%; box-sizing:border-box;
    border: 1px solid #ddd; font-size: 100%; padding: 10px; border-radius: 4px; font-family:inherit;
}
.wpcf7 input[type="submit"] {
    font-size: 16px; font-weight:bold; padding: 12px 30px; background: var(--maincolor);
    color: #fff; border-radius: 4px; cursor: pointer; border: none; transition:background 0.3s;
}
.wpcf7 input[type="submit"]:hover { background: #6d7a85; }

/*****トップページ用エリア*****/
:root { --color-yellow: rgba(208,189,176,0.3); } /* マーカー色も控えめに */
.updown {animation: fluffy 2s infinite;}
@keyframes fluffy { 0%, 100% {transform: translateY(-3px);} 50% { transform: translateY(3px); } }
.p-bottom1 {padding-bottom: 15px;}
.purple-gradient-text {background-image: linear-gradient(180deg, var(--maincolor), var(--subcolor01)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-weight: bold;}
.yellow-marker {background: linear-gradient(transparent 60%, var(--color-yellow) 60%);}
.number-circle {width: 25px; height: 25px; background-color: var(--subcolor01); color: #fff; padding: 15px; border-radius:50%; display:inline-flex; justify-content:center; align-items:center;}
@media (max-width: 400px) { h1 {text-align: center;} }

ul.localFrontList{padding-left:0;text-align:center;}
ul.localFrontList>li, .topcontframe {
    margin-bottom: 16px;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    box-sizing: border-box;
    background:#fff;
    box-shadow:0 2px 5px rgba(0,0,0,0.02);
}
ul.localFrontList>li a, .topcontframe a { display: block; padding: 15px; color:#4A4A4A; text-decoration:none;}
.contentbtn { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: stretch; text-align: center; margin-bottom: 30px; }
.topbtn { width: 48%; margin: 5px 0; }
.topbtnwid { width: 100%; margin: 5px auto; }
.topbtnwid, .topbtn { line-height: 1.4; border-radius:4px; overflow:hidden;}
.topbtnwid a, .topbtn a {
    display: block; color: #fff; text-decoration: none; padding: 16px 10px; background: var(--subcolor01); font-weight:bold; transition:all 0.3s;
}
.topbtnwid a:hover, .topbtn a:hover { background: var(--maincolor); color: #fff; }

/* ボタンの基本設定 */
.btn-101, .btn-101 *, .btn-101 :after, .btn-101 :before, .btn-101:after, .btn-101:before { border: 0 solid; box-sizing: border-box; }
.btn-101 {
  -webkit-tap-highlight-color: transparent;
  -webkit-appearance: button;
  background-image: none;
  font-family: inherit;
  font-weight: bold;
  line-height: 1.5;
  margin: 30px auto;
  cursor: pointer;
  /* ★大人カラーに変更：ダスティローズ系 */
  --thickness: 2px;
  --roundness: 30px;
  --color: var(--subcolor06); 
  background: rgba(181, 141, 148, 0.05); /* 極薄いローズ背景 */
  --opacity: 0.8;
  border-radius: var(--roundness);
  color: var(--color);
  display: block;
  font-size: 1rem;
  padding: 1rem 3rem;
  position: relative;
  text-align: center; 
  transition: background 0.3s;
}
.btn-101:hover { background: rgba(181, 141, 148, 0.1); }
.btn-101:active { --opacity: 0; background: rgba(181, 141, 148, 0.15); }
.btn-101 svg { border-radius: var(--roundness); display: block; height: 100%; left: 0; position: absolute; top: 0; width: 100%; pointer-events:none;}
.btn-101 rect {
  fill: none;
  stroke: var(--color);
  stroke-width: var(--thickness);
  rx: var(--roundness);
  stroke-dasharray: 150%;
  stroke-dashoffset: 80;
  -webkit-animation: snake 3s linear infinite;
  animation: snake 3s linear infinite;
  height: 100%;
  opacity: var(--opacity);
  width: 100%;
}
@-webkit-keyframes snake { to { stroke-dashoffset: 300%; } }
@keyframes snake { to { stroke-dashoffset: 300%; } }
.frontTopButton:hover{text-decoration:none;}

/*目次アコーディオン*/
#table-of-contents {
    background: #F8F6F5; /* 上品なグレーベージュ */
    padding: 20px;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    font-family: inherit;
    line-height: 1.6;
}
.toc-accordion-wrap { position: relative; width: 100%; }
input#toc-trigger { display: none; }
.toc-content {
    max-height: 300px; /* 少し低めに設定して大人っぽく */
    overflow: hidden; 
    transition: max-height 0.6s ease-in-out; 
}
.toc-content::before {
    content: "";
    position: absolute;
    bottom: 40px;
    left: 0;
    width: 100%;
    height: 60px;
    background: linear-gradient(to bottom, rgba(248,246,245,0), rgba(248,246,245,1) 80%);
    pointer-events: none; 
    opacity: 1;
    transition: opacity 0.3s;
}
.toc-trigger-label {
    display: block; width: 100%; text-align: center; padding: 12px 0; margin-top: -10px;
    cursor: pointer; background: #E6DFDB; color: #555; font-size:14px;
    border-radius: 0 0 8px 8px; position: relative; z-index: 10; transition:background 0.3s;
}
.toc-trigger-label:hover { background: #DCD4CF; }
.toc-trigger-label::after { content: "目次を全て表示する ▼"; }
input#toc-trigger:checked ~ .toc-content { max-height: 2000px; }
input#toc-trigger:checked ~ .toc-content::before { opacity: 0; pointer-events: none; }
input#toc-trigger:checked ~ .toc-trigger-label::after { content: "目次を閉じる ▲"; }