/* ================================
   新潟市ハイヤータクシー協会
   style_new.css Version 1.0
================================ */

/* リセット */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

/* 全体 */
body{

    font-family:
    "Hiragino Sans",
    "Yu Gothic",
    "Meiryo",
    sans-serif;

    background:#f7f8f5;

    color:#333;

    line-height:1.8;

}

/* リンク */

a{

    text-decoration:none;

    transition:.3s;

}

/* --------------------------------
   Header
-------------------------------- */

.site-header{

    position:absolute;

    top:0;

    left:0;

    width:100%;

    padding:30px 60px;

    background:transparent;

    text-align:left;

    z-index:1000;

}

.site-header h1{

    color:#fff;

    font-size:34px;

    font-weight:300;

    letter-spacing:2px;

    text-shadow:0 3px 10px rgba(0,0,0,.4);

}

/* --------------------------------
   Navigation
-------------------------------- */

.nav{

    position:absolute;

    top:90px;

    width:100%;

    display:flex;

    justify-content:center;

    gap:45px;

    z-index:1000;

}

.nav a{

    color:#fff;

    font-size:16px;

    font-weight:500;

    text-shadow:0 2px 8px rgba(0,0,0,.6);

}

.nav a:hover{

    opacity:.75;

}

/* --------------------------------
   Hero
-------------------------------- */

.hero-banner{

    position:relative;

    height:100vh;

    overflow:hidden;

}

.hero-banner img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.hero-overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.15);

    display:flex;

    align-items:center;

}

.hero-copy{

    width:1200px;

    margin:0;

    padding:270px 0 0 90px;

    color:#fff;

}

.hero-sub{

    font-size:15px;

    letter-spacing:4px;

    margin-bottom:35px;

}

.hero-copy h2{

    font-size:70px;

    font-weight:300;

    line-height:1.35;

    margin-bottom:35px;

}

.hero-message{

    font-size:24px;

    line-height:2;

    margin-bottom:60px;

}

.scroll-link{

    color:#fff;

    border-bottom:1px solid rgba(255,255,255,.6);

    padding-bottom:8px;

}

/* --------------------------------
   Container
-------------------------------- */

.container{

    width:min(1100px,90%);

    margin:80px auto;

}

/* 見出し */

.container h2{

    font-size:32px;

    font-weight:300;

    margin-bottom:25px;

    color:#1E4F8A;

}

/* --------------------------------
   Notice
-------------------------------- */

.notice-card{

    background:#fff;

    padding:35px;

    border-radius:15px;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

}

/* --------------------------------
   Button
-------------------------------- */

.btn{

    display:inline-block;

    padding:15px 35px;

    background:#1E4F8A;

    color:#fff;

    border-radius:50px;

}

.btn:hover{

    background:#163c68;

}

/* --------------------------------
   Footer
-------------------------------- */

footer{

    background:#163c68;

    color:#fff;

    text-align:center;

    padding:35px;

}

/* --------------------------------
   Smartphone
-------------------------------- */

@media(max-width:768px){

.site-header{

padding:20px;

}

.site-header h1{

font-size:24px;

}

.nav{

position:static;

background:#163c68;

padding:20px;

flex-direction:column;

gap:15px;

}

.hero-copy{

padding:35px;

}

.hero-copy h2{

font-size:42px;

}

.hero-message{

font-size:18px;

}

.hero-banner{

height:80vh;

}

}
/* ================================
   Page Header / Form Common
================================ */

.page-header{
    background:#163c68;
    color:#fff;
    padding:24px 60px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:nowrap;
}

.page-header h1{
    font-size:24px;
    font-weight:300;
    letter-spacing:2px;
}

.page-header nav{
    display:flex;
    gap:28px;
    flex-wrap:nowrap;
    align-items:center;
}

.page-header nav a{
    color:#fff;
    font-size:14px;
}

.contact-page{
    width:min(900px,90%);
    margin:80px auto;
}

.contact-title{
    margin-bottom:40px;
}

.contact-title p:first-child{
    color:#D9B44A;
    letter-spacing:4px;
    font-size:14px;
    margin-bottom:10px;
}

.contact-title h2{
    font-size:36px;
    font-weight:300;
    color:#1E4F8A;
    margin-bottom:20px;
}

.notice-card h3{
    color:#1E4F8A;
    font-size:20px;
    margin:28px 0 10px;
}

.notice-card h3:first-child{
    margin-top:0;
}
.radio-group{
    background:#f7f8f5;
    padding:18px;
    border-radius:10px;
}

.radio-group label{
    display:block;
    margin:8px 0;
    font-weight:400;
}

.radio-group input{
    width:auto;
    margin-right:8px;
}

.privacy-check{
    margin-top:30px;
    padding:22px;
    background:#f7f8f5;
    border-radius:12px;
}

.privacy-check p{
    margin-bottom:12px;
}

.privacy-check input{
    width:auto;
    margin-right:8px;
}
/* ================================
   Lost and Found Form
================================ */

.contact-form input,
.contact-form textarea{
    width:100%;
    min-height:56px;
    padding:16px 18px;
    border:1px solid #d6dce5;
    border-radius:10px;
    font-size:16px;
    background:#fff;
}

.contact-form textarea{
    min-height:170px;
    line-height:1.8;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder{
    color:#9aa3ad;
}

.radio-group{
    background:#f7f8f5;
    padding:20px;
    border-radius:12px;
    border:1px solid #e2e6ea;
}

.radio-group label{
    display:block;
    margin:10px 0;
    font-weight:400;
}

.radio-group input{
    width:auto;
    min-height:auto;
    margin-right:8px;
}

.privacy-check{
    margin-top:35px;
    padding:24px;
    background:#f7f8f5;
    border-radius:14px;
    border:1px solid #e2e6ea;
}

.privacy-check p{
    margin:12px 0 15px;
}

.agree-label input{
    width:auto;
    min-height:auto;
    margin-right:8px;
}
.contact-form input,
.contact-form textarea,
.contact-form select{
    width:100%;
    min-height:58px;
    padding:16px 18px;
    border:1px solid #d6dce5;
    border-radius:10px;
    font-size:16px;
    background:#fff;
}

.contact-form textarea{
    min-height:180px;
    line-height:1.8;
}

.date-time-row{
    display:flex;
    gap:12px;
    align-items:center;
}

.date-time-row input{
    flex:2;
}

.date-time-row select{
    flex:1;
}

.privacy-check{
    margin-top:35px;
    padding:24px;
    background:#f7f8f5;
    border-radius:14px;
    border:1px solid #e2e6ea;
}

.privacy-check p{
    margin-bottom:15px;
}

.agree-label input{
    width:auto;
    min-height:auto;
    margin-right:8px;
}

@media(max-width:768px){
    .date-time-row{
        flex-direction:column;
        align-items:stretch;
    }
}
/* ================================
   Quick Menu Cards
================================ */

.quick-menu{
    width:min(1100px,90%);
    margin:-60px auto 80px;
    position:relative;
    z-index:10;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
}

.quick-card{
    background:#fff;
    padding:40px 24px;
    border-radius:18px;
    box-shadow:0 15px 35px rgba(0,0,0,.12);
    color:#333;
    text-align:center;
    min-height:230px;
}

.quick-card:hover{
    transform:translateY(-6px);
}

.quick-icon{
    font-size:42px;
    margin-bottom:18px;
}

.quick-card h3{
    font-size:22px;
    font-weight:600;
    color:#1E4F8A;
    margin-bottom:12px;
}

.quick-card p{
    font-size:14px;
    line-height:1.7;
    color:#555;
}

@media(max-width:900px){
    .quick-menu{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:600px){
    .quick-menu{
        grid-template-columns:1fr;
        margin:40px auto;
    }
}
.news-date{
    color:#D9B44A;
    font-weight:600;
    letter-spacing:1px;
    margin-bottom:10px;
}

.notice-card h3{
    color:#1E4F8A;
    font-size:24px;
    margin-bottom:18px;
}
.news-date{
    color:#D9B44A;
    font-weight:600;
    letter-spacing:1px;
    margin-bottom:10px;
}

.notice-card h3{
    color:#1E4F8A;
    font-size:24px;
    margin-bottom:18px;
}
/* ================================
   Today's NIIGATA
================================ */

.today-niigata{
    width:min(1100px,90%);
    margin:100px auto;
}

.section-title{
    margin-bottom:35px;
}

.section-title p{
    color:#d8a928;
    font-size:14px;
    letter-spacing:4px;
    font-weight:600;
}

.section-title h2{
    font-size:52px;
    color:#1E4F8A;
    margin-top:10px;
    margin-bottom:25px;
}

.today-grid{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:28px;
}

.today-card{
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 15px 35px rgba(0,0,0,.08);
}

.today-card img{
    width:100%;
    height:280px;
    object-fit:cover;
    display:block;
}

.today-card.large img{
    height:360px;
}

.today-text{
    padding:28px;
}

.today-date{
    color:#D9B44A;
    font-weight:600;
    letter-spacing:1px;
    margin-bottom:10px;
}

.today-text h3{
    color:#1E4F8A;
    font-size:24px;
    margin-bottom:14px;
}

.today-text p{
    line-height:1.9;
}

@media(max-width:768px){
    .today-grid{
        grid-template-columns:1fr;
    }

    .today-card.large img{
        height:260px;
    }
}
/* ================================
   Role Cards
================================ */

.role-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
    margin-top:30px;
}

.role-card{
    background:#fff;
    padding:40px 28px;
    border-radius:18px;
    box-shadow:0 15px 35px rgba(0,0,0,.08);
    text-align:center;
    transition:.3s;
}

.role-card:hover{
    transform:translateY(-6px);
}

.role-icon{
    font-size:38px;
    margin-bottom:16px;
}

.role-card h3{
   font-size:22px;
color:#1E4F8A;
line-height:1.5;
margin-bottom:12px;
}

.role-card p{
    font-size:15px;
    line-height:1.9;
    color:#555;
}

@media(max-width:900px){
    .role-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:600px){
    .role-grid{
        grid-template-columns:1fr;
    }
}
.container p{
    max-width:900px;
}
.container p{
    font-size:17px;
    line-height:2;
}
.section-message{
    max-width:900px;
    margin:20px auto 70px;
    padding:0 20px;
    text-align:center;
    font-size:18px;
    line-height:1.9;
    color:#555;
    font-weight:500;
}
.mini-topic{
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid #e5e8ec;
}

.mini-topic strong{
    display:block;
    color:#1E4F8A;
    font-size:16px;
    margin-bottom:6px;
}

.mini-topic p{
    font-size:14px;
    line-height:1.7;
    color:#555;
}
.news-button-row{
    display:flex;
    gap:18px;
    margin-top:30px;
    flex-wrap:wrap;
}

.btn-light{
    background:#ffffff;
    color:#1E4F8A;
    border:2px solid #1E4F8A;
}

.btn-light:hover{
    background:#f4f8fc;
}
.back-link{
    margin-top:40px;
    text-align:center;
}

.back-link a{
    color:#1E4F8A;
    text-decoration:none;
    font-weight:600;
    font-size:16px;
}

.back-link a:hover{
    text-decoration:underline;
}
.back-link{
    text-align:center;
    margin-top:35px;
}

.back-link a{
    color:#1E4F8A;
    text-decoration:none;
    font-size:16px;
    font-weight:600;
}

.back-link a:hover{
    text-decoration:underline;
}
/* ================================
   News List
================================ */

.news-list{
    display:grid;
    gap:24px;
}

.news-list-card{
    background:#fff;
    padding:35px;
    border-radius:18px;
    box-shadow:0 15px 35px rgba(0,0,0,.08);
}

.news-list-card h3{
    color:#1E4F8A;
    font-size:24px;
    margin-bottom:15px;
}

.news-list-card p{
    margin-bottom:18px;
}
.notice-card h3{
    margin-top:45px;
    margin-bottom:20px;
    font-size:34px;
}

.notice-card p{
    line-height:2;
    margin-bottom:20px;
}

.contact-box{
    margin-top:30px;
    padding:35px;
    border-radius:16px;
}

.contact-box p{
    margin-bottom:22px;
}

.contact-box hr{
    margin:30px 0;
}
.news-section-heading{
    border-left:6px solid #1E4F8A;
    padding-left:16px;
    margin-top:50px;
    margin-bottom:22px;
    color:#1E4F8A;
    font-size:28px;
    font-weight:600;
}
.flyer-image{
    display:block;
    width:100%;
    max-width:380px;
    margin:20px auto 25px;
    border-radius:12px;
    border:1px solid #ddd;
    box-shadow:0 10px 25px rgba(0,0,0,.12);
    transition:.3s;
}

.flyer-image:hover{
    transform:scale(1.02);
}
.flyer-image{
    display:block;
    width:100%;
    max-width:380px;
    margin:20px auto 25px;
    border-radius:12px;
    border:1px solid #ddd;
    box-shadow:0 10px 25px rgba(0,0,0,.12);
    transition:.3s;
}

.flyer-image:hover{
    transform:scale(1.02);
}
/* ================================
   News List Page
================================ */

.news-list{
    display:grid;
    gap:28px;
}

.news-list-card{
    background:#fff;
    padding:38px;
    border-radius:18px;
    box-shadow:0 15px 35px rgba(0,0,0,.08);
}

.news-list-card h3{
    color:#1E4F8A;
    font-size:26px;
    margin-bottom:18px;
}

.news-list-card p{
    line-height:2;
    margin-bottom:20px;
}

.news-list-card .btn{
    margin-top:10px;
}

/* ================================
   Header Menu Final
================================ */

.menu-btn{
    display:none;
}

@media (min-width:769px){

    .site-header .menu-btn,
    .page-header .menu-btn{
        display:none;
    }

    .page-header .nav{
        display:flex;
        justify-content:center;
        gap:42px;
    }

    .site-header + .nav a,
    .page-header .nav a{
        font-size:16px;
    }
}

@media (max-width:768px){

    .site-header,
    .page-header{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        padding:10px 20px;
        background:rgba(22,60,104,.85);
        z-index:3000;
    }

    .site-header h1,
    .page-header h1{
        font-size:15px;
        line-height:1.2;
        margin:0;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
        padding-right:55px;
    }

    .menu-btn{
        display:block;
        position:absolute;
        right:18px;
        top:8px;
        background:none;
        border:none;
        color:#fff;
        font-size:32px;
        cursor:pointer;
        z-index:3100;
    }

    .nav{
        display:none;
    }

    .nav.open{
        display:flex;
        position:absolute;
        top:54px;
        left:0;
        width:100%;
        flex-direction:column;
        background:#1E4F8A;
        padding:20px;
        gap:15px;
        z-index:2900;
    }

    .nav a{
        color:#fff;
        font-size:16px;
        text-decoration:none;
    }

    .hero-copy{
        padding-top:120px;
    }
}

.taxi-icon{
    font-size:18px;
    margin-right:6px;
}
/*==============================
加盟会社一覧
==============================*/

.company-list{
    margin-top:40px;
}

.company-item{
    background:#fff;
    padding:36px;
    border-radius:18px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    margin-bottom:24px;

}

.company-item strong{
    display:block;
    font-size:28px;
    color:#1f4f8d;
    margin-bottom:12px;
}

.company-item br{
    line-height:2;
}

.call{
    margin:12px 0;
    font-size:20px;
    font-weight:700;
    color:#1f4f8d;
}

.company-item a{
    color:#d8a63a;
    font-weight:600;
    text-decoration:none;
}

.company-item a:hover{
    text-decoration:underline;
}
/* ================================
   下層ページ ヘッダー安定版
================================ */

@media (min-width:769px){

    .page-header{
        display:block;
        padding:28px 60px;
        background:#163c68;
    }

    .page-header h1{
        font-size:26px;
        font-weight:300;
        margin:0 0 18px 0;
        white-space:normal;
    }

    .page-header .nav{
        position:static;
        width:100%;
        display:flex;
        justify-content:flex-start;
        gap:34px;
        flex-wrap:wrap;
        margin:0;
    }

    .page-header .nav a{
        color:#fff;
        font-size:15px;
        text-shadow:none;
        white-space:nowrap;
    }
}
/* 協会概要ページ */
.contact-page{
    padding-top:40px;
}
/* ================================
   協会概要ページ
================================ */

.contact-page{
    padding-top:40px;
    padding-bottom:60px;
}

.contact-page section{
    background:#fff;
    border-radius:18px;
    padding:35px 40px;
    margin-bottom:30px;
    box-shadow:0 15px 35px rgba(0,0,0,.08);
}

.contact-page section h2{
    color:#1E4F8A;
    font-size:34px;
    margin-bottom:25px;
}

.contact-page section p,
.contact-page section li{
    font-size:18px;
    line-height:2;
}

.contact-page ul{
    padding-left:25px;
}
/* スマホメニュー：右スライド風 */
@media (max-width:768px){

    .nav{
        display:none !important;
    }

    .nav.open{
        display:flex !important;
        position:fixed !important;
        top:0;
        right:0;
        left:auto;
        width:78%;
        height:100vh;
        flex-direction:column;
        background:linear-gradient(180deg,#163c68,#1E4F8A);
        padding:85px 28px 30px;
        gap:0;
        z-index:5000;
        box-shadow:-12px 0 30px rgba(0,0,0,.25);
    }

    .nav.open a{
        display:block;
        padding:18px 0;
        border-bottom:1px solid rgba(255,255,255,.18);
        color:#fff;
        font-size:17px;
        font-weight:600;
        letter-spacing:.5px;
    }

    .nav.open a:first-child{
        border-top:1px solid rgba(255,255,255,.18);
    }

    .menu-btn{
        position:fixed;
        z-index:6000;
    }
}
/* ================================
   Footer Version 2
================================ */

.site-footer{
    background:#163c68;
    color:#fff;
    text-align:center;
    padding:45px 20px;
    margin-top:80px;
}

.footer-links{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:26px;
    margin-bottom:25px;
}

.footer-links a{
    color:#fff;
    text-decoration:none;
    font-size:15px;
    opacity:.9;
    transition:.25s;
}

.footer-links a:hover{
    opacity:1;
    text-decoration:underline;
}

.footer-copy{
    font-size:14px;
    opacity:.7;
}

@media (max-width:768px){

    .footer-links{
        flex-direction:column;
        gap:15px;
    }

    .footer-links a{
        font-size:16px;
    }
}
/* ================================
   加盟会社一覧 Version 2
================================ */

.company-list{
      margin-top:40px;
}

.company-item{
    background:#fff;
    padding:30px 36px;
    border-radius:18px;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
    border-left:6px solid #1E4F8A;
    margin-bottom:24px;
}



.call{
    display:inline-block;
    background:#eef4fb;
    color:#1f4f8d;
    padding:10px 18px;
    font-size:16px;
    font-weight:600;
    border-radius:20px;
    text-decoration:none;
}

.company-item a{
    display:inline-block;
    margin-top:8px;
    padding:10px 22px;
    background:#1E4F8A;
    color:#fff;
    border-radius:30px;
    font-weight:600;
}

.company-item a:hover{
    background:#163c68;
    text-decoration:none;
}

@media(max-width:768px){
    .company-item{
        padding:24px;
    }

    .company-item strong{
        font-size:21px;
    }

    .call{
        font-size:18px;
    }
}
.company-header{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
}

.company-icon{
    font-size:24px;
    flex-shrink:0;
}

.company-item strong{
    margin:0;
    font-size:28px;
    color:#1f4f8d;
}
/* ================================
   加盟会社一覧：アイコン追加
================================ */

.company-item strong::before{
    content:"🚖 ";
    font-size:20px;
    margin-right:6px;
}
.address{
    margin:12px 0 16px;
    color:#666;
    font-size:15px;
    line-height:1.6;
}
/* 地区見出し */

.area-title{
    margin:50px 0 20px;
    padding:8px 0 8px 14px;
    border-left:5px solid #1f4f8d;
    color:#1f4f8d;
    font-size:28px;
    font-weight:700;
}