/*
Theme Name: Takapi
Theme URI: https://108takapi.jp/
Author: 株式会社トラスト
Author URI: https://108takapi.jp/
Description: 週刊TAKAPI向けのニュースメディアテーマ。トップニュース、カテゴリ別記事、ヘッダー、フッター、広告導線をカスタマイザーから細かく設定できます。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: takapi
*/

:root{
    --takapi-blue:#0057bd;
    --takapi-blue-dark:#00469a;
    --takapi-text:#111;
    --takapi-muted:#667085;
    --takapi-border:#e5eaf1;
    --takapi-bg:#fff;
    --takapi-soft:#f5f8fc;
    --takapi-radius:8px;
    --takapi-container:1180px;
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    background:#fff;
    color:var(--takapi-text);
    font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Yu Gothic",YuGothic,Meiryo,sans-serif;
    line-height:1.75;
    margin:0;
}

img{
    height:auto;
    max-width:100%;
}

a{
    color:var(--takapi-blue);
}

.screen-reader-text{
    clip:rect(1px,1px,1px,1px);
    height:1px;
    overflow:hidden;
    position:absolute !important;
    width:1px;
}

.takapi-container{
    margin:0 auto;
    max-width:var(--takapi-container);
    padding-left:20px;
    padding-right:20px;
}

.takapi-main{
    min-height:55vh;
}

.takapi-content-layout{
    display:grid;
    gap:36px;
    grid-template-columns:minmax(0, 1fr) 300px;
    margin:40px auto 70px;
    max-width:var(--takapi-container);
    padding:0 20px;
}

.takapi-content-layout.no-sidebar{
    display:block;
}

.takapi-page-title{
    border-left:5px solid var(--takapi-blue);
    font-size:28px;
    font-weight:900;
    line-height:1.35;
    margin:0 0 24px;
    padding-left:12px;
}

.takapi-card-grid{
    display:grid;
    gap:24px;
    grid-template-columns:repeat(3, minmax(0, 1fr));
}

.takapi-post-card{
    min-width:0;
}

.takapi-post-thumb{
    aspect-ratio:16 / 9;
    background:#eef3f8;
    border-radius:6px;
    display:block;
    overflow:hidden;
    position:relative;
    text-decoration:none;
}

.takapi-post-thumb img{
    display:block;
    height:100%;
    object-fit:cover;
    transition:transform .25s ease;
    width:100%;
}

.takapi-post-card:hover .takapi-post-thumb img{
    transform:scale(1.04);
}

.takapi-no-image{
    align-items:center;
    color:#7b8794;
    display:flex;
    font-size:13px;
    font-weight:900;
    height:100%;
    justify-content:center;
}

.takapi-badge{
    background:var(--takapi-blue);
    border-radius:4px;
    bottom:8px;
    color:#fff;
    display:inline-block;
    font-size:12px;
    font-weight:900;
    left:8px;
    line-height:1;
    max-width:calc(100% - 16px);
    overflow:hidden;
    padding:6px 8px;
    position:absolute;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.takapi-post-title{
    font-size:18px;
    font-weight:900;
    line-height:1.5;
    margin:12px 0 6px;
}

.takapi-post-title a{
    color:#111;
    text-decoration:none;
}

.takapi-post-title a:hover{
    color:var(--takapi-blue);
}

.takapi-post-excerpt{
    color:#777;
    font-size:14px;
    font-weight:700;
    line-height:1.6;
    margin:0 0 8px;
}

.takapi-post-date{
    color:#777;
    display:block;
    font-size:14px;
    font-weight:800;
}

.takapi-pagination{
    margin-top:34px;
}

.takapi-pagination .nav-links{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.takapi-pagination a,
.takapi-pagination span{
    border:1px solid var(--takapi-border);
    border-radius:5px;
    color:#111;
    display:inline-flex;
    font-weight:800;
    min-width:38px;
    padding:7px 12px;
    text-decoration:none;
}

.takapi-pagination .current,
.takapi-pagination a:hover{
    background:var(--takapi-blue);
    border-color:var(--takapi-blue);
    color:#fff;
}

.takapi-sidebar{
    min-width:0;
}

.takapi-widget{
    border:1px solid var(--takapi-border);
    border-radius:8px;
    margin-bottom:18px;
    padding:18px;
}

.takapi-widget-title{
    border-left:4px solid var(--takapi-blue);
    font-size:18px;
    font-weight:900;
    margin:0 0 14px;
    padding-left:10px;
}

.takapi-entry{
    margin:0 auto 70px;
    max-width:860px;
    padding:36px 20px 0;
}

.takapi-entry-title{
    font-size:34px;
    font-weight:900;
    line-height:1.35;
    margin:0 0 12px;
}

.takapi-entry-meta{
    color:#777;
    font-size:14px;
    font-weight:800;
    margin-bottom:24px;
}

.takapi-entry-thumb{
    border-radius:8px;
    margin:0 0 26px;
    overflow:hidden;
}

.takapi-entry-content{
    font-size:17px;
}

.takapi-entry-content h2,
.takapi-entry-content h3{
    line-height:1.45;
    margin-top:2em;
}

.takapi-entry-content p{
    margin:0 0 1.4em;
}

.takapi-empty{
    background:var(--takapi-soft);
    border:1px solid var(--takapi-border);
    border-radius:8px;
    color:var(--takapi-muted);
    font-weight:700;
    padding:22px;
}

@media(max-width:1024px){
    .takapi-card-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .takapi-content-layout{
        grid-template-columns:1fr;
    }
}

@media(max-width:680px){
    .takapi-container,
    .takapi-content-layout,
    .takapi-entry{
        padding-left:16px;
        padding-right:16px;
    }

    .takapi-card-grid{
        grid-template-columns:1fr;
    }

    .takapi-page-title{
        font-size:24px;
    }

    .takapi-entry-title{
        font-size:27px;
    }
}
