/*
--------------------------------------------------------------
 style.css  … 現在のデザインシステム本体(グローバル共通)
--------------------------------------------------------------
 読み込み順: normalize -> theme-legacy.css -> このファイル
            -> front.css(トップのみ) -> 各ページ用CSS
            -> theme-final.css(最優先の畳み込み修正)

 ・色やフォントの基準はすべて :root のトークン(=CSS変数)を参照。
 ・旧デザイン由来で「いまも必要なデフォルト」は「ベース」欄に移設済み。
   例: p{margin:0} / a / ul / li / button / address / h1〜h4 / .wrapper
 ・完全に旧デザイン専用のルールは theme-legacy.css に退避。
 ・新規の調整は基本 ここ(共通) or ページ別CSS or theme-final.css の末尾へ。
--------------------------------------------------------------
*/

/* ===== デザイントークン ===== */
:root{
    --font-sans:"Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "メイリオ", sans-serif;
    --font-serif:"Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", Georgia, "Times New Roman", serif;
    --navy-deep: #071331;
    --navy: #10265d;
    --gold: #c7a34a;
    --gold-light: #ead28b;
    --paper: #f8f6f0;
    --paper-dark: #eeeade;
    --ink: #172039;
    --muted: #687084;
    --line: rgba(199, 163, 74, .34);
}

/* ===== ベース ===== */
*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
    display:block;
    margin:0;
    color:var(--ink);
    background:var(--paper);
    font-family:var(--font-sans);
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
}

p{
    margin:0;
}

a{
    text-decoration:none;
    color:inherit;
}

ul{
    padding:0;
    margin:0;
}

li{
    list-style:none;
}

button{
    cursor:pointer;
    border:none;
    background:none;
    padding:0;
}

address{
    font-style:normal;
}

h1{
    font-size:24px;
    margin:0;
}

h2{
    font-size:20px;
    font-weight:bold;
    color:#100169;
    border-bottom:#100169 solid 2px;
    padding-bottom:8px;
    margin-bottom:20px;
}

h3{
    margin:0;
    font-size:18px;
}

h4{
    margin:0;
    font-size:16px;
}

.wrapper{
    display:flex;
    flex-direction:column;
    align-items:center;
    margin:60px 0 0 0;
}

.page-title{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:80px;
    font-weight:bold;
    text-align:center;
    color:#f2f2f2;
    background-color:#100169;
    margin-bottom:40px;
}

.single-page-title{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:80px;
    font-weight:bold;
    font-size:22px;
    text-align:center;
    color:#100169;
    border-bottom:2px solid #100169;
    margin-bottom:40px;
}

/* 旧レイアウト(サイドバー)を確実に非表示 */
.left-bar{display:none;}

/* ===== ヘッダー ===== */
.site-header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    width:100%;
    z-index:100;
    background:linear-gradient(135deg, var(--navy) 0%, var(--navy-deep) 100%);
    border-bottom:1px solid var(--line);
}

.site-header-inner{
    width:min(1180px, calc(100% - 48px));
    min-height:84px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

.site-brand{
    display:flex;
    align-items:center;
    gap:12px;
    color:#fff;
    flex-shrink:0;
}

.site-brand img{width:112px;height:auto;}

.site-brand span{
    padding-left:12px;
    border-left:1px solid var(--gold);
    color:var(--gold-light);
    font-family:var(--font-serif);
    font-size:14px;
    letter-spacing:.08em;
    white-space:nowrap;
}

.site-nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin-left:auto;
}

.site-nav a{
    padding:8px 0;
    color:#d9dfef;
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
    border-bottom:1px solid transparent;
    transition:color .2s ease, border-color .2s ease;
}

.site-nav a:hover{color:var(--gold-light);border-color:var(--gold);}

.site-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}

.site-actions > a{
    width:34px;
    height:34px;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    overflow:hidden;
    transition:background .2s ease, transform .2s ease;
}

.site-actions > a:hover{background:rgba(234,210,139,.14);transform:translateY(-2px);}
.site-actions img{width:100%;height:100%;object-fit:cover;}
.site-actions .contact-icon{width:100%;height:100%;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}

/* ===== ハンバーガー ===== */
.hamburger{display:none;position:relative;width:40px;height:40px;margin-left:4px;}

.hamburger span{background:var(--gold-light);}

/* ===== メインコンテナ ===== */
/* ヘッダーが position:fixed のため、ファーストビューが隠れないように
   ヘッダー高さ分(= 84px + ボーダー1px)の余白を確保する。 */
.main-contents-wrapper{
    display:block;
    width:100%;
    min-height:0;
    padding-top:85px;
    background:
        radial-gradient(circle at 12% 0%, rgba(199,163,74,.08), transparent 32%),
        var(--paper);
}

.main-contents{
    width:100%;
    height:auto;
    min-height:0;
    overflow:visible;
    background:transparent;
    box-shadow:none;
}

main{width:100%;}

/* ===== レイアウト共通 ===== */
main .wrapper{
    width:min(100% - 48px, 1080px);
    margin:0 auto;
    padding:84px 0;
    align-items:stretch;
}

main .wrapper:nth-of-type(even){background:transparent;}

h1,h2,h3,h4{font-family:var(--font-serif);letter-spacing:.04em;}

main h2{
    width:auto;
    margin:0 0 38px;
    padding:0 0 16px;
    color:var(--ink);
    font-size:clamp(23px, 3vw, 32px);
    border-bottom:1px solid var(--line);
    scroll-margin-top:100px;
}

main h2::before{
    content:"";
    display:block;
    width:46px;
    height:2px;
    margin-bottom:14px;
    background:var(--gold);
}

.page-title,.single-page-title{
    width:100%;
    height:auto;
    min-height:170px;
    margin:0;
    padding:54px 24px;
    color:#fff;
    background:linear-gradient(135deg, var(--navy-deep), var(--navy));
    border:0;
    font-family:var(--font-serif);
    font-size:clamp(28px, 4vw, 42px);
    letter-spacing:.08em;
}

main p{color:var(--muted);}

/* ===== 一覧(ニュース・実績・理由・買取方法) ===== */
main .news-list,
main .works-list,
main .reason-list,
main .methods-list{width:100%;}

main .news-item{border-bottom:1px solid var(--line);padding:18px 0;color:var(--ink);}
main .news-item a{display:flex;align-items:baseline;gap:24px;}
main .news-date{width:88px;margin:0;color:var(--gold);font-size:13px;flex-shrink:0;}
main .news-title{font-size:15px;color:var(--ink);}

/* ===== ボタン共通 ===== */
main .news-archive-button,
main .item-archive-button,
main .works-archive-button,
main .methods-archive-button,
main .organize-archive-button,
main .back-link,
.contact-form-submit input[type="submit"]{
    width:auto;
    min-width:190px;
    height:auto;
    min-height:48px;
    padding:12px 28px;
    border:1px solid var(--gold);
    border-radius:2px;
    background:var(--navy);
    color:#fff;
    font-size:14px;
    letter-spacing:.04em;
    transition:background .2s ease, color .2s ease, transform .2s ease;
}

main .news-archive-button:hover,
main .item-archive-button:hover,
main .works-archive-button:hover,
main .methods-archive-button:hover,
main .organize-archive-button:hover,
main .back-link:hover,
.contact-form-submit input[type="submit"]:hover{background:var(--gold);color:var(--navy-deep);transform:translateY(-2px);}

main .reason-item,
main .methods-item,
main .items-box,
main .faq-item,
main .privacy-policy-list,
main .contact-form input,
main .contact-form textarea{
    border-color:var(--line);
    border-radius:2px;
    box-shadow:none;
}

main .reason-item{padding:26px;border-width:1px;}
main .reason-item h3{color:var(--ink);font-size:19px;}

/* ===== フッター ===== */
footer{
    margin:40px 0 0;
    padding:64px 24px 24px;
    background:var(--navy-deep);
    border-top:1px solid var(--line);
}

footer > img{width:180px;margin:0 auto 40px;}
footer .footer-assurance{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    max-width:1080px;
    margin:0 auto 42px;
    padding:28px 20px;
    text-align:center;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}
footer .footer-assurance strong{font-family:var(--font-serif);color:var(--gold-light);font-size:22px;}
footer .footer-assurance a{color:#fff;font-size:28px;font-weight:700;letter-spacing:.04em;}
footer .footer-assurance span{color:#c5cee3;font-size:13px;}
footer iframe{display:block;max-width:1080px;margin:0 auto;opacity:.86;}
footer address{max-width:1080px;margin:0 auto;padding:40px 0 0;color:#d9dfef;}
footer .shop-name{font-family:var(--font-serif);color:#fff;font-size:24px;}
footer .footer-info{color:#aeb9d5;font-size:13px;font-weight:400;}
footer .footer-nav{margin:28px 0 0;}
footer .copy-right{max-width:1080px;margin:36px auto 0;padding:20px 0 0;border-top:1px solid var(--line);color:#8490b1;}
footer .contact-icon{width:50px;height:50px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}

/* ===== 各ページ共通レイアウト ===== */
main .items-box,
main .organize-content,
main .access-info,
main .access-table,
main .contact-form,
main .privacy-policy-content{
    width:100%;
    max-width:980px;
}

main .items-box{
    display:grid;
    grid-template-columns:180px minmax(0, 1fr);
    align-items:center;
    gap:30px;
    padding:30px 0;
    border-top:1px solid var(--line);
}

main .items-box img{width:150px;height:150px;object-fit:contain;justify-self:center;}
main .items-box p{font-size:15px;line-height:1.9;}

main .organize-content{gap:20px;}
main .organize-content p{font-size:15px;line-height:1.9;}

main .access-info{padding:26px 30px;border:1px solid var(--line);border-radius:2px;box-shadow:none;}
main .access-table{border:1px solid var(--line);border-collapse:collapse;}
main .access-table th, main .access-table td{border:1px solid var(--line);padding:16px 18px;}

main .methods-list{width:100%;max-width:980px;background:transparent;padding:0;}
main .methods-list > .methods-item{
    display:grid;
    grid-template-columns:180px minmax(0, 1fr);
    align-items:start;
    gap:24px;
    width:100%;
    padding:30px 0;
    border-top:1px solid var(--line);
}
main .methods-list > .methods-item h3{grid-column:1 / -1;margin:0;}
main .methods-list > .methods-item > img{width:150px;height:150px;object-fit:contain;grid-row:2 / span 2;justify-self:center;}
main .methods-list > .methods-item .methods-text-list{grid-column:2;background:var(--paper);}

main .organize-item{width:100%;max-width:980px;display:grid;grid-template-columns:180px minmax(0, 1fr);gap:24px;align-items:start;}
main .organize-item > img{width:150px;height:150px;object-fit:contain;justify-self:center;}
main .organize-text-list{width:100%;background:var(--paper);}

/* 整理ページの手順見出し: 番号と文字を同じベースラインに揃える */
main .organize-text-list h3{
    display:flex;
    align-items:baseline;
    gap:.5em;
    font-family:var(--font-sans);
    font-size:17px;
    font-weight:700;
}

main .organize-text-list h3 .num{
    flex:0 0 auto;
    min-width:1.3em;
    text-align:center;
    color:var(--gold-deep);
}

main.news-archive .news-list,
main.works-archive .works-list,
main .single-news-wrap,
main .news-article,
main .works-article,
main .single-work-content{width:100%;max-width:980px;margin-left:auto;margin-right:auto;box-sizing:border-box;}

main .single-news-wrap,
main .single-work-content{display:flex;flex-direction:column;align-items:stretch;}

main .single-news-content,
main .single-work-text{
    width:100%;
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
}

main .single-news-date,
main .single-work-date{
    display:block;
    align-self:flex-start;
    margin-bottom:14px;
    color:var(--gold);
    font-size:14px;
    font-weight:700;
}

main .single-work-thumb{
    display:flex;
    justify-content:center;
    width:100%;
    max-width:760px;
    height:auto;
    margin:0 auto 24px;
    overflow:hidden;
}

main .single-work-thumb img{width:100%;height:auto;border-radius:2px;}

main .contact-form input[type="text"],
main .contact-form input[type="email"],
main .contact-form input[type="tel"],
main .contact-form textarea{width:100%;max-width:none;}

/* ===== レスポンシブ ===== */
@media (max-width:700px){
    main .items-box,
    main .methods-list > .methods-item,
    main .organize-item{grid-template-columns:1fr;}
    main .items-box img,
    main .methods-list > .methods-item > img,
    main .organize-item > img{width:110px;height:110px;grid-row:auto;}
    main .methods-list > .methods-item .methods-text-list{grid-column:auto;}
    main .access-table th, main .access-table td{padding:12px 10px;font-size:13px;}
}

@media (max-width:1100px){
    .site-nav{gap:12px;}
    .site-nav a{font-size:11px;}
}

@media (max-width:1150px){
    .site-header-inner{min-height:72px;}
    .main-contents-wrapper{padding-top:73px;}
    .site-nav{
        position:fixed;
        inset:72px 0 0;
        display:flex;
        flex-direction:column;
        align-items:stretch;
        justify-content:flex-start;
        gap:0;
        padding:10px 24px 30px;
        background:var(--navy-deep);
        opacity:0;
        pointer-events:none;
        transform:translateY(-10px);
        transition:opacity .2s ease, transform .2s ease;
        overflow-y:auto;
    }
    .site-nav.is-open{opacity:1;pointer-events:auto;transform:translateY(0);}
    .site-nav a{padding:15px 0;border-bottom:1px solid rgba(199,163,74,.25);font-size:14px;}
    .hamburger{display:flex;}
}

@media (max-width:600px){
    .site-header-inner{width:calc(100% - 28px);gap:10px;}
    .site-brand img{width:94px;}
    .site-brand span{padding-left:8px;font-size:11px;}
    .site-actions > a{display:none;}
    main .wrapper{width:calc(100% - 36px);padding:58px 0;}
    main h2{margin-bottom:28px;font-size:24px;}
    main .news-item a{display:block;}
    main .news-date{display:block;margin-bottom:4px;}
    .page-title,.single-page-title{min-height:132px;padding:40px 18px;font-size:27px;}
    footer{margin-top:28px;padding:46px 18px 20px;}
    footer iframe{height:220px;}
}

/* ===== ニュース/実績 記事(シングル)のモバイル ===== */
/* 本体は左右に余白を取り、文面が画面端に張り付かないようにする。 */
@media (max-width:760px){
    main .news-article,
    main .works-article{width:calc(100% - 36px);}
}