
/* ==========================================================
   Base
========================================================== */

:root {

    --primary: #1d5fa8;
    --secondary: #5aa8e6;
    --green: #6dbb59;
    --green-light: #edf7e6;

    --blue-light: #edf6fd;

    --danger: #d72626;
    --danger-bg: #fff6f6;

    --border: #d9e4ee;

    --text: #333;
    --subtext: #666;

    --white: #fff;

    --shadow:
        0 8px 20px rgba(0,0,0,.06);

    --radius: 18px;

    --transition: .3s ease;

}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    scroll-behavior:smooth;

}

body{

    font-family:
        "Yu Gothic",
        "Hiragino Kaku Gothic ProN",
        sans-serif;

    color:var(--text);
    line-height:1.8;
    background:#fff;

}

img{

    display:block;
    max-width:100%;
    height:auto;

}

a{

    text-decoration:none;
    color:inherit;

}

.container{

    width:min(1180px, calc(100% - 40px));
    margin:auto;

}

.bankcard-page section{

    padding:80px 0;

}

.section-title{

    position:relative;

    text-align:center;

    color:var(--primary);

    font-size:34px;

    font-weight:700;

    margin-bottom:60px;

}

.section-title::before,
.section-title::after{

    content:"";

    position:absolute;

    top:50%;
    width:180px;
    height:2px;

    background:#b8d0ea;

}

.section-title::before{

    left:0;

}

.section-title::after{

    right:0;

}



/* ==========================================================
   Hero
========================================================== */

.hero-section{

    background:
        linear-gradient(#ffffff,#f8fcff);

    border-top:3px solid #d7ebfa;

}

.hero-inner{

    display:grid;
    grid-template-columns:1.1fr .9fr;
    align-items:center;
    gap:60px;

}

.hero-subtitle{

    font-size:34px;
    font-weight:700;
    color:#444;

}

.hero-title{

    margin-top:10px;

    font-size:50px;
    line-height:1.2;
    font-weight: bold;
    color:#333;

}

.hero-date{

    margin-top:20px;

    color:#e10000;

    font-size:54px;

    font-weight:bold;

    line-height:1.2;

}

.hero-date-label{
    display:inline-block;
    margin-bottom:8px;
    font-size:28px;
    font-weight:700;
    color:#2a5da4;
    letter-spacing:.08em;
}

.hero-image{

    display:flex;
    justify-content:center;
    align-items:center;

}

.hero-image img{

    width:100%;
    max-width:520px;
    height:auto;
    transition:var(--transition);

}

.hero-image img:hover{

    transform:translateY(-8px);

}

.hero-date-emphasis{
    font-size:1.4em; 
    line-height:1;
    display:inline-block;
}

/* ==========================================================
   Card Select
========================================================== */

.card-select-section{

    background:#fff;

}

.card-grid{

    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:40px;

}

.card-box{

    border-radius:24px;

    padding:40px;

    box-shadow:var(--shadow);

    transition:var(--transition);

}

.card-box:hover{

    transform:translateY(-8px);

}

.personal-card{

    background:var(--green-light);

}

.business-card{

    background:var(--blue-light);

}

.card-box-header{

    text-align:center;

}

.card-category{

    font-size:17px;

    color:#777;

}

.card-box-header h3{

    margin-top:8px;

    font-size:34px;

    color:#707070;

}

.card-image{

    margin:35px auto;

    display:flex;
    justify-content:center;

}

.card-image img{

    max-height:170px;

}

.card-button{

    text-align:center;

}



/* ==========================================================
   Button
========================================================== */

.btn{

    display:inline-flex;

    align-items:center;
    justify-content:center;

    min-width:320px;

    padding:16px 28px;

    border-radius:999px;

    color:#fff;

    font-weight:bold;

    transition:var(--transition);

}

.btn-green{

    background:var(--green) !important;

}

.btn-blue{

    background:var(--primary);

}

.btn:hover{

    transform:translateY(-3px);

    filter:brightness(1.08);

    box-shadow:0 10px 20px rgba(0,0,0,.12);

}



/* ==========================================================
   Warning
========================================================== */

.warning-section{

    padding-top:20px;

}

.warning-box{

    border:2px solid #ef9d9d;

    background:var(--danger-bg);

    border-radius:15px;

    padding:35px;

}

.warning-title{

    color:var(--danger);

    font-size:28px;

    margin-bottom:22px;

}

.warning-list{

    padding-left:25px;

}

.warning-list li{

    margin-bottom:15px;

    color:#444;

}

/* ==========================================================
   Schedule
========================================================== */

.schedule-section{

    background:#f7fbff;

}

.schedule-flow{

    display:flex;

    justify-content:center;

    align-items:stretch;

    gap:20px;

    margin-top:50px;

}

.schedule-item{

    position:relative;

    flex:1;

    background:#fff;

    border-radius:18px;

    padding:26px 20px;

    text-align:center;

    border:1px solid #e8eef5;

    box-shadow:0 8px 20px rgba(0,0,0,.06);

    transition:.3s;

    min-height:190px;

}

.schedule-item:hover{

    transform:translateY(-6px);

}

.schedule-item h3{

    color:var(--primary);

    font-size:26px;

    margin-bottom:16px;

}

.schedule-item p{

    line-height:1.7;

}

.schedule-item small{

    display:block;

    margin-top:15px;

    color:#d40000;

    font-size:12px;

    line-height:1.6;

    text-align:left;

}

/* 最後だけ強調 */

.schedule-item-last{

    flex:1.35;

    border:2px solid #ffbcbc;

}

.schedule-label{

    display:inline-block;

    margin-bottom:14px;

    padding:5px 14px;

    background:#e60012;

    color:#fff;

    font-size:12px;

    font-weight:bold;

    border-radius:999px;

}

/* 三角矢印 */

.schedule-arrow{

    align-self:center;

    width:0;

    height:0;

    border-top:16px solid transparent;

    border-bottom:16px solid transparent;

    border-left:24px solid #2f67c8;

}

/* リンク */

.schedule-links{

    margin-top:50px;

    display:flex;

    justify-content:center;

    gap:50px;

    flex-wrap:wrap;

}

.schedule-links a{

    color:var(--primary);

    font-weight:bold;

    text-decoration:none;

}

.schedule-links a::before{

    content:"▶ ";

    color:#2f67c8;

}

/* SP */

@media(max-width:768px){

    .schedule-flow{

        flex-direction:column;

        gap:18px;

    }

    .schedule-arrow{

        transform:rotate(90deg);

        margin:auto;

    }

    .schedule-item-last{

        flex:1;

    }

}

/* ==========================================================
   Contact
========================================================== */

.contact-section{

    background:#fff;

}

.contact-box{

    background:#fffdd8;

    border:2px solid #ddd49d;

    padding:55px 40px;

    text-align:center;

    border-radius:10px;

}

.contact-box h2{

    font-size:40px;

    color:#555;

}

.contact-phone{

    color:#e30000;

    font-size:50px;

    font-weight:700;

    margin:25px 0;

}

.contact-time{

    font-size:22px;

    font-weight:bold;

}

.contact-note{

    margin-top:25px;

    color:#666;

    font-size:15px;

}



/* ==========================================================
   Tablet
========================================================== */

@media (max-width:1023px){

.hero-inner{

    grid-template-columns:1fr;
    text-align:center;
    gap:40px;

}

.hero-title{

    font-size:50px;

}

.hero-date{

    font-size:42px;

}

.hero-date-label{
    font-size:22px;
    margin-bottom:6px;
}

.hero-image img{
    max-width:420px;
    width:100%;
}

.card-grid{

    gap:30px;

}

.schedule-flow{

    grid-template-columns:1fr;
    gap:25px;

}

.schedule-arrow{

    transform:rotate(90deg);

    justify-self:center;

}

.section-title::before,
.section-title::after{

    display:none;

}

.contact-phone{

    font-size:46px;

}

}



/* ==========================================================
   Smartphone
========================================================== */

@media (max-width:767px){

.bankcard-page section{

    padding:55px 0;

}

.container{

    width:calc(100% - 24px);

}

.hero-subtitle{

    font-size:20px;

}

.hero-title{

    font-size:36px;

}

.hero-date{

    font-size:34px;

}

.hero-date-label{
    font-size:20px;
    margin-bottom:6px;
}

.card-grid{

    grid-template-columns:1fr;

}

.card-box{

    padding:28px;

}

.card-box-header h3{

    font-size:26px;

}

.btn{

    width:100%;
    min-width:auto;

}

.section-title{

    font-size:26px;
    margin-bottom:40px;

}

.warning-title{

    font-size:22px;

}

.warning-box{

    padding:24px;

}

.schedule-item{

    min-height:auto;

    padding:24px;

}

.schedule-item h3{

    font-size:22px;

}

.schedule-links{

    flex-direction:column;
    gap:18px;
    text-align:center;

}

.contact-box{

    padding:35px 20px;

}

.contact-box h2{

    font-size:28px;

}

.contact-phone{

    font-size:34px;
    line-height:1.3;

}

.contact-time{

    font-size:17px;

}

.contact-note{

    font-size:14px;

}

}
/* ==========================================
   Scroll Animation
========================================== */

.fade-up{

    opacity:0;

    transform:translateY(40px);

    transition:
        opacity .7s ease,
        transform .7s ease;

}

.fade-up.is-visible{

    opacity:1;

    transform:translateY(0);

}


/* ==========================================
   Button Ripple
========================================== */

.btn{

    position:relative;

    overflow:hidden;

}

.ripple{

    position:absolute;

    border-radius:50%;

    background:rgba(255,255,255,.45);

    transform:scale(0);

    animation:ripple .6s linear;

    pointer-events:none;

}

@keyframes ripple{

    to{

        transform:scale(4);

        opacity:0;

    }

}

.font-size-70 {
    font-size: 70%;
}

/*=========================================
 任意解約ボタン
=========================================*/

.form-button-section{
    padding: 0 !important;
}

.btn-cancel-form{

    position: relative;
    overflow: hidden;

    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;

    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: 24px 30px;

    color:#fff !important;
    text-decoration:none;

    border-radius:18px;

    background:linear-gradient(135deg,#6eba44 0%,#6eba44 100%);
    box-shadow:
        0 12px 30px rgba(72,153,74,.28),
        inset 0 1px 0 rgba(255,255,255,.35);

    transition:.35s ease;
}

/* 光が流れる */
.btn-cancel-form::before{

    content:"";

    position:absolute;
    top:0;
    left:-120%;

    width:70%;
    height:100%;

    background:linear-gradient(
        110deg,
        transparent 0%,
        rgba(255,255,255,.15) 35%,
        rgba(255,255,255,.7) 50%,
        rgba(255,255,255,.15) 65%,
        transparent 100%
    );

    transform:skewX(-20deg);
}

.btn-cancel-form:hover::before{
    animation:shine 1s ease;
}

@keyframes shine{

    from{
        left:-120%;
    }

    to{
        left:160%;
    }

}

.btn-cancel-form:hover{

    transform:translateY(-5px) scale(1.02);

    box-shadow:
        0 18px 40px rgba(72,153,74,.35),
        inset 0 1px 0 rgba(255,255,255,.4);
    
    text-decoration: none;

}

.btn-text{

    font-size:30px;
    font-weight:700;
    line-height:1.45;
    letter-spacing:.04em;
    text-align:center;

}

.btn-arrow{

    font-size:34px;
    font-weight:700;

    transition:.3s;

}

.btn-cancel-form:hover .btn-arrow{

    transform:translateX(8px);

}

@media (max-width:768px){

    .btn-cancel-form{

        padding:18px 18px;
        gap:12px;
        border-radius:14px;

    }

    .btn-text{

        font-size:20px;
        line-height:1.5;

    }

    .btn-arrow{

        font-size:24px;

    }

}

.btn-text{
    display:flex;
    flex-direction:column;
    align-items:center;
    line-height:1.35;
}

.btn-text small{
    font-size:18px;
    font-weight:500;
    opacity:.9;
}

.btn-text strong{
    font-size:30px;
    font-weight:700;
}

.font-bold{
    font-weight:700 !important;
}