/*
Theme Name: 紀州建築
Description: 2018年デザインと2022年保存HTMLを参考にした復旧用クラシックテーマ。写真等の公開前確認を継続中。
Version: 0.11.8
Requires at least: 6.3
Requires PHP: 8.3
Text Domain: kishukenchiku
*/
:root {
    --green:#73875b;
    --navy:#49536f;
    --cream:#f6eed4;
    --ink:#393831;
    --muted:#756f63;
    --pale:#d7ddce;
    --serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif CJK JP",serif;
    --sans:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
    background:#fff;
    color:var(--ink);
    font:14px/1.9 var(--sans);
}
img {
    max-width:100%;
    display:block;
}
a {
    color:inherit;
    text-decoration:none;
}
a:hover {
    text-decoration:underline;
    text-underline-offset:5px;
}
button {
    font:inherit;
}
a:focus-visible,button:focus-visible {
    outline:3px solid var(--navy);
    outline-offset:5px;
}
[hidden] {
    display:none!important;
}
.wrap {
    width:min(1000px,calc(100% - 48px));
    margin-inline:auto;
}
.skip-link {
    position:absolute;
    top:0;
    left:24px;
    padding:10px 20px;
    background:#fff;
    z-index:10;
    transform:translateY(-150%);
}
.skip-link:focus {
    transform:translateY(0);
}
.site-header {
    border-top:12px solid var(--green);
    position:relative;
}
.site-header::before,.site-footer::before {
    content:"";
    position:absolute;
    pointer-events:none;
    left:0;
    top:0;
}
.site-header::before {
    background:url('assets/plum-branch.svg') no-repeat center / contain;
    width:min(220px, calc((100vw - 1000px) / 2 + 80px));
    aspect-ratio:277.497 / 203.502;
}
.header-inner {
    min-height:128px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    position:relative;
}
.brand {
    width:343px;
    margin-left:80px;
    flex-shrink:1;
}
.brand-tagline {
    display:none;
}
.brand picture,.brand img {
    display:block;
    width:100%;
    height:auto;
}
.header-contact {
    display:flex;
    flex-shrink:0;
    align-items:center;
    gap:111px;
    position:relative;
    top:4px;
    color:#52653e;
}
.header-contact p {
    margin:0;
}
.header-address,.header-permit {
    font:16px/20px var(--serif);
    white-space:nowrap;
}
.header-phone {
    display:flex;
    align-items:center;
    width:fit-content;
    min-height:44px;
    color:inherit;
    white-space:nowrap;
}
.header-phone:hover {
    text-decoration:underline;
    text-underline-offset:4px;
}
.header-phone-number {
    font:34px/1.15 var(--serif);
    font-variant-numeric:tabular-nums;
}
.consultation {
    display:grid;
    place-content:center;
    text-align:center;
    width:84px;
    height:84px;
    border-radius:6px;
    background:#64794e;
    color:#fff;
    font:700 22px/1.5 var(--sans);
    padding:10px;
}
.primary-menu {
    display:flex;
    align-items:center;
    list-style:none;
    margin:0;
    padding:0;
}
.primary-menu li {
    flex:1;
    text-align:center;
    position:relative;
    line-height:1.2;
}
@media(min-width:701px) {
    .primary-menu li:not(:last-child)::after {
        content:"";
        position:absolute;
        right:0;
        top:50%;
        transform:translateY(-50%);
        height:28px;
        border-right:2px solid var(--green);
    }
}
.primary-menu a {
    display:block;
    color:var(--navy);
    font-size:16px;
    font-weight:700;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:8px 10px;
}
.primary-menu a[aria-current=page] {
    font-weight:bold;
}
.menu-toggle {
    display:none;
}
.hero {
    position:relative;
    width:100%;
    height:clamp(270px,39.3vw,660px);
    background:#ece8dd;
}
.hero>img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
}
.image-status {
    position:absolute;
    bottom:10px;
    right:12px;
    padding:3px 12px;
    background:rgba(255,255,255,.94);
    color:#4b5341;
    border:1px solid #a8ad9c;
    font-size:11px;
    line-height:1.5;
}
.introduction {
    padding-block:48px 55px;
    text-align:center;
}
.introduction h1 {
    margin:0 0 40px;
    color:var(--green);
    font:30px/1.8 var(--serif);
    font-weight:500;
    letter-spacing:.035em;
}
.introduction h1 > .intro-subtitle {
    font-size:27px;
}
.intro-copy {
    font-size:13px;
    line-height:2;
}
.intro-copy p {
    margin:0 0 25px;
}
.intro-copy p:last-child {
    margin-bottom:0;
}
.feature-links {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:40px;
}
.feature-links--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.feature-card {
    display:block;
    overflow:hidden;
    background:#64794e;
    color:#fff;
}
.feature-image {
    display:block;
    position:relative;
    aspect-ratio:310/208;
    overflow:hidden;
}
.feature-image img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .2s;
}
.feature-card:hover img {
    transform:scale(1.025);
}
.feature-label {
    min-height:120px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:25px 28px;
    font-size:21px;
    font-weight:700;
    line-height:1.6;
    letter-spacing:.05em;
    position:relative;
}
.feature-about {
    background:var(--navy);
}
.feature-label::before {
    content:"";
    position:absolute;
    left:12px;
    bottom:-3px;
    width:50px;
    height:75px;
    opacity:.16;
    background:radial-gradient(ellipse at 55% 30%,white 0 18%,transparent 19%),linear-gradient(105deg,transparent 43%,white 44% 48%,transparent 49%);
}
.news {
    margin-top:60px;
    background:var(--pale);
    padding:12px 40px 24px;
}
.news h2 {
    margin:0 0 7px;
    text-align:center;
    color:#536441;
    font-size:18px;
    font-weight:500;
}
.news-list {
    max-height:190px;
    overflow:auto;
    background:white;
    padding:20px 30px;
}
.news-list ul {
    padding:0;
    margin:0;
    list-style:none;
}
.news-list li {
    display:grid;
    grid-template-columns:165px 1fr;
    gap:15px;
    line-height:1.7;
    padding:9px 0;
    border-bottom:1px solid #eeeee8;
}
.news-list li:last-child {
    border:0;
}
.news-list time {
    font-size:13px;
}
.news-list a {
    font-size:14px;
}
.news-empty {
    margin:0;
    text-align:center;
}
.news-more {
    display:block;
    width:max-content;
    margin:12px 0 0 auto;
    font-size:16px;
    font-weight:700;
    min-height:44px;
    padding-block:10px;
    color:#465338;
}
.partner-links {
    display:flex;
    justify-content:space-around;
    align-items:center;
    gap:35px;
    margin-block:60px 32px;
}
.partner-links a {
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    min-height:70px;
    flex:1;
    text-align:center;
    line-height:1.25;
    font:bold 27px/1.3 Arial,sans-serif;
    padding:6px 15px;
}
.partner-links a span {
    font:11px/1.5 var(--sans);
}
.partner-lixil {
    background:#df5a0c;
    color:#fff;
}
.partner-toto {
    background:#253f85;
    color:#fff;
}
.partner-takara {
    border:1px solid #abb7c7;
    color:#315683;
    font-size:22px!important;
}
.site-footer {
    isolation:isolate;
    background:var(--cream);
    position:relative;
    padding-top:32px;
    color:#393f32;
}
.site-footer::before {
    z-index:-1;
    left:auto;
    right:12px;
    top:auto;
    bottom:45px;
    background:url('assets/bird-plum-footer.svg') no-repeat center / contain;
    width:200px;
    aspect-ratio:367.238 / 260.604;
    mix-blend-mode:multiply;
}
.footer-inner {
    display:grid;
    grid-template-columns:minmax(220px,.85fr) minmax(0,1.65fr);
    gap:48px;
    padding-bottom:16px;
}
.footer-brand { display:block; width:min(100%,290px); }
.footer-brand img { width:100%; height:auto; }
.footer-business p { margin:12px 0; }
.footer-address { font-size:15px; line-height:1.8; overflow-wrap:anywhere; }
.footer-permits { margin-top:16px; font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
.footer-permits p { margin:8px 0; }
.footer-phone { display:grid; width:fit-content; padding:8px 0; color:#465b34; }
.footer-phone span { font-size:16px; }
.footer-phone strong { font-size:26px; line-height:1.5; font-variant-numeric:tabular-nums; }
.footer-navigation {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
    align-content:start;
    align-items:start;
}
.footer-group { min-width:0; }
.footer-page-title { margin:0 0 6px; font-size:18px; font-weight:700; }
.footer-page-title span { display:inline-block; white-space:nowrap; }
.footer-group ul { padding:0; margin:0; list-style:none; }
.footer-group li { font-size:16px; line-height:1.7; }
.footer-group a { display:block; min-height:44px; padding:8px 0; overflow-wrap:anywhere; }
.footer-page-title a { border-bottom:1px solid #aab59b; color:#35452c; }
.footer-group .footer-secondary { margin-top:16px; }
.footer-secondary a { color:#465b34; font-size:14px; text-decoration:underline; text-underline-offset:3px; }
.footer-secondary span { display:inline-block; white-space:nowrap; text-decoration:inherit; }
.copyright {
    margin:0;
    text-align:center;
    color:#fff;
    background:#64794e;
    font:12px/1.8 var(--sans);
    padding:4px 16px;
    letter-spacing:.035em;
}
.mobile-contact {
    display:none;
}
.content-page {
    padding-block:60px;
    min-height:55vh;
}
.content-page h1 {
    color:var(--green);
    font:30px/1.7 var(--serif);
    margin-top:0;
}
.content-page article {
    margin:30px 0;
}
.content-page h2 {
    font-size:21px;
}
.content-page p {
    overflow-wrap:anywhere;
}
@media(min-width:1600px) {
    .hero {
        height:550px;
    }
}
@media(max-width:1320px) {
    .site-footer::before { width:180px; bottom:36px; }
}
@media(max-width:1000px) {
    .site-footer::before {
        width:110px;
        right:8px;
        bottom:45px;
    }
    .site-header::before {
        display:none;
    }
    .header-inner {
        gap:18px;
    }
    .brand {
        margin-left:0;
        width:310px;
    }
    .header-contact {
        gap:12px;
    }
    .header-phone-number { font-size:30px; }
    .footer-navigation { gap:16px; }
    .footer-page-title { font-size:16px; }
    .consultation {
        width:82px;
        height:74px;
        font-size:20px;
    }
    .feature-links {
        gap:24px;
    }
    .feature-label {
        padding:20px 12px;
        font-size:19px;
    }
    .introduction h1 {
        font-size:28px;
    }
    .introduction h1 > .intro-subtitle {
        font-size:24px;
    }
}
@media(max-width:1100px) and (min-width:701px) {
    .footer-inner { gap:28px; }
}
@media(max-width:700px) {
    body {
        --mobile-green:#64794e;
        --mobile-header-height:56px;
        --mobile-cta-height:64px;
        --mobile-safe-bottom:env(safe-area-inset-bottom,0px);
        font-size:14px;
        padding-bottom:calc(var(--mobile-cta-height) + var(--mobile-safe-bottom));
    }
    .wrap {
        width:calc(100% - 36px);
    }
    .site-header {
        border-top:0;
        background:var(--mobile-green);
        color:#fff;
    }
    .header-inner {
        width:100%;
        min-height:var(--mobile-header-height);
        gap:0;
        padding-left:env(safe-area-inset-left,0px);
        padding-right:env(safe-area-inset-right,0px);
    }
    .brand-tagline {
        display:none;
    }
    .brand {
        display:flex;
        align-items:center;
        justify-content:center;
        flex:1;
        width:auto;
        min-width:0;
        max-width:none;
        min-height:var(--mobile-header-height);
        padding:4px 16px;
    }
    .brand picture {
        width:min(100%,220px);
    }
    .brand img {
        filter:brightness(0) invert(1);
    }
    .header-contact {
        display:none;
    }
    .menu-toggle:not([hidden]),
    .navigation-pending .menu-toggle[hidden] {
        display:flex;
        flex-direction:row;
        align-items:center;
        justify-content:center;
        flex-shrink:0;
        gap:8px;
        min-width:96px;
        min-height:var(--mobile-header-height);
        background:transparent;
        color:#fff;
        border:0;
        border-left:1px solid #fff8;
        border-radius:0;
        padding:10px 12px;
        font-size:14px;
        line-height:1.4;
        cursor:pointer;
    }
    .menu-toggle span {
        font-size:24px;
        line-height:1;
    }
    .primary-navigation {
        width:100%;
        margin:0;
        background:var(--mobile-green);
        max-height:calc(100vh - var(--mobile-header-height) - var(--mobile-cta-height) - var(--mobile-safe-bottom));
        max-height:calc(100dvh - var(--mobile-header-height) - var(--mobile-cta-height) - var(--mobile-safe-bottom));
        overflow-y:auto;
        overflow-x:hidden;
        overscroll-behavior:contain;
        scroll-padding:8px;
    }
    .primary-menu {
        display:block;
        padding:0;
        border-top:1px dotted #fffb;
    }
    .primary-menu li {
        text-align:left;
        border-right:0;
        border-bottom:1px dotted #fffb!important;
        line-height:1.5;
    }
    .primary-menu a {
        justify-content:flex-start;
        min-height:56px;
        padding:14px max(16px,env(safe-area-inset-left,0px));
        color:#fff;
        font-size:18px;
    }
    .site-header a:focus-visible,.site-header button:focus-visible,.mobile-contact:focus-visible {
        outline:3px solid #fff;
        outline-offset:-4px;
    }
    .hero {
        height:280px;
    }
    .hero>img {
        object-position:45% center;
    }
    .introduction {
        padding-block:35px;
    }
    .introduction h1 {
        font-size:23px;
        line-height:1.7;
        margin-bottom:27px;
        letter-spacing:0;
    }
    .introduction h1 > .intro-subtitle {
        display:inline-block;
        font-size:20px;
        margin-top:10px;
    }
    .introduction h1 .intro-phrase {
        display:inline-block;
        white-space:nowrap;
    }
    .intro-copy {
        text-align:left;
        line-height:2.1;
    }
    .intro-copy p {
        margin-bottom:20px;
    }
    .desktop-break {
        display:none;
    }
    .feature-links {
        grid-template-columns:1fr;
        gap:24px;
        max-width:420px;
    }
    .feature-image {
        aspect-ratio:310/190;
    }
    .feature-label {
        min-height:88px;
        font-size:19px;
        padding:22px 28px;
    }
    .news {
        margin-top:38px;
        padding:13px 16px 20px;
    }
    .news-list {
        padding:12px 15px;
        max-height:250px;
    }
    .news-list li {
        grid-template-columns:1fr;
        gap:4px;
    }
    .news-list time {
        font-size:12px;
    }
    .news-list a {
        font-size:13px;
    }
    .partner-links {
        flex-wrap:wrap;
        gap:16px;
        margin-block:35px 25px;
    }
    .partner-links a {
        flex:0 0 calc(50% - 8px);
        min-height:60px;
        font-size:22px;
    }
    .partner-links a:last-child {
        flex-basis:65%;
    }
    .partner-takara {
        font-size:19px!important;
    }
    .footer-inner { grid-template-columns:1fr; gap:28px; }
    .footer-business { padding-bottom:20px; border-bottom:1px solid #aab59b; }
    .footer-brand { width:min(100%,290px); }
    .footer-navigation { grid-template-columns:1fr; gap:18px; }
    .footer-page-title { font-size:18px; }
    .footer-group li { font-size:16px; }
    .site-footer::before { width:clamp(90px,26vw,110px); bottom:64px; }
    .copyright { font-size:11px; padding:10px 12px; }
    .mobile-contact {
        position:fixed;
        z-index:5;
        bottom:calc(8px + var(--mobile-safe-bottom));
        left:max(16px,env(safe-area-inset-left,0px));
        right:max(16px,env(safe-area-inset-right,0px));
        max-width:400px;
        margin-inline:auto;
        display:flex;
        justify-content:center;
        align-items:center;
        gap:12px;
        height:56px;
        padding:10px 12px;
        border:1px solid #fff6;
        border-radius:28px;
        background:#405b36;
        color:#fff;
        box-shadow:0 3px 12px #0003;
        line-height:1.4;
    }
    .mobile-contact-label {
        font-size:16px;
        font-weight:700;
        white-space:nowrap;
    }
    .mobile-contact-number {
        font-size:22px;
        font-weight:700;
        white-space:nowrap;
    }
    .content-page {
        padding-block:35px;
    }
}
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        transition:none!important;
        scroll-behavior:auto!important;
    }
}

@media(max-width:360px) {
    .site-footer::before {
        width:90px;
    }
}

/* Six primary links retain readable 16px type at intermediate desktop widths. */
@media(min-width:701px) and (max-width:1200px) {
    .primary-menu li { flex:1 1 auto; }
    .primary-menu a { padding-inline:6px; }
}
@media(max-width:700px) {
    /* Before navigation.js (or without JS), keep the former five-row footprint.
       Extra links remain reachable by scrolling; the enhanced open menu is unchanged. */
    /* Reserve the selected wordmark ratio before SVG decode, matching its final size. */
    .brand img { aspect-ratio:269.5 / 54.5; height:auto; }
    .site-header:has(.menu-toggle[hidden]) .primary-navigation {
        max-height:min(286px,calc(100vh - var(--mobile-header-height) - var(--mobile-cta-height) - var(--mobile-safe-bottom)));
        max-height:min(286px,calc(100dvh - var(--mobile-header-height) - var(--mobile-cta-height) - var(--mobile-safe-bottom)));
    }
}

/* The added guide must not push the auxiliary links into the existing bird. */
@media(min-width:701px) and (max-width:1320px) {
    .footer-group:last-child { padding-bottom:150px; }
}
@media(min-width:701px) and (max-width:1000px) {
    .footer-group:last-child { padding-bottom:100px; }
}

/* Only the pre-initialization JS state overrides hidden; no-JS stays accessible. */
@media(max-width:700px) {
    .navigation-pending .menu-toggle[hidden] { display:flex!important; }
    .navigation-pending .primary-navigation { display:none; }
}
