/*
Theme Name: 紫風堂 マルーンコンパクト（Twenty Twenty-Five 子テーマ）
Description: 紫風堂公式サイト向けのマルーン系・コンパクトな専用レイアウト。Twenty Twenty-Fiveの子テーマ。試験環境での検証用。
Template: twentytwentyfive
Version: 0.4.2-rc5
Requires at least: 6.7
Requires PHP: 7.4
Text Domain: shifu-fuji
*/
/* Web approximation inspired by Hankyu Maroon; not an official digital color standard.
 * The existing fuji variable names are retained for compatibility. */
:root{--ink:#302628;--dim:#6B5E60;--fuji:#6C272D;--fuji-deep:#4B1B20;--fuji-light:#EDE1E3;--fuji-pale:#F8F3F4;--hair:#DECDD0;--paper:#FCFAFA;--white:#fff;--shadow:0 12px 40px #30161C0A;font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;color:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);margin:0;min-width:320px}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid #6C272D;outline-offset:3px}button{font:inherit;cursor:pointer}header{height:60px;display:flex;align-items:center;border-bottom:1px solid var(--hair);background:#fff;position:sticky;top:0;z-index:20}.header-inner{max-width:1150px;width:100%;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:15px}.brand{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;letter-spacing:.04em;font-size:17px;font-weight:600;text-decoration:none;white-space:nowrap}.brand small{font:500 10px/1.3 sans-serif;letter-spacing:.15em;color:var(--fuji);display:block;margin-top:2px}.topnav{display:flex;gap:21px;align-items:center}.topnav a{font-size:12px;text-decoration:none;white-space:nowrap}.topnav a:hover{color:var(--fuji-deep)}.topnav .special-nav{color:var(--fuji-deep)}.menu-toggle{display:none;background:#fff;border:1px solid var(--hair);padding:7px 9px;border-radius:5px}.container{max-width:1150px;margin:0 auto;padding:25px 24px 46px}.home-hero{display:grid;grid-template-columns:minmax(250px,31%) 1fr;gap:22px;align-items:stretch}.pen-frame{height:420px;background:var(--fuji);border:1px solid var(--fuji-deep);padding:11px;display:flex;align-items:center;justify-content:center}.pen-frame img{width:100%;height:100%;object-fit:contain;display:block}.hero-right{min-width:0;display:flex;flex-direction:column}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:700;color:var(--fuji);margin:1px 0 9px}.hero-words{padding:8px 0 17px;border-bottom:1px solid var(--hair)}.hero-words h1{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:clamp(26px,3.2vw,39px);font-weight:500;letter-spacing:.08em;line-height:1.43;margin:0 0 7px}.hero-words p{font-size:13px;color:var(--dim);letter-spacing:.08em;margin:0}.quick-label{font-size:11px;letter-spacing:.12em;color:var(--dim);margin:15px 0 8px}.navtiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.navtile{min-height:118px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;text-decoration:none;border:1px solid var(--hair);background:#fff;padding:11px 6px;transition:background .15s,border-color .15s,transform .15s}.navtile:hover{background:var(--fuji-pale);border-color:var(--fuji);transform:translateY(-1px)}.navtile .i{color:var(--fuji-deep);width:25px;height:25px}.navtile strong{font-size:14px;line-height:1.45;text-align:center}.navtile em{font-size:10px;color:var(--dim);font-style:normal;text-align:center}.topics{margin-top:26px;border-top:1px solid var(--hair);padding-top:17px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 9px}.section-head h2,.small-section h2{font-size:18px;letter-spacing:.02em;margin:0}.section-head h2 span{font-size:10px;color:var(--fuji);letter-spacing:.14em;margin-right:11px}.more{font-size:12px;text-decoration:none;color:var(--fuji-deep);white-space:nowrap}.more:hover{text-decoration:underline}.newsrows{border-top:1px solid var(--hair)}.newsrow{min-height:46px;padding:9px 8px;display:grid;grid-template-columns:105px 1fr 20px;align-items:center;gap:11px;border-bottom:1px solid var(--hair);text-decoration:none;background:#fff}.newsrow:hover{background:var(--fuji-pale)}.newsrow time{font-size:11px;color:var(--dim)}.newsrow .n-title{font-size:13px;line-height:1.5}.newsrow .arrow{text-align:right;color:var(--fuji)}.specialstrip{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--fuji-light);border-left:3px solid var(--fuji);padding:14px 17px;margin-top:18px}.specialstrip strong{font-size:13px}.specialstrip p{margin:3px 0 0;font-size:11px;color:var(--dim)}.specialstrip a{font-size:12px;color:var(--fuji-deep);white-space:nowrap}.footer{border-top:1px solid var(--hair);padding:20px 24px;color:var(--dim);font-size:11px}.footer-inner{max-width:1150px;margin:auto;display:flex;justify-content:space-between;gap:18px}.footer-inner a{text-decoration:none}.page{min-height:calc(100dvh - 140px)}.inner{max-width:1080px;margin:0 auto;padding:34px 24px 60px}.crumb{font-size:11px;color:var(--dim);margin-bottom:13px}.crumb a{text-decoration:none;color:var(--fuji-deep)}.inner h1{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:clamp(25px,3vw,34px);font-weight:500;margin:0 0 10px}.lede{color:var(--dim);font-size:13px;line-height:1.9;margin:0 0 22px;max-width:760px}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.catcard{display:flex;flex-direction:column;gap:12px;min-height:165px;text-decoration:none;background:#fff;border:1px solid var(--hair);padding:20px 14px;transition:background .15s,border-color .15s}.catcard:hover{background:var(--fuji-pale);border-color:var(--fuji)}.catcard .i{width:30px;height:30px;color:var(--fuji-deep)}.catcard strong{font-size:14px}.catcard small{font-size:11px;line-height:1.6;color:var(--dim)}.catcard .arr{margin-top:auto;color:var(--fuji);font-size:12px}.works-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.work-card{display:block;text-decoration:none;border:1px solid var(--hair);background:#fff;padding:9px}.work-card:hover{border-color:var(--fuji);background:var(--fuji-pale)}.work-thumb{background:#F4EDEF;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;border:1px solid #E8DADD}.work-thumb img{width:100%;height:100%;object-fit:contain}.work-thumb .placeholder{display:flex;flex-direction:column;gap:8px;align-items:center;color:#796269;font-size:11px;text-align:center}.work-thumb .placeholder .i{width:28px;height:28px}.work-text{padding:11px 3px 5px;display:flex;flex-direction:column;gap:4px}.work-text strong{font-size:13px}.work-text span{font-size:11px;color:var(--dim)}.work-text small{font-size:10px;color:var(--fuji-deep);margin-top:3px}.list-count{font-size:12px;color:var(--dim);margin:0 0 12px}.detail-layout{display:grid;grid-template-columns:minmax(0, .9fr) minmax(0,1.1fr);gap:28px;margin-top:20px}.detail-art{background:#F5EFF0;border:1px solid var(--hair);min-height:380px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--dim);padding:18px;text-align:center}.detail-art .i{width:40px;height:40px;color:var(--fuji);margin-bottom:12px}.detail-art small{font-size:11px;line-height:1.7}.detail-art img{max-width:100%;max-height:470px;width:auto;height:auto;object-fit:contain}.detail-info h2{font-size:17px;margin:8px 0 10px}.detail-info p{font-size:13px;line-height:1.95;color:var(--dim)}.spec{border-top:1px solid var(--hair);margin:20px 0 18px;font-size:12px}.spec div{display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid var(--hair);padding:10px 0;gap:10px}.spec dt{font-weight:600}.spec dd{margin:0;color:var(--dim)}.actionrow{display:flex;gap:9px;flex-wrap:wrap;margin:13px 0}.cta{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;background:var(--fuji-deep);color:#fff;padding:10px 16px;border:1px solid var(--fuji-deep);text-decoration:none;font-size:12px}.cta.secondary{background:#fff;color:var(--fuji-deep)}.cta:hover{filter:brightness(.94)}.cta.disabled{background:#EEE7E9;border-color:#D8C8CC;color:#6D6063;cursor:default}.notice{font-size:11px;color:var(--dim);line-height:1.75}.empty{border:1px dashed var(--hair);background:#fff;padding:30px 20px;font-size:13px;line-height:2;color:var(--dim)}.subhead{font-size:17px;font-weight:600;margin:24px 0 14px}.reader-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reader-card{background:#fff;border:1px solid var(--hair);padding:22px;text-decoration:none}.reader-card:hover{background:var(--fuji-pale)}.reader-card strong{display:block;font-size:15px;margin-bottom:7px}.reader-card span{font-size:12px;color:var(--dim);line-height:1.7}.profile-block{background:#fff;border:1px solid var(--hair);padding:25px;margin-top:20px}.profile-block p{font-size:13px;line-height:2;color:var(--dim)}.linkcluster{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:19px 0}.linkcluster a{font-size:12px;text-align:center;padding:12px 5px;text-decoration:none;background:var(--fuji-light);color:var(--fuji-deep)}.linkcluster a:hover{background:#E3CED2}.service-help{background:var(--fuji-pale);border-left:3px solid var(--fuji);padding:14px 20px;font-size:12px;color:var(--dim);line-height:1.7;margin-top:20px}.privacy{margin-top:18px;font-size:12px}.privacy a{color:var(--fuji-deep)}.demo-note{background:#F3E8E9;color:#6C272D;font-size:11px;padding:8px 16px;text-align:center;border-bottom:1px solid #DCC8CB}.pill{display:inline-block;font-size:10px;color:var(--fuji-deep);background:var(--fuji-light);padding:4px 7px;margin-bottom:11px}.hidden{display:none!important}@media(max-width:950px){.topnav{gap:12px}.topnav a{font-size:11px}.home-hero{grid-template-columns:260px 1fr;gap:16px}.pen-frame{height:403px}.navtile{min-height:110px}.hero-words h1{font-size:29px}}@media(max-width:700px){header{height:auto;min-height:58px}.header-inner{padding:9px 15px}.brand{font-size:15px}.menu-toggle{display:block}.topnav{display:none;position:absolute;top:56px;right:0;left:0;background:#fff;padding:16px;box-shadow:0 10px 20px #0001;flex-direction:column;align-items:stretch}.topnav.open{display:flex}.topnav a{padding:8px 4px;font-size:13px}.container{padding:13px 14px 30px}.home-hero{grid-template-columns:1fr;gap:11px}.pen-frame{height:190px;padding:7px}.pen-frame img{max-width:240px}.hero-words{padding:5px 0 7px}.hero-words h1{font-size:26px}.hero-words p{font-size:11px}.hero-words .eyebrow{font-size:9px;margin-bottom:3px}.quick-label{margin:10px 0 7px;font-size:10px}.navtiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.navtile{min-height:84px;gap:3px;padding:8px 4px}.navtile .i{width:21px;height:21px}.navtile strong{font-size:12px}.navtile em{font-size:9px}.topics{margin-top:18px;padding-top:12px}.section-head h2{font-size:16px}.section-head h2 span{font-size:9px}.newsrow{grid-template-columns:70px 1fr 14px;gap:7px;padding:9px 5px;min-height:47px}.newsrow time{font-size:10px}.newsrow .n-title{font-size:12px}.specialstrip{margin-top:12px;padding:12px 11px}.specialstrip a{font-size:11px}.footer{padding:17px 14px}.footer-inner{flex-direction:column;gap:4px}.inner{padding:23px 14px 50px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catcard{min-height:145px;padding:15px 11px;gap:9px}.catcard .i{width:24px;height:24px}.catcard strong{font-size:13px}.works-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.work-card{padding:6px}.work-text{padding:8px 2px 3px}.work-text strong{font-size:12px}.detail-layout{grid-template-columns:1fr;gap:14px}.detail-art{min-height:260px}.spec div{grid-template-columns:105px 1fr}.reader-list{grid-template-columns:1fr}.linkcluster{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-block{padding:18px}.inner h1{font-size:26px}}@media(max-width:420px){.brand small{display:none}.pen-frame{height:170px}.hero-words h1{font-size:24px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* WordPress integration */
.shifu-wp-header{border-bottom:1px solid var(--hair);margin:0!important;background:#fff}
.shifu-wp-bar{max-width:1150px;margin:auto;padding:13px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px}
.shifu-wp-brand{text-decoration:none!important;color:var(--ink)!important;font-weight:700;font-size:17px;white-space:nowrap}
.shifu-wp-brand small{display:block;color:var(--fuji);font-size:10px;font-weight:500;letter-spacing:.16em}
.shifu-wp-bar nav{display:flex;align-items:center;gap:19px}
.shifu-wp-bar nav a{font-size:12px;text-decoration:none!important;white-space:nowrap;color:var(--ink)}
.shifu-wp-bar nav a:hover{color:var(--fuji-deep)}
.shifu-wp-footer{max-width:1150px;margin:auto;padding:20px 24px;display:flex;justify-content:space-between;gap:20px;color:var(--dim);font-size:11px}
.shifu-wp-footer a{color:inherit;text-decoration:none}
.shifu-wp-footer-part{border-top:1px solid var(--hair);margin:20px 0 0!important}
.shifu-wp-page{max-width:1080px;margin:0 auto;padding:34px 24px 65px}
.shifu-wp-page .wp-block-post-title{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:clamp(25px,3vw,34px);font-weight:500}
.shifu-wp-page .wp-block-post-content{max-width:none}
.shifu-wp-content p{font-size:13px;line-height:1.9;color:var(--dim)}
.shifu2-content p{font-size:13px;line-height:1.9}
.shifu2-content img{max-width:100%;height:auto}
.wp-site-blocks .container{max-width:1150px!important;margin:0 auto!important}
.wp-site-blocks .inner{max-width:1080px!important;margin:0 auto!important}
.wp-site-blocks .page h1{font-family:'Yu Mincho','Hiragino Mincho ProN',serif}
.wp-site-blocks .work-thumb img{width:100%;height:100%;object-fit:contain!important}
.wp-site-blocks .detail-art img{max-width:100%;max-height:470px;width:auto;height:auto;object-fit:contain!important}
.wp-site-blocks .navtile,.wp-site-blocks .catcard,.wp-site-blocks .work-card,.wp-site-blocks .newsrow{box-shadow:none}
@media(max-width:900px){.shifu-wp-bar{flex-direction:column;align-items:stretch;gap:10px;padding:11px 15px}.shifu-wp-bar nav{overflow-x:auto;gap:14px;scrollbar-width:thin;min-width:0;padding-bottom:3px}.shifu-wp-bar nav a{font-size:11px}}
@media(max-width:700px){.shifu-wp-brand{font-size:15px}.shifu-wp-page{padding:22px 14px}.shifu-wp-footer{padding:17px 14px;flex-direction:column;gap:5px}}

.classline{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.classline span{display:inline-block;border:1px solid #DECDD0;background:#F7F0F2;color:#4B1B20;padding:5px 10px;font-size:11px}.work-thumb img,.detail-art img{object-fit:contain!important}

.extra-consult-card{background:linear-gradient(140deg,#F6EEF0,#FCF9FA);border-color:#AB7E87!important}.extra-consult-card .arr{color:#5D2631}

/* Ver.4.1.1: reading hub only. Keep linked/unlinked cards on equal tracks. */
.shifu-reading .reader-list {
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:12px;
 width:100%;
 min-width:0;
 align-items:stretch;
}
.shifu-reading .reader-list > .reader-card {
 position:relative;
 display:block;
 box-sizing:border-box;
 width:100%;
 min-width:0;
 max-width:none;
 margin:0;
 padding:22px;
 overflow-wrap:anywhere;
}
.shifu-reading .reader-card-title {
 margin:0 0 7px;
 padding:0;
 border:0;
 font:600 15px/1.7 'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;
 color:var(--ink);
}
.shifu-reading .reader-card-description {
 margin:0;
 padding:0;
 font-size:12px;
 line-height:1.7;
 color:var(--dim);
}
.shifu-reading .reader-card-link {
 color:inherit;
 text-decoration:none;
}
/* Stretch the heading link across its card without nesting block tags in it. */
.shifu-reading .reader-card-link::after {
 content:"";
 position:absolute;
 inset:0;
}
.shifu-reading .reader-card:focus-within {
 outline:3px solid #6C272D;
 outline-offset:3px;
}
@media(max-width:700px) {
 .shifu-reading .reader-list {grid-template-columns:minmax(0,1fr)}
}

/* Ver.4.1.3: existing contact form; contact-only wrapper supplied by the theme. */
.wp-site-blocks .shifu-contact-page {
 box-sizing:border-box;
 width:100%;
 max-width:800px;
 margin:0 auto!important;
 padding:34px 24px 60px;
 font-size:15px;
 line-height:1.9;
 overflow-wrap:anywhere;
}
.shifu-contact-page .wp-block-post-content,
.shifu-contact-page .wpcf7,
.shifu-contact-page form {
 box-sizing:border-box;
 width:100%;
 min-width:0;
 max-width:100%;
 margin-left:0;
 margin-right:0;
}
.shifu-contact-page form p {margin:0 0 20px}
.shifu-contact-page form label,
.shifu-contact-page .wpcf7-form-control-wrap {display:block}
.shifu-contact-page form :where(input:not([type]),input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="number"],select,textarea) {
 box-sizing:border-box;
 display:block;
 width:100%;
 min-height:44px;
 min-width:0;
 max-width:100%;
 margin:6px 0 0;
 padding:10px 12px;
 border:1px solid var(--hair);
 border-radius:3px;
 background:var(--white);
 color:var(--ink);
 font:inherit;
 line-height:1.5;
}
.shifu-contact-page form textarea {min-height:200px;resize:vertical}
.shifu-contact-page form :where(input[type="submit"],button[type="submit"]) {
 box-sizing:border-box;
 display:inline-block;
 width:auto;
 min-height:44px;
 max-width:100%;
 padding:10px 28px;
 border:1px solid var(--fuji-deep);
 border-radius:3px;
 background:var(--fuji-deep);
 color:var(--white);
 font:inherit;
 cursor:pointer;
}
.shifu-contact-page form :where(input,select,textarea,button):focus-visible {
 outline:2px solid var(--fuji-deep);
 outline-offset:3px;
}
.shifu-contact-page .wpcf7-not-valid-tip,
.shifu-contact-page .wpcf7-response-output {overflow-wrap:anywhere}
@media(max-width:700px) {
 .wp-site-blocks .shifu-contact-page {padding:24px 16px 44px;font-size:16px}
}

/* Ver.4.2 RC2: dark maroon text and firmer strokes for readability. */
:root,.wp-site-blocks{--ink:#4B1B20;--dim:#4B1B20}
body{color:#4B1B20;font-weight:500}
.wp-site-blocks .shifu-wp-bar nav a,
.wp-site-blocks .shifu-wp-brand,
.wp-site-blocks .shifu-wp-brand small,
.wp-site-blocks .lede,
.wp-site-blocks .hero-words p,
.wp-site-blocks .quick-label,
.wp-site-blocks .navtile strong,
.wp-site-blocks .navtile em,
.wp-site-blocks .section-head h2,
.wp-site-blocks .section-head h2 span,
.wp-site-blocks .newsrow,
.wp-site-blocks .newsrow time,
.wp-site-blocks .newsrow .n-title,
.wp-site-blocks .newsrow .arrow,
.wp-site-blocks .more,
.wp-site-blocks .shifu-wp-footer,
.wp-site-blocks .shifu-wp-footer a{color:#4B1B20!important;font-weight:500;opacity:1}
.wp-site-blocks .shifu-wp-bar nav a:hover,
.wp-site-blocks .more:hover,
.wp-site-blocks .shifu-wp-footer a:hover{color:#6C272D!important;text-decoration:underline!important}

/* Ver.4.2 RC3: keep all six navigation links within narrow viewports. */
@media(max-width:900px){
 header.shifu-wp-header{display:block;height:auto;min-height:0}
 .shifu-wp-bar{width:100%;max-width:1150px;min-width:0;box-sizing:border-box}
 .shifu-wp-bar nav{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:100%;min-width:0;overflow:visible!important;gap:4px 10px;padding:0;margin:0}
 .shifu-wp-bar nav a{display:flex;align-items:center;justify-content:center;min-width:0;max-width:100%;min-height:44px;padding:6px 4px;white-space:normal!important;overflow-wrap:anywhere;text-align:center;line-height:1.5;font-size:12px}
}
@media(max-width:700px){
 .shifu-wp-bar nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Ver.4.2 RC4: compact phone navigation, all six entries visible. */
@media(max-width:700px){
 .shifu-wp-bar{padding:8px 14px;gap:5px;min-height:0}
 .shifu-wp-bar nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 5px}
 .shifu-wp-bar nav a{min-height:32px;padding:3px 1px;font-size:11px;line-height:1.4}
 .shifu-wp-brand{line-height:1.5}
 .shifu-wp-brand small{line-height:1.4}
}

/* Ver.4.2 RC5: phone header shows the site name only; home cards stay visible. */
@media(max-width:700px){
 .shifu-wp-bar nav{display:none!important}
 .shifu-wp-bar{gap:0}
}
