@charset "UTF-8";

.page-area {
    background: var(--color-paper-deep);
}

.page-area main {
    width: min(var(--content-main), calc(100% - 40px));
    margin: 36px auto 0;
    padding: 0;
}

.page-area main > section:not(.home-section) {
    margin: 0 0 34px;
    padding: 30px;
    overflow: hidden;
    border: 3px solid var(--color-ink);
    background: var(--color-paper);
    box-shadow: var(--shadow-paper);
}

.page-area main > section > h2,
.page-area .home-story-content h2 {
    margin: 0 0 24px;
    padding: 0 0 12px;
    border-bottom: 4px solid var(--color-green);
    color: var(--color-green);
    font-family: var(--font-serif);
    font-size: clamp(1.4rem, 3.55vw, 2.05rem);
    line-height: 1.45;
}

.page-area main > section > p {
    line-height: 1.95;
}

.page-area .home-section {
    width: 100%;
    margin: 0 0 34px;
}

.page-area .home-story {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 44px;
    align-items: center;
    padding: 36px;
    border: 3px solid var(--color-ink);
    background: var(--color-paper);
    box-shadow: var(--shadow-paper);
}

.page-area .home-story-reverse .home-story-image { order: 2; }
.page-area .home-story-reverse .home-story-content { order: 1; }

.page-area .home-story-image {
    min-width: 0;
    overflow: hidden;
    border: 3px solid var(--color-ink);
    box-shadow: 5px 5px 0 rgba(41,37,29,.16);
}

.page-area .home-story-image img {
    width: 100%;
    height: auto;
    max-height: 600px;
    object-fit: contain;
}

.page-area .home-story-content { min-width: 0; }
.page-area .home-story-content p { margin-bottom: 18px; line-height: 1.95; }

.page-area .home-section-label {
    margin: 0 0 12px;
    color: var(--color-gold);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .2em;
}

.page-area .home-emphasis {
    margin-top: 24px;
    padding: 17px 19px;
    border-left: 6px solid var(--color-gold);
    background: var(--color-gold-soft);
    font-weight: 800;
}

.page-area .home-point-list {
    margin-top: 24px;
    border-top: 1px solid var(--color-border);
}

.page-area .home-point-list > div {
    display: grid;
    grid-template-columns: minmax(90px, 120px) 1fr;
    gap: 15px;
    padding: 14px 0;
    border-bottom: 1px solid var(--color-border);
}

.page-area .home-point-list strong { color: var(--color-green); }
.page-area .home-point-list span { color: #555; font-size: .9rem; }

.area-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 28px;
}

.area-card,
.area-card-coming {
    min-width: 0;
    display: block;
    padding: 24px 18px;
    border: 3px solid var(--color-ink);
    text-align: center;
    text-decoration: none;
    box-shadow: 5px 5px 0 rgba(41,37,29,.16);
}

.area-card {
    background: var(--color-green);
    color: #fff;
    transition: transform .18s ease, box-shadow .18s ease;
}

.area-card:hover {
    transform: translate(-2px, -2px);
    box-shadow: 7px 7px 0 rgba(41,37,29,.16);
}

.area-card-coming {
    background: #777;
    color: #fff;
    cursor: default;
    opacity: .68;
}

.area-card strong,
.area-card-coming strong {
    display: block;
    margin-bottom: 6px;
    font-size: 1.2rem;
}

.area-card span,
.area-card-coming span {
    display: block;
    font-size: .76rem;
    letter-spacing: .12em;
    opacity: .82;
}

.area-card-coming small,
.area-card-coming .coming-soon {
    display: block;
    margin-top: 12px;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* Minami-Osaka detail pages */
.area-lead {
    max-width: 820px;
    margin: 0 auto 26px;
    padding: 18px 20px;
    border: 2px solid var(--color-ink);
    border-left: 7px solid var(--color-gold);
    background: var(--color-gold-soft);
    box-shadow: 4px 4px 0 rgba(41,37,29,.16);
    color: var(--color-ink);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.9;
}

.page-area-detail .investigation-result {
    border-color: var(--color-green-dark);
    background: linear-gradient(145deg, var(--color-green), #294b3a);
    color: var(--color-paper);
}

/* 実釣調査結果内の通常文章 */
.page-area-detail .investigation-result > p:not(.result-label):not(.investigation-caption):not(.investigation-note) {
    color: #333333;
}

.page-area-detail .investigation-result > p:not(.investigation-note) strong {
	color: #333333;
}

.investigation-result .result-label,
.note-guide .result-label {
    margin-bottom: 12px;
    color: var(--color-gold);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .16em;
}

.investigation-result h2 {
    border-bottom-color: var(--color-gold) !important;
    color: var(--color-green-dark) !important;
}

.investigation-photo {
    width: min(700px, 100%);
    margin: 20px auto;
    border: 6px solid #fff;
    box-shadow: 0 12px 30px rgba(0,0,0,.28);
}

.investigation-caption {
    max-width: 700px;
    margin: -8px auto 24px;
    color: var(--color-ink);
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.7;
    text-align: center;
}

.result-highlight {
    max-width: 650px;
    margin: 32px auto;
    padding: 24px;
    border: 4px solid var(--color-green-dark);
    background: var(--color-gold);
    box-shadow: 6px 6px 0 var(--color-red);
    color: var(--color-green-dark);
    text-align: center;
}

.result-highlight::before {
    content: "FIELD RESULT";
    display: block;
    margin-bottom: 7px;
    font-family: var(--font-serif);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .18em;
}

.result-highlight strong {
    display: block;
    color: var(--color-green);
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    font-size: clamp(3.5rem, 9vw, 5.8rem);
    line-height: 1;
}

.result-highlight span {
    display: block;
    margin-top: 8px;
    color: var(--color-green);
    font-size: 1.08rem;
    font-weight: 900;
}

.investigation-note {
    max-width: 760px;
    margin: 32px auto 0;
    padding: 20px 22px;
    border-left: 7px solid var(--color-gold);
    border-bottom: 3px solid var(--color-gold);
    background: var(--color-paper);
    box-shadow: 5px 5px 0 rgba(0,0,0,.22);
    color: var(--color-ink);
    font-weight: 700;
    line-height: 1.9;
    text-align: left;
}

.note-guide {
    text-align: center;
}

.note-guide ul {
    max-width: 650px;
    margin: 24px auto;
    padding: 0;
    list-style: none;
    text-align: left;
}

.note-guide li {
    position: relative;
    margin-bottom: 10px;
    padding: 12px 14px 12px 40px;
    border: 1px solid #d7d2c6;
    background: #fff;
    font-weight: 600;
}

.note-guide li::before {
    content: "✓";
    position: absolute;
    left: 14px;
    color: var(--color-red);
    font-weight: 900;
}

.note-price {
    max-width: 620px;
    margin: 28px auto 18px;
    padding: 18px;
    background: var(--color-green);
    color: #fff;
    font-size: 1rem;
}

.note-price strong {
    margin-left: 8px;
    color: var(--color-gold);
    font-size: 2rem;
}

.note-button {
    width: min(420px, 100%);
    display: block;
    margin: 20px auto 5px;
    padding: 16px 22px;
    border: 3px solid #55150f;
    background: var(--color-red);
    box-shadow: 0 6px 0 #55150f;
    color: #fff;
    font-size: 1rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
}

.page-area .home-story-content h2.holiday-heading {
    font-size: clamp(1rem, 2vw, 1.5rem);
}

.page-area .home-story-content h2.awaji-story-heading {
    font-size: clamp(1.1rem, 2.5vw, 1.6rem);
}

@media (max-width: 760px) {
    .page-area main {
        width: calc(100% - 28px);
        margin-top: 24px;
    }

    .page-area main > section:not(.home-section),
    .page-area .home-story {
        padding: 22px 18px;
        border-width: 2px;
        box-shadow: 4px 4px 0 rgba(41,37,29,.14);
    }

    .page-area .home-story {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .page-area .home-story-reverse .home-story-image { order: 1; }
    .page-area .home-story-reverse .home-story-content { order: 2; }

    .page-area main > section > h2,
    .page-area .home-story-content h2 {
        font-size: clamp(1.3rem, 5.8vw, 1.8rem);
    }
	
    .page-area .home-story-content h2.holiday-heading {
        font-size: clamp(1.15rem, 5vw, 1.55rem);
    }
    
    .page-area .home-story-content h2.awaji-story-heading {
    	font-size: clamp(1.05rem, 4.6vw, 1.4rem);
	}

    .page-area .home-point-list > div {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .area-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .area-card,
    .area-card-coming {
        padding: 18px 10px;
    }

    .area-card strong,
    .area-card-coming strong {
        font-size: 1rem;
    }

    .area-lead {
        padding: 15px;
        font-size: .94rem;
    }

    .investigation-photo { border-width: 4px; }
    .result-highlight { padding: 20px 12px; box-shadow: 4px 4px 0 var(--color-red); }
    .result-highlight strong { font-size: clamp(3.2rem, 17vw, 4.4rem); }
    .investigation-note { padding: 17px 16px; font-size: .94rem; }
}

@media (max-width: 480px) {
    .area-grid { grid-template-columns: 1fr; }
    .page-area main { width: calc(100% - 22px); }
}


/* 地域ごとの一次調査と公的資料。既存コンポーネントとは独立したコンテンツ。 */
.local-evidence {max-width: 920px; margin: 52px auto; padding: clamp(22px, 4vw, 42px); border: 1px solid rgba(118,137,121,.35); border-radius: 16px; background: rgba(245,249,244,.07); line-height: 1.95;}
.local-evidence-label {font-size: .78rem; letter-spacing: .14em; font-weight: 700; opacity: .78;}
.local-evidence h2 {margin: 12px 0 22px; font-size: clamp(1.35rem, 2.6vw, 1.9rem); line-height: 1.55;}
.local-evidence h3 {margin: 12px 0; font-size: 1.08rem;}
.local-evidence p {margin: 15px 0;}
.local-evidence .local-findings {border-left: 3px solid #669675; margin: 24px 0; padding: 5px 0 5px 21px;}
.local-evidence ul {padding-left: 1.3em; margin: 12px 0;}
.local-evidence li {margin: 8px 0;}
.local-evidence a {text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere;}
.local-sources {margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(118,137,121,.3);}
.local-evidence .local-sources-note {font-size: .88rem; opacity: .86;}
.region-introduction {max-width: 920px; margin: 35px auto; line-height: 1.95;}
.region-introduction h2 {font-size: clamp(1.25rem, 2.5vw, 1.85rem); line-height: 1.5;}
@media (max-width: 720px) {.local-evidence{margin: 30px 12px; padding: 22px 18px;}.region-introduction{padding: 0 12px;}}


/* 各市のnote記事一覧。1件につき .note-entry を増やせば表示が拡張される。 */
.page-area .note-archive { text-align: left; }
.note-archive .result-label { margin-bottom: 10px; color: var(--color-green); font-weight: 900; letter-spacing: .12em; }
.note-archive > p:not(.result-label) { max-width: 860px; margin: 16px auto 22px; line-height: 1.9; }
.note-entry-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr)); gap: 20px; margin: 26px 0; align-items: stretch; }
.note-entry { min-width: 0; height: 100%; box-sizing: border-box; padding: 25px 23px; background: #fff; border: 2px solid var(--color-ink); border-top: 7px solid var(--color-green); box-shadow: 5px 5px 0 rgba(41,37,29,.13); display: flex; flex-direction: column; }
.note-entry-meta { display: flex; flex-wrap: wrap; column-gap: 12px; row-gap: 5px; margin: 0 0 14px; font-size: .78rem; font-weight: 800; color: var(--color-green); }
.note-entry-image { display: block; width: 100%; max-width: 100%; height: auto; margin: 0 0 16px; border: 1px solid #d7d3cb; background: #f3f1ec; }
.note-entry h3 { margin: 0 0 12px; color: var(--color-ink); font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.5; }
.note-entry > p:not(.note-entry-meta) { margin: 0 0 15px; line-height: 1.85; }
.note-entry .note-entry-price { color: #625a4c; font-size: .86rem; font-weight: 800; }
.note-entry-link { display: inline-block; align-self: flex-start; margin-top: auto; padding: 12px 18px; background: var(--color-red); border: 2px solid #55150f; color: #fff; font-weight: 900; text-decoration: none; overflow-wrap: anywhere; }
.note-entry-link:hover, .note-entry-link:focus-visible { background: var(--color-green); border-color: var(--color-green); }
.note-archive .note-archive-footnote { margin-bottom: 0; font-size: .9rem; color: #554f46; }
.note-archive-footnote a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 480px) { .note-entry-list { grid-template-columns: 1fr; } .note-entry { padding: 21px 17px; } .note-entry-link { display: block; width: 100%; box-sizing: border-box; text-align: center; } }

.note-archive-jump { margin: 10px 0 28px; text-align: right; }
.note-archive-jump a { display: inline-block; padding: 10px 15px; border-bottom: 3px solid var(--color-green); color: var(--color-green); font-weight: 900; line-height: 1.6; text-decoration: none; }
.note-archive-jump a:hover, .note-archive-jump a:focus-visible { background: var(--color-gold-soft); text-decoration: underline; text-underline-offset: 3px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }


/* 実地調査の事実と推定を分けて見せる、地域ページ共通の記録表 */
.field-record-detail{max-width:1060px;margin:2rem auto;padding:clamp(18px,3vw,28px);border:1px solid #dbe5dc;border-radius:16px;background:#fff;color:#26382d;box-sizing:border-box}
.field-record-detail .field-record-kicker{margin:0 0 8px;color:#50775c;font-size:.76rem;font-weight:900;letter-spacing:.08em}
.field-record-detail h2{margin:0 0 12px;color:#20553a;font-size:clamp(1.3rem,2.5vw,1.8rem);line-height:1.5}
.field-record-detail>p{line-height:1.9}
.field-record-detail .field-record-table-wrap{overflow-x:auto;margin:16px 0}
.field-record-detail table{width:100%;border-collapse:collapse;min-width:520px;font-size:.92rem}
.field-record-detail th,.field-record-detail td{padding:12px;border-bottom:1px solid #dce8df;text-align:left;vertical-align:top;line-height:1.75}
.field-record-detail thead th{background:#eef5ef;color:#294d37}
.field-record-detail tbody th{white-space:nowrap}
.field-record-detail .field-record-note{margin:12px 0 0;color:#536358;font-size:.87rem}
@media(max-width:700px){.field-record-detail{margin:1.4rem .65rem;padding:17px}.field-record-detail table{font-size:.84rem}.field-record-detail th,.field-record-detail td{padding:9px}}
