/*
Theme Name: KAPis Architecture Archive
Theme URI: https://kumamoto-artpolis.com/
Author: KAPis
Description: 熊本アートポリス建築アーカイブ「KAPis」専用テーマ。コンテンツモデルは同梱のKAPis Coreプラグインで管理し、テーマ変更時もデータを保持します。
Version: 3.4.0
Text Domain: kapis
Requires at least: 6.4
Requires PHP: 8.0
*/

/* WordPress-specific refinements */
.admin-bar .site-header{top:32px}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
.wp-caption,.gallery-caption{max-width:100%}.wp-caption-text{font-size:.85rem;color:var(--muted)}
.alignwide{width:min(1200px,calc(100vw - 2 * var(--pad)));margin-left:auto;margin-right:auto}
.alignfull{width:100vw;margin-left:calc(50% - 50vw)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.current-menu-item>a,.current-menu-ancestor>a{color:var(--accent)!important}
.post-edit-link{display:inline-block;margin-top:20px;font:10px 'IBM Plex Mono';color:var(--accent)}
.kapis-content{font-size:17px;line-height:2}.kapis-content>p,.kapis-content>ul,.kapis-content>ol,.kapis-content>figure,.kapis-content>blockquote{max-width:860px;margin-left:auto;margin-right:auto}.kapis-content img{height:auto;max-width:100%}
.meta-empty{color:var(--muted);font-style:italic}.kapis-badge{display:inline-block;padding:6px 9px;border:1px solid var(--line);font:10px 'IBM Plex Mono';letter-spacing:.06em}
.project-grid-wp{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.project-grid-wp .project-card{background:#fff}.project-grid-wp .project-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.archive-filter-form{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:1px;background:var(--line);margin-bottom:45px}.archive-filter-form select,.archive-filter-form input,.archive-filter-form button{min-height:54px;border:0;background:#fff;padding:0 16px;color:var(--text)}.archive-filter-form button{background:var(--accent);color:#fff;cursor:pointer}
.single-hero-image{width:100%;height:min(68vw,760px);object-fit:cover}.single-title-block{padding:55px var(--pad);border-bottom:1px solid var(--line)}.single-title-block h1{font-size:clamp(42px,7vw,100px);line-height:.94;letter-spacing:-.06em;margin:12px 0}.single-title-block .name-en{font:11px 'IBM Plex Mono';letter-spacing:.12em;color:var(--muted)}
.data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}.data-row{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:19px 0;border-bottom:1px solid var(--line)}.data-row:nth-child(odd){padding-right:28px}.data-row:nth-child(even){padding-left:28px;border-left:1px solid var(--line)}.data-row dt{font:10px 'IBM Plex Mono';letter-spacing:.08em;color:var(--muted)}.data-row dd{margin:0}
.study-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}.study-item{background:#fff;padding:30px}.study-item span{font:10px 'IBM Plex Mono';color:var(--accent)}.study-item h3{font-size:26px;margin:18px 0 10px}.study-item p{margin:0;color:var(--muted);line-height:1.85}
.map-embed{aspect-ratio:16/7;background:#e8e9e5}.map-embed iframe{width:100%;height:100%;border:0;filter:grayscale(.75) contrast(.95)}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.related-grid article{background:#fff}.related-grid img{width:100%;aspect-ratio:4/3;object-fit:cover}.related-grid .card-info{padding:22px}
.pagination{display:flex;justify-content:center;gap:8px;margin-top:50px}.pagination .page-numbers{padding:11px 14px;border:1px solid var(--line)}.pagination .current{background:var(--accent);color:#fff;border-color:var(--accent)}
.contact-form{max-width:850px}.contact-field{margin-bottom:24px}.contact-field label{display:block;margin-bottom:8px;font:10px 'IBM Plex Mono';letter-spacing:.08em}.contact-field input,.contact-field select,.contact-field textarea{width:100%;border:1px solid var(--line);background:#fff;padding:14px 15px;font:inherit}.contact-field textarea{min-height:220px}.contact-submit{border:0;background:var(--accent);color:#fff;padding:15px 30px;cursor:pointer}.kapis-notice{padding:15px 18px;margin-bottom:25px;border:1px solid var(--line)}.kapis-notice.success{border-color:var(--accent)}
@media(max-width:900px){.project-grid-wp,.related-grid{grid-template-columns:repeat(2,1fr)}.archive-filter-form{grid-template-columns:1fr 1fr}.data-grid{grid-template-columns:1fr}.data-row:nth-child(odd),.data-row:nth-child(even){padding-left:0;padding-right:0;border-left:0}.study-grid{grid-template-columns:1fr}}
@media(max-width:600px){.project-grid-wp,.related-grid{grid-template-columns:1fr}.archive-filter-form{grid-template-columns:1fr}.single-title-block{padding-left:22px;padding-right:22px}.data-row{grid-template-columns:105px 1fr}.map-embed{aspect-ratio:1/1}}


/* KAPis 2.0 content modules */
.entry-updated{margin-top:18px;font:9px 'IBM Plex Mono';letter-spacing:.12em;color:var(--muted)}
.kapis-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.kapis-gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.kapis-gallery img:first-child:nth-last-child(odd){grid-column:1/-1;aspect-ratio:16/9}
.related-link-grid,.link-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}.related-link-card{display:flex;flex-direction:column;min-height:230px;padding:28px;background:#fff;color:#111311}.related-link-card span{font:9px 'IBM Plex Mono';letter-spacing:.1em;color:var(--accent-dark,#54705d)}.related-link-card h3{font-size:22px;line-height:1.35;margin:28px 0 8px}.related-link-card p{color:#6a6e68;font-size:13px;line-height:1.8}.related-link-card b{margin-top:auto;font:10px 'IBM Plex Mono'}
.source-note{margin-top:28px;padding:28px;border:1px solid var(--line)}.source-note h3{font:10px 'IBM Plex Mono';letter-spacing:.12em}.source-note p{white-space:pre-wrap}
.resource-section{margin-top:90px}.resource-list{border-top:1px solid var(--line)}.resource-row{display:grid;grid-template-columns:1fr auto;gap:30px;padding:28px 0;border-bottom:1px solid var(--line)}.resource-row span,.resource-row>a{font:10px 'IBM Plex Mono';letter-spacing:.08em}.resource-row h3{margin:5px 0;font-size:22px}.resource-row p{margin:0;color:var(--muted)}
.faq-list{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line)}.faq-item summary{cursor:pointer;list-style:none;padding:24px 42px 24px 0;font-size:18px;font-weight:600;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:'+';position:absolute;right:8px;top:20px;font-size:24px;font-weight:300}.faq-item[open] summary:after{content:'−'}.faq-item>div{padding:0 0 30px;max-width:850px;line-height:1.9}
@media(max-width:900px){.related-link-grid,.link-directory{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.kapis-gallery,.related-link-grid,.link-directory{grid-template-columns:1fr}.kapis-gallery img:first-child:nth-last-child(odd){grid-column:auto;aspect-ratio:4/3}.resource-row{grid-template-columns:1fr}.related-link-card{min-height:190px}}


/* KAPis 3.1: legacy media compatibility + robust home cards */
.hero-image-fallback{position:absolute;inset:0;background:linear-gradient(135deg,#d9ded8,#eef0eb)}
.project-grid-wp .project-card{position:relative;display:flex;flex-direction:column;min-height:100%;overflow:hidden;color:#111311}
.project-grid-wp .project-card-media{overflow:hidden;background:#e9ece7;aspect-ratio:4/3}
.project-grid-wp .project-card-media img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;transition:transform .65s ease}
.project-grid-wp .project-card:hover .project-card-media img{transform:scale(1.025)}
.project-grid-wp .project-card-placeholder{height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#edf0eb,#d9dfd8);color:#798078;font:600 26px 'IBM Plex Mono',monospace;letter-spacing:.08em}
.project-grid-wp .card-info{position:relative;inset:auto;padding:20px 22px 24px;background:#fff;color:#111311;flex:1}
.project-grid-wp .card-no{color:#627b69}
.project-grid-wp .card-title{color:#111311;font-size:clamp(18px,1.7vw,27px);margin:7px 0 8px}
.project-grid-wp .card-meta{color:#6a706a}
.ticker{overflow:hidden;background:#f7f7f3;color:transparent}
.ticker-inner{display:inline-block;width:max-content;padding-right:2vw;font-size:clamp(40px,6vw,88px);line-height:1.15;-webkit-text-stroke:1px #111311;animation:ticker 34s linear infinite}
@media(max-width:600px){.ticker-inner{font-size:48px}}


/* KAPis 3.2: final legacy-image fallback + seamless outline marquee */
.ticker{overflow:hidden;background:#f7f7f3;color:transparent;border-color:#d8dad5}
.ticker-inner{display:flex;width:max-content;padding:14px 0;font-size:clamp(40px,6vw,88px);line-height:1;white-space:nowrap;-webkit-text-stroke:1px #111311;animation:kapisTicker32 30s linear infinite;will-change:transform}
.ticker-inner>span{display:block;flex:0 0 auto;padding-right:2.5vw}
@keyframes kapisTicker32{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){.ticker-inner{animation:none}}
@media(max-width:600px){.ticker-inner{font-size:48px;padding-block:12px}}


/* KAPis 3.4: Contact Form 7 */
.kapis-contact-wrap{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);gap:clamp(48px,8vw,130px);align-items:start}
.kapis-contact-copy{position:sticky;top:120px}.kapis-contact-copy h2{font-size:clamp(34px,4.6vw,68px);line-height:1.03;letter-spacing:-.05em;margin:0 0 24px}.kapis-contact-copy p{color:var(--muted);line-height:1.9}.kapis-contact-copy ul{list-style:none;margin:38px 0 0;padding:24px 0 0;border-top:1px solid var(--line)}.kapis-contact-copy li{padding:8px 0;font-size:13px;color:var(--muted)}
.kapis-contact-form{counter-reset:kapis-contact-field}.kapis-contact-form__field{counter-increment:kapis-contact-field;padding:0 0 34px;margin:0 0 34px;border-bottom:1px solid var(--line)}.kapis-contact-form__label{position:relative;display:flex!important;align-items:center;gap:12px;margin:0 0 14px!important;padding-left:46px!important;font-size:14px!important;font-weight:600;letter-spacing:.02em}.kapis-contact-form__label:before{content:'0' counter(kapis-contact-field);position:absolute;left:0;top:1px;font:10px 'IBM Plex Mono',monospace;letter-spacing:.08em;color:var(--accent)}
.kapis-contact-form__required,.kapis-contact-form__optional{margin-left:auto;font:8px 'IBM Plex Mono',monospace;letter-spacing:.12em}.kapis-contact-form__required{color:var(--accent)}.kapis-contact-form__optional{color:var(--muted)}
.kapis-contact-form .wpcf7-form-control-wrap{display:block}.kapis-contact-form input[type=text],.kapis-contact-form input[type=email],.kapis-contact-form select,.kapis-contact-form textarea{box-sizing:border-box;width:100%;border:0;border-bottom:1px solid #111311;border-radius:0;background:transparent;color:#111311;padding:15px 0;font:inherit;outline:0;transition:border-color .2s}.kapis-contact-form textarea{min-height:220px;border:1px solid #111311;padding:18px;resize:vertical}.kapis-contact-form select{appearance:auto}.kapis-contact-form input:focus,.kapis-contact-form select:focus,.kapis-contact-form textarea:focus{border-color:var(--accent)}.kapis-contact-form__note{margin:10px 0 0!important;font-size:11px!important;color:var(--muted)!important}
.kapis-contact-form__privacy{margin:8px 0 30px;padding:20px 0}.kapis-contact-form__privacy .wpcf7-list-item{margin:0}.kapis-contact-form__privacy label{display:flex;gap:10px;align-items:flex-start;font-size:12px}.kapis-contact-form__privacy input{margin-top:3px}.kapis-contact-form__privacy a{text-decoration:underline;text-underline-offset:3px}.kapis-contact-form__submit{margin-top:10px}.kapis-contact-form__submit .wpcf7-submit{width:100%;border:1px solid #111311;border-radius:0;background:#111311;color:#fff;padding:22px 25px;font:10px 'IBM Plex Mono',monospace;letter-spacing:.14em;cursor:pointer;transition:.25s}.kapis-contact-form__submit .wpcf7-submit:hover{background:var(--accent);border-color:var(--accent)}
.kapis-contact-form .wpcf7-not-valid-tip{margin-top:8px;font-size:11px}.kapis-contact-form .wpcf7-response-output{margin:28px 0 0!important;padding:16px 18px!important;border-width:1px!important}.kapis-contact-form .wpcf7-spinner{vertical-align:middle}.kapis-contact-missing{padding:28px;border:1px solid var(--line);background:#fafaf7}.kapis-contact-missing code{font-family:'IBM Plex Mono',monospace}
@media(max-width:900px){.kapis-contact-wrap{grid-template-columns:1fr;gap:55px}.kapis-contact-copy{position:static}.kapis-contact-copy ul{margin-top:25px}}
@media(max-width:600px){.kapis-contact-form__field{padding-bottom:27px;margin-bottom:27px}.kapis-contact-form__label{padding-left:38px!important}.kapis-contact-form textarea{min-height:180px}.kapis-contact-form__submit .wpcf7-submit{padding:19px 20px}}
