/*
Theme Name: IWAYA DESIGN
Theme URI: https://iwaya-design.jp/
Author: IWAYA DESIGN
Description: IWAYA DESIGN 公式サイトのオリジナルテーマ（8bit ドット絵）
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: iwaya-design
*/

/* ==========================================================
   トークン
   ========================================================== */
:root{
  --c-navy:#26374A;
  --c-deep-navy:#1B2836;
  --c-cream:#F3E9D2;
  --c-cream-msg:#F7F2E9;
  --c-beige:#E6D8B8;
  --c-brown:#6B4A2B;
  --c-terracotta:#C1734A;
  --c-gold:#E6C27A;
  --c-ink:#1B1B1B;
  --c-light:#FFFBF0;
  /* トップ「新着情報」のラベルの色 */
  --label-news-bg:var(--c-beige);
  --label-news-fg:var(--c-ink);
  --label-blog-bg:var(--c-terracotta);
  --label-blog-fg:var(--c-cream);
  --f-dot:'DotGothic16',monospace;
  --f-body:'BIZ UDPGothic',sans-serif;
  --header-h:60px;
}

/* ==========================================================
   ベース
   ========================================================== */
*{box-sizing:border-box;}
body{margin:0;background:var(--c-cream);color:var(--c-ink);font-family:var(--f-dot);-webkit-font-smoothing:none;line-height:1.8;}
a{color:var(--c-navy);}
a:hover{color:var(--c-brown);}
img{max-width:100%;}
[hidden]{display:none!important;}
.pixel{image-rendering:pixelated;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:-1px;padding:0;border:0;white-space:nowrap;}
.skip-link:focus{position:fixed;left:8px;top:8px;z-index:100;width:auto;height:auto;clip:auto;background:var(--c-cream);color:var(--c-ink);padding:8px 16px;border:4px solid var(--c-ink);}

@keyframes nav-blink{0%{opacity:1}50%{opacity:0}}
@keyframes walker-frames{from{background-position:0 0}to{background-position:-348px 0}}
@keyframes walker-move{0%{left:0}50%{left:calc(100% - 58px)}100%{left:0}}
@keyframes walker-flip{0%{transform:scaleX(1)}50%{transform:scaleX(-1)}100%{transform:scaleX(-1)}}
@keyframes noren-sway{0%{transform:skewX(0deg)}33%{transform:skewX(0.8deg)}66%{transform:skewX(-0.6deg)}100%{transform:skewX(0deg)}}
@keyframes bar-glow{0%{filter:none;box-shadow:none}33%{filter:brightness(1.6);box-shadow:0 0 0 4px rgba(247,242,233,0.9)}66%{filter:brightness(1.3);box-shadow:0 0 0 2px rgba(230,194,122,0.8)}100%{filter:none;box-shadow:none}}
@keyframes typing-frames{from{background-position:0% 0}to{background-position:120% 0}}
@keyframes done-noren{0%{transform:skewX(0deg)}25%{transform:skewX(2.5deg)}50%{transform:skewX(0deg)}75%{transform:skewX(-2.5deg)}100%{transform:skewX(0deg)}}
@keyframes shop-cloud{from{transform:translateX(0)}to{transform:translateX(calc(100cqw * 1.3 + 100px))}}
@keyframes done-blink{0%{opacity:1}50%{opacity:0}}
@keyframes done-pop{0%{opacity:0;transform:translateY(9px)}100%{opacity:1;transform:none}}

/* ==========================================================
   共通パーツ
   ========================================================== */
.container{max-width:1080px;margin:0 auto;}
.section{position:relative;padding:clamp(56px,8vw,112px) 20px;}
.section--beige{background:var(--c-beige);border-top:4px solid var(--c-ink);border-bottom:4px solid var(--c-ink);}
.section--beige-b{background:var(--c-beige);border-bottom:4px solid var(--c-ink);}
.stack{display:flex;flex-direction:column;}
.section-head{display:flex;flex-direction:column;gap:12px;}
.section-eyebrow{font-size:14px;color:var(--c-brown);letter-spacing:0.1em;}
.section-title{margin:0;font-weight:400;font-size:clamp(24px,3vw,36px);line-height:1.5;}
.label{font-size:14px;color:var(--c-brown);}
.text{margin:0;font-size:16px;text-wrap:pretty;}
.pretty{text-wrap:pretty;}

.card{background:var(--c-cream);border:4px solid var(--c-ink);box-shadow:6px 6px 0 var(--c-ink);}

/* ボタン */
.btn{display:inline-block;text-decoration:none;border:4px solid var(--c-ink);box-shadow:4px 4px 0 var(--c-ink);padding:10px 28px;font-size:18px;font-family:var(--f-dot);line-height:1.8;cursor:pointer;}
.btn:active{transform:translate(4px,4px);box-shadow:none;}
.btn--light{background:var(--c-cream);color:var(--c-ink);}
.btn--light:hover{background:var(--c-ink);color:var(--c-cream);}
.btn--primary{background:var(--c-navy);color:var(--c-cream);}
.btn--primary:hover{background:var(--c-cream);color:var(--c-navy);}
.btn--outline{background:var(--c-navy);color:var(--c-cream);border-color:var(--c-cream);}
.btn--outline:hover{background:var(--c-cream);color:var(--c-navy);}
.btn--lg{padding:12px 28px;}
.btn--md{padding:10px 24px;font-size:16px;}
.btn-row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}

/* 小見出し（■ 付き） */
.sub-title{margin:0;font-weight:400;font-size:clamp(20px,2.4vw,24px);line-height:1.5;display:flex;align-items:flex-start;gap:10px;}
.sub-title::before{content:"";width:10px;height:10px;background:var(--c-navy);flex:none;margin-top:0.6em;}
.sub-note{font-size:13px;color:var(--c-brown);margin-top:-10px;}

/* 表（項目名＋内容） */
.info-table{display:flex;flex-direction:column;}
.info-row{display:grid;grid-template-columns:minmax(7em,12em) minmax(0,1fr);gap:16px;padding:16px 22px;border-bottom:2px dashed var(--c-ink);}
.info-row:last-child{border-bottom:0;}
.info-row__label{color:var(--c-brown);}
.info-row__label--icon{display:flex;align-items:center;gap:8px;}
.info-row__label--icon img{width:22px;height:22px;flex:none;}
@media (max-width:768px){.info-row{grid-template-columns:minmax(0,1fr);gap:2px;}}

/* 料金などの行 */
.price-list{display:flex;flex-direction:column;}
.price-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 24px;padding:14px 20px;border-bottom:2px dashed var(--c-ink);}
.price-row:last-child{border-bottom:0;}
.price-row__label{flex:1 1 16em;min-width:0;}
.price-row__value{flex:0 1 auto;text-align:right;margin-left:auto;}

.dashed-box{border:3px dashed var(--c-brown);}
/* 見た目はふつうの文字のまま、タップで電話できる番号 */
.tel-plain,.tel-plain:hover{color:inherit;text-decoration:none;}

/* ==========================================================
   ヘッダー
   ========================================================== */
.site-header{position:sticky;top:0;z-index:50;background:var(--c-ink);color:var(--c-cream);border-bottom:4px solid var(--c-navy);}
.admin-bar .site-header{top:32px;}
@media (max-width:782px){.admin-bar .site-header{top:46px;}}
.site-header__inner{max-width:1200px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:20px;}
.brand{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--c-cream);flex:none;}
.brand:hover{color:var(--c-cream);}
.brand img{width:32px;height:32px;flex:none;display:block;}
.brand__name{font-size:20px;line-height:1;letter-spacing:0.08em;white-space:nowrap;}
.gnav{display:flex;gap:6px 16px;flex-wrap:wrap;align-items:center;justify-content:flex-end;margin-left:auto;font-size:14px;}
.gnav a{display:flex;align-items:center;gap:4px;color:var(--c-cream);text-decoration:none;}
.gnav a .arrow{color:transparent;font-size:10px;}
.gnav a:hover{color:var(--c-gold);}
.gnav a:hover .arrow{color:var(--c-terracotta);}
.gnav a[aria-current="page"]{color:var(--c-gold);}
.gnav a[aria-current="page"] .arrow{color:var(--c-terracotta);animation:nav-blink 1.4s steps(1,end) infinite;}
.gnav .gnav__contact{margin-left:6px;background:var(--c-terracotta);color:var(--c-cream);padding:4px 12px;line-height:1.5;box-shadow:2px 2px 0 #000;}
.gnav .gnav__contact:hover{background:#D2845A;color:var(--c-cream);}
.gnav .gnav__contact:active{transform:translate(2px,2px);box-shadow:none;}
.gnav .gnav__contact[aria-current="page"]{color:var(--c-cream);}
.menu-btn{all:unset;display:none;box-sizing:border-box;cursor:pointer;margin-left:auto;width:44px;height:44px;place-items:center;border:3px solid var(--c-cream);}
.menu-btn:active{transform:translate(2px,2px);}
.menu-btn:focus-visible{outline:3px solid var(--c-gold);outline-offset:2px;}
.menu-btn .icon-close{display:none;}
.menu-btn[aria-expanded="true"] .icon-open{display:none;}
.menu-btn[aria-expanded="true"] .icon-close{display:block;}
.spnav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--c-ink);border-bottom:4px solid var(--c-navy);flex-direction:column;}
.spnav.is-open{display:flex;}
.spnav a{display:flex;align-items:center;gap:10px;padding:14px 24px;border-top:2px dashed #3A3A3A;text-decoration:none;font-size:16px;color:var(--c-cream);}
.spnav a .arrow{color:transparent;font-size:12px;}
.spnav a:hover .arrow,.spnav a:active .arrow{color:var(--c-terracotta);}
.spnav a:active{background:var(--c-navy);}
.spnav a[aria-current="page"]{color:var(--c-gold);}
.spnav a[aria-current="page"] .arrow{color:var(--c-terracotta);animation:nav-blink 1.4s steps(1,end) infinite;}
.spnav__contact-wrap{padding:14px 24px 18px;border-top:2px dashed #3A3A3A;display:flex;}
.spnav .spnav__contact{flex:1;justify-content:center;text-align:center;background:var(--c-terracotta);color:var(--c-cream);padding:10px 16px;box-shadow:3px 3px 0 #000;border-top:0;}
.spnav .spnav__contact:active{transform:translate(3px,3px);box-shadow:none;background:var(--c-terracotta);}
@media (max-width:768px){
  .gnav{display:none;}
  .menu-btn{display:grid;}
}
@media (min-width:769px){.spnav{display:none!important;}}

/* ==========================================================
   下層ページのタイトル帯
   ========================================================== */
.page-hero{position:relative;height:clamp(200px,24vw,300px);overflow:hidden;background:var(--c-navy);border-bottom:4px solid var(--c-ink);}
.page-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.page-hero::after{content:"";position:absolute;inset:0;background:rgba(27,40,54,0.72);}
.page-hero__inner{position:relative;z-index:1;height:100%;max-width:1080px;margin:0 auto;padding:0 20px;display:flex;flex-direction:column;justify-content:center;gap:8px;color:var(--c-cream);}
.page-hero__eyebrow{font-size:14px;letter-spacing:0.12em;color:var(--c-gold);}
.page-hero__title{margin:0;font-weight:400;font-size:clamp(28px,4vw,48px);text-shadow:4px 4px 0 var(--c-ink);}

/* ==========================================================
   フッター
   ========================================================== */
.site-footer{position:relative;overflow:hidden;background:var(--c-deep-navy);color:var(--c-cream);padding:clamp(56px,8vw,96px) 20px 32px;}
.site-footer--top{border-top:4px solid var(--c-ink);}
.site-footer--no-cta{padding-top:clamp(40px,5vw,64px);}
.footer-bg{position:absolute;inset:0;pointer-events:none;z-index:0;}
.footer-bg__stars{position:absolute;left:0;right:0;top:40px;bottom:260px;background-repeat:repeat;opacity:0.9;}
.footer-bg__bridge{position:absolute;left:50%;transform:translateX(-50%);bottom:196px;width:min(1100px,140%);height:110px;opacity:0.9;}
.footer-bg__bridge svg{width:100%;height:100%;display:block;}
.footer-bg__roofs{position:absolute;left:0;right:0;bottom:176px;height:60px;background-repeat:repeat-x;background-position:left bottom;}
.footer-main{position:relative;z-index:1;max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:48px;}
.footer-cta{display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px;}
.footer-cta__title{margin:0;font-weight:400;font-size:clamp(24px,3.2vw,40px);text-shadow:4px 4px 0 var(--c-ink);}
.footer-cta__note{margin:-10px 0 0;font-size:14px;color:rgba(243,233,210,0.72);}
.footer-info{color:var(--c-cream);border-top:2px dashed #CFC4AA;padding-top:clamp(32px,4vw,48px);display:flex;flex-direction:column;gap:clamp(32px,4vw,44px);}
.footer-info__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:40px 64px;align-items:start;}
.footer-info__shop{display:flex;flex-direction:column;gap:20px;min-width:0;}
.footer-info .brand{align-self:flex-start;}
.footer-info .brand:hover{color:#FFFFFF;}
.footer-info__catch{margin:0;font-size:14px;line-height:1.8;color:rgba(243,233,210,0.72);}
.footer-info dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 20px;align-items:baseline;font-size:14px;line-height:1.9;}
.footer-info dt{white-space:nowrap;font-size:12px;color:rgba(243,233,210,0.55);letter-spacing:0.06em;}
.footer-info dd{margin:0;}
.footer-info dd a{color:var(--c-cream);text-decoration:underline;text-decoration-color:rgba(243,233,210,0.35);text-decoration-thickness:1px;text-underline-offset:4px;}
.footer-info dd a:hover{color:#FFFFFF;text-decoration-color:rgba(255,255,255,0.8);}
.footer-menu{min-width:0;display:flex;flex-direction:column;gap:14px;}
.footer-menu__label{font-size:12px;color:rgba(243,233,210,0.55);letter-spacing:0.1em;}
.footer-menu__list{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:12px 48px;font-size:14px;line-height:1.6;}
.footer-menu__list a{display:flex;align-items:center;gap:4px;margin-left:-14px;color:rgba(243,233,210,0.82);text-decoration:none;}
.footer-menu__list a .arrow{width:10px;font-size:10px;color:transparent;}
.footer-menu__list a:hover{color:#FFFFFF;}
.footer-menu__list a:hover .arrow{color:var(--c-terracotta);}
.footer-copy{text-align:center;font-size:12px;color:rgba(243,233,210,0.5);letter-spacing:0.06em;}

.footer-street{position:relative;height:300px;margin:-8px -20px -32px;overflow:hidden;background-repeat:repeat-x;background-size:auto 100%;background-position:left bottom;image-rendering:pixelated;}
.footer-street__signs{position:absolute;inset:0;display:flex;}
.footer-street__tile{position:relative;width:900px;height:100%;flex:none;}
.footer-street__sns{position:absolute;left:166px;top:83px;width:138px;height:36px;display:flex;align-items:center;justify-content:center;gap:18px;}
.footer-street__sns a{display:grid;place-items:center;width:30px;height:30px;}
.footer-street__sns a:hover{transform:translateY(-2px);}
.footer-street__name{position:absolute;left:590px;top:83px;width:138px;height:36px;display:grid;place-items:center;font-size:15px;letter-spacing:0.06em;color:var(--c-navy);white-space:nowrap;}
.footer-walker{position:absolute;left:0;right:0;bottom:28px;height:109px;pointer-events:none;}
.footer-walker__move{position:absolute;bottom:0;width:58px;height:109px;animation:walker-move 36s steps(180) infinite;}
.footer-walker__flip{width:58px;height:109px;animation:walker-flip 36s steps(1,end) infinite;}
.footer-walker__sprite{width:58px;height:109px;background-size:348px 109px;background-repeat:no-repeat;image-rendering:pixelated;animation:walker-frames 0.72s steps(6) infinite;}

/* ==========================================================
   トップページ
   ========================================================== */
.hero{position:relative;width:100%;height:clamp(520px,56.3vw,92vh);overflow:hidden;background:#3A3A4A;container-type:size;border-bottom:4px solid var(--c-ink);}
.hero__stage{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:max(100cqw,177.7cqh);aspect-ratio:1672/941;}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;}
.hero__noren{position:absolute;left:40.25%;top:48.8%;width:19.5%;aspect-ratio:1320/531;pointer-events:none;}
.hero__noren img{position:absolute;image-rendering:pixelated;}
.hero__noren .cloth{top:17.514%;height:82.486%;transform-origin:50% 0;animation:noren-sway 2.4s steps(3,end) infinite;}
.hero__noren .cloth--1{left:0;width:33.182%;animation-delay:0s;}
.hero__noren .cloth--2{left:33.182%;width:33.712%;animation-delay:-0.8s;}
.hero__noren .cloth--3{left:66.894%;width:33.106%;animation-delay:-1.6s;}
.hero__noren .rod{left:0;top:0;width:100%;height:17.514%;}
.hero__shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(38,55,74,0.92) 0%,rgba(38,55,74,0.55) 24%,rgba(38,55,74,0) 46%);pointer-events:none;}
.hero__content{position:absolute;left:0;right:0;bottom:0;padding:clamp(24px,4vw,56px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;}
.hero__texts{display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.2vw,16px);}
.hero__tagline{margin:0;color:#D9CCAE;font-size:clamp(15px,1.6vw,22px);letter-spacing:0.12em;line-height:1.5;text-shadow:3px 3px 0 var(--c-ink);}
.hero__catch{margin:0;color:var(--c-cream);font-weight:400;font-size:clamp(26px,3.6vw,52px);line-height:1.4;text-shadow:4px 4px 0 var(--c-ink);text-wrap:pretty;}
.hero__catch span{display:inline-block;}
.hero .btn{padding:10px 28px;}
/* スマホ：ボタンを横並びにして、文字がのれんに重ならない高さまで下げる */
@media (max-width:600px){
	.hero__content{padding-bottom:14px;gap:12px;}
	.hero__texts{gap:4px;}
	.hero .btn-row{flex-wrap:nowrap;gap:10px;}
	.hero .btn{white-space:nowrap;}
}
@media (max-width:400px){
	.hero .btn{padding:8px 14px;font-size:16px;}
}

.intro__grid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:48px;align-items:center;}
.intro__text{display:flex;flex-direction:column;gap:20px;}
.intro__img{display:block;width:100%;max-width:480px;height:auto;justify-self:center;}

.news-preview{position:relative;padding:0 20px clamp(56px,8vw,96px);}
.news-box{max-width:1080px;margin:0 auto;background:var(--c-ink);color:var(--c-cream);border:4px solid var(--c-ink);box-shadow:0 0 0 4px var(--c-cream),0 0 0 8px var(--c-ink);}
.news-preview .news-box{padding:24px clamp(20px,3vw,36px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:20px 40px;align-items:start;}
.news-preview__head{display:flex;flex-direction:column;gap:12px;}
.news-preview__eyebrow{font-size:14px;letter-spacing:0.1em;color:var(--c-gold);}
.news-preview__more{align-self:start;text-decoration:none;color:var(--c-cream);border:3px solid var(--c-cream);padding:6px 16px;font-size:14px;}
.news-preview__more:hover{background:var(--c-cream);color:var(--c-ink);}
.news-preview__more:active{transform:translate(3px,3px);}
.news-preview__list{grid-column:2/-1;min-width:0;display:flex;flex-direction:column;}
.news-preview__item{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:12px 4px;border-bottom:2px dashed #6B6B6B;text-decoration:none;color:var(--c-cream);font-size:15px;}
.news-preview__item:hover{color:var(--c-gold);}
.news-preview__meta{display:flex;align-items:center;gap:12px;flex:none;}
.news-preview__date{display:flex;align-items:center;gap:10px;color:#CFC4AA;font-size:14px;}
.news-preview__date svg{flex:none;}
.news-preview__title{flex:1;min-width:12em;}
.news-label{display:inline-block;min-width:5.5em;padding:1px 8px;font-size:12px;line-height:1.6;text-align:center;letter-spacing:0.05em;}
.news-label--news{background:var(--label-news-bg);color:var(--label-news-fg);}
.news-label--blog{background:var(--label-blog-bg);color:var(--label-blog-fg);}
.news-preview__links{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;}
@media (max-width:560px){.news-preview__list{grid-column:auto;}}
@media (max-width:768px){
	.news-preview__item{flex-direction:column;align-items:flex-start;gap:6px;}
	.news-preview__title{flex:none;min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;}
	.news-preview__links{justify-content:flex-start;}
}

/* 制作の流れ */
.stage{position:relative;height:calc(max(100vw, 100vh - var(--header-h)) + 100vh - var(--header-h) + 70vh);background:var(--c-deep-navy);}
.stage__frame{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));width:100%;overflow:hidden;}
.stage__map{position:absolute;left:50%;top:0;width:max(100%, 100vh - var(--header-h));aspect-ratio:1/1;transform:translate(-50%,0);will-change:transform;}
.stage__map-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.stage-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;background:rgba(243,233,210,0.9);padding:4px 16px 4px 4px;min-width:150px;border:2px solid var(--c-ink);white-space:nowrap;pointer-events:none;z-index:2;}
.stage-pin__n{width:32px;height:32px;flex:none;display:grid;place-items:center;background:#8A8A8A;color:var(--c-cream);font-size:17px;line-height:1;}
.stage-pin.is-done .stage-pin__n{background:var(--c-navy);}
.stage-pin__icon,.stage-card__icon,.stage-list__icon{flex:none;background-size:contain;background-repeat:no-repeat;background-position:center;image-rendering:pixelated;}
.stage-pin__icon{width:32px;height:32px;}
.stage-pin__name{font-size:16px;line-height:1.3;color:var(--c-ink);}
.stage__char{position:absolute;height:2.9%;min-height:24px;aspect-ratio:336/506;transform:translate(-50%,-100%);background-size:500% 100%;background-repeat:no-repeat;image-rendering:pixelated;pointer-events:none;z-index:5;}
.stage__zone{position:absolute;left:0;right:0;top:112px;bottom:80px;z-index:6;pointer-events:none;}
.stage-card{position:absolute;background:rgba(243,233,210,0.92);color:var(--c-ink);border:4px solid var(--c-ink);box-shadow:0 0 0 4px rgba(243,233,210,0.92),6px 6px 0 4px rgba(27,27,27,0.35);padding:16px 18px;display:flex;flex-direction:column;gap:6px;z-index:6;pointer-events:none;}
.stage-card__n{font-size:16px;color:var(--c-brown);}
.stage-card__head{display:flex;align-items:center;gap:10px;}
.stage-card__icon{width:40px;height:40px;}
.stage-card__title{font-size:21px;line-height:1.4;}
.stage-card__body{font-size:16px;line-height:1.9;text-wrap:pretty;}
.stage-card__goal{display:none;margin-top:4px;padding-top:8px;border-top:2px dashed var(--c-brown);font-size:14px;line-height:1.7;color:var(--c-navy);text-wrap:pretty;}
.stage-card.is-goal .stage-card__goal{display:block;}
.stage__head{position:absolute;left:0;right:0;top:0;z-index:8;background:rgba(27,40,54,0.8);color:var(--c-cream);padding:16px 20px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;border-bottom:4px solid var(--c-deep-navy);}
.stage-eyebrow{font-size:13px;letter-spacing:0.1em;color:var(--c-gold);}
.stage-title{margin:0;font-weight:400;font-size:clamp(20px,3vw,32px);line-height:1.4;text-shadow:3px 3px 0 var(--c-ink);}
.stage__bar{position:absolute;left:0;right:0;bottom:0;z-index:8;background:rgba(27,40,54,0.85);border-top:4px solid var(--c-deep-navy);color:var(--c-cream);padding:10px 16px 12px;display:flex;flex-direction:column;gap:6px;}
.stage__bar-top{display:flex;justify-content:space-between;gap:12px;font-size:15px;}
.stage__bar-n{color:var(--c-gold);}
.stage__cells{display:flex;gap:6px;}
.stage__cells.is-glow{animation:bar-glow 0.9s steps(3,end) 1;}
.stage__cell{flex:1;height:10px;background:transparent;border:2px solid var(--c-cream);}
.stage__cell.is-done{background:var(--c-gold);}

/* スマホ（768px以下）の制作の流れ
   - 貼り付く位置は実際のヘッダーの高さ（main.js が --site-header-h に入れる）
   - 説明は画面下のパネル（STAGE の帯と一体）。地図は少し大きくして、パネルの上に今のステージが来るように動かす
   - 今のステージのラベルを強調、キャラはラベルの横で足踏み */
@media (max-width:768px){
	/* 100svh：アドレスバーが出ていても下のパネルが隠れない高さ */
	.stage{--header-h:var(--site-header-h,68px);height:calc(100vh - var(--header-h) + 700px + 25vh);height:calc(100svh - var(--header-h) + 700px + 25svh);}
	.stage__frame{height:calc(100svh - var(--header-h));}
	.stage__map{width:calc((100svh - var(--header-h)) * 1.3);}
	.stage__map::after{content:"";position:absolute;inset:0;background:rgba(15,22,32,0.3);z-index:1;pointer-events:none;}
	.stage-pin{opacity:0.72;transition:transform .2s steps(2,end),opacity .2s;}
	.stage-pin.is-current{opacity:1;z-index:4;background:var(--c-terracotta);transform:translate(-50%,-50%) scale(1.1);}
	.stage-pin.is-current .stage-pin__name{color:var(--c-cream);}
	.stage__char{height:44px;min-height:0;aspect-ratio:58/88;}
	.stage__char.is-idle{animation:char-step .8s steps(1,end) infinite;}
	.stage__zone{top:auto;}
	.stage-card{position:static;left:auto!important;top:auto!important;width:auto!important;transform:none!important;background:var(--c-deep-navy);color:var(--c-cream);border:0;border-top:4px solid var(--c-deep-navy);box-shadow:none;padding:12px 16px 4px;gap:4px;}
	.stage-card__n{display:none;}
	.stage-card__head{gap:8px;}
	.stage-card__icon{width:28px;height:28px;}
	.stage-card__title{font-size:17px;}
	.stage-card__body{font-size:14px;line-height:1.7;min-height:calc(1.7em * 2);color:#E8DDC4;}
	.stage-card__goal{font-size:12.5px;line-height:1.6;padding-top:6px;color:var(--c-gold);border-top-color:#6B6B6B;}
	.stage__bar{border-top:0;background:var(--c-deep-navy);padding-top:6px;}
	.stage__bar [data-stage="short"]{display:none;}
}
@keyframes char-step{0%{background-position:0 0;}50%{background-position:50% 0;}}

/* 動きなし版 */
.stage-static{display:none;background:var(--c-deep-navy);padding:clamp(48px,7vw,88px) 20px;}
.stage-static__inner{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:32px;color:var(--c-cream);}
.stage-static__head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;}
.stage-static__map{position:relative;width:min(100%,640px);margin:0 auto;aspect-ratio:1/1;border:4px solid var(--c-cream);overflow:hidden;}
.stage-static__map > img{position:absolute;inset:0;width:100%;height:100%;}
.stage-static__pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;background:rgba(243,233,210,0.92);padding:3px 10px 3px 3px;border:2px solid var(--c-ink);white-space:nowrap;color:var(--c-ink);font-size:13px;line-height:1.3;}
.stage-static__pin span{width:24px;height:24px;flex:none;display:grid;place-items:center;background:var(--c-navy);color:var(--c-cream);font-size:14px;line-height:1;}
.stage-static__char{position:absolute;height:2.9%;min-height:20px;aspect-ratio:336/506;transform:translate(-50%,-100%);background-size:500% 100%;background-position:25% 0;background-repeat:no-repeat;image-rendering:pixelated;z-index:3;}
.stage-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:20px;}
.stage-list li{background:var(--c-cream);color:var(--c-ink);border:4px solid var(--c-ink);box-shadow:6px 6px 0 #000;padding:16px 18px;display:flex;flex-direction:column;gap:6px;}
.stage-list__n{font-size:15px;color:var(--c-brown);}
.stage-list__head{display:flex;align-items:center;gap:10px;}
.stage-list__icon{width:36px;height:36px;}
.stage-list__title{font-size:20px;line-height:1.4;}
.stage-list__body{font-size:16px;line-height:1.9;text-wrap:pretty;}
.stage-note{background:var(--c-deep-navy);color:#CFC4AA;padding:20px 20px 36px;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;}
@media (prefers-reduced-motion: reduce){
  .stage{display:none;}
  .stage-static{display:block;}
}

/* 3つのこだわり */
.points{background:var(--c-beige);border-bottom:4px solid var(--c-ink);}
.points__inner{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:40px;}
.points__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:28px;}
.point-card{padding:24px;display:flex;flex-direction:column;gap:14px;transition:transform 0.24s steps(1),opacity 0.24s steps(1);}
.js .point-card{transform:translateY(24px);opacity:0;}
.js .points.is-in .point-card{transform:translateY(0);opacity:1;}
.point-card:nth-child(2){transition-delay:0.18s;}
.point-card:nth-child(3){transition-delay:0.36s;}
.point-card__icon{width:64px;height:64px;object-fit:contain;}
.point-card__head{display:flex;flex-direction:column;gap:4px;}
.point-card__catch{margin:0;font-weight:400;font-size:21px;line-height:1.5;text-wrap:pretty;}
.point-card__body{margin:0;font-size:15px;text-wrap:pretty;}
.points .btn{align-self:center;font-size:16px;}

/* よくある質問 */
.faq__inner{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:32px;}
.faq__list{display:flex;flex-direction:column;gap:16px;}
.faq-item{border:4px solid var(--c-ink);background:var(--c-light);}
.faq-item__q{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:flex;align-items:center;gap:14px;padding:16px 18px;font-family:var(--f-dot);font-size:17px;line-height:1.5;background:var(--c-light);color:var(--c-ink);}
.faq-item__q:focus-visible{outline:3px solid var(--c-gold);outline-offset:-3px;}
.faq-item__qtext{flex:1;}
.faq-item__sign{width:32px;height:32px;display:grid;place-items:center;border:3px solid currentColor;font-size:22px;line-height:1;transition:transform 0.2s steps(1);}
.faq-item.is-open .faq-item__q{background:var(--c-navy);color:var(--c-cream);}
/* 開いているときは「－」（main.js が記号を入れ替える） */
/* スマホ：「Q.」は質問文の1行目の頭にそろえる。行全体がボタンで、高さは44px以上 */
@media (max-width:768px){
	.faq-item__q{align-items:flex-start;min-height:44px;}
	.faq-item__sign{align-self:center;flex:none;}
}
.faq-item__a{padding:16px 18px 20px;border-top:4px dashed var(--c-ink);display:flex;gap:14px;font-size:15px;}
.faq-item__a[hidden]{display:none;}
.faq-item__a > span{color:var(--c-brown);}
.faq-item__a p{margin:0;text-wrap:pretty;}

/* ==========================================================
   会社概要
   ========================================================== */
.story{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:30px;}
.story__line{width:80px;height:4px;background:var(--c-terracotta);margin-top:-14px;}
.story strong{font-weight:700;}
.story__close{margin:0;font-size:20px;line-height:1.7;color:var(--c-terracotta);text-wrap:pretty;}
.workroom{position:relative;height:230px;container-type:size;margin:clamp(40px,6vw,72px) -20px calc(-1 * clamp(56px,8vw,112px));overflow:hidden;}
.workroom__pc,.workroom__sp{position:absolute;top:0;bottom:0;left:0;width:100%;overflow:hidden;background-size:auto 100%;background-repeat:repeat-x;background-position:bottom center;image-rendering:pixelated;}
.workroom__sp{display:none;}
.workroom__char{position:absolute;bottom:13cqh;transform:translateX(-50%);height:64.3cqh;aspect-ratio:362/523;background-size:600% 100%;background-repeat:no-repeat;image-rendering:pixelated;animation:typing-frames 1.8s steps(6) infinite;}
.workroom__pc .workroom__char{left:min(calc(50% + 69.6cqh), calc(100% - 22.3cqh - 24px));}
.workroom__sp .workroom__char{left:calc(50% - 45cqh);}
@media (max-width:768px){
  .workroom{height:140px;}
  .workroom__pc{display:none;}
  .workroom__sp{display:block;}
}
.company-info{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:32px;}
.ext-link{display:inline-flex;align-items:center;gap:5px;font-size:14px;color:var(--c-navy);text-decoration:underline;text-underline-offset:3px;}
.ext-link svg{flex:none;}
.biz-list{display:flex;flex-direction:column;gap:6px;}
.biz-list__row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;}

/* ==========================================================
   サービス・料金
   ========================================================== */
#plan{scroll-margin-top:70px;}
.service__inner{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(40px,5vw,56px);}
.plan{box-shadow:8px 8px 0 var(--c-ink);display:flex;flex-direction:column;}
.plan__head{background:var(--c-navy);color:var(--c-cream);padding:14px 24px;font-size:20px;}
.plan__body{padding:clamp(20px,3vw,32px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);grid-template-areas:"price inc" "btn btn";gap:28px 48px;align-items:start;}
.plan__price{grid-area:price;display:flex;flex-direction:column;gap:14px;}
.plan__pages{font-size:16px;color:var(--c-brown);}
.plan__amount{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;}
.plan__num{font-size:clamp(40px,5.5vw,58px);line-height:1.1;}
.plan__unit{font-size:18px;}
.plan__term{align-self:flex-start;font-size:13px;line-height:1.5;color:var(--c-cream);background:var(--c-brown);padding:3px 10px;}
.plan__pay{margin:6px 0 0;font-size:14px;line-height:1.8;color:#3A3A3A;text-wrap:pretty;}
.plan__inc{grid-area:inc;display:flex;flex-direction:column;gap:22px;border-left:2px dashed var(--c-ink);padding-left:40px;}
.plan__group{display:flex;flex-direction:column;gap:10px;}
.plan__group-name{font-size:13px;color:var(--c-brown);letter-spacing:0.08em;display:flex;align-items:center;gap:8px;}
.plan__group-name::before{content:"";width:8px;height:8px;background:var(--c-navy);flex:none;}
.plan__items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.6;}
.plan__items li{display:flex;gap:8px;}
.plan__items li::before{content:"▸";color:var(--c-terracotta);}
.plan__btn{grid-area:btn;display:flex;justify-content:center;padding-top:8px;border-top:2px dashed var(--c-ink);}
.plan__btn > div{padding-top:20px;display:flex;}
.plan__btn .btn{text-align:center;}
@media (max-width:768px){
  .plan__body{grid-template-columns:minmax(0,1fr);grid-template-areas:"price" "inc" "btn";}
  .plan__inc{border-left:0;padding-left:0;border-top:2px dashed var(--c-ink);padding-top:22px;}
}
.examples{display:flex;flex-direction:column;gap:20px;}
.examples__lead{margin:0;font-size:15px;text-wrap:pretty;display:flex;flex-direction:column;}
.tabs{display:none;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-columns:minmax(0,1fr);gap:10px;overflow-x:auto;padding:4px 8px 10px 4px;margin:0 -8px 0 -4px;scrollbar-width:thin;}
.js .tabs{display:grid;}
.tab{all:unset;box-sizing:border-box;min-width:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;padding:10px 6px;font-family:var(--f-dot);font-size:14px;line-height:1.35;text-align:center;border:4px solid var(--c-ink);background:var(--c-cream);color:var(--c-ink);}
.tab:focus-visible{outline:3px solid var(--c-gold);outline-offset:2px;}
.tab[aria-selected="true"]{background:var(--c-navy);color:var(--c-cream);box-shadow:4px 4px 0 var(--c-ink);transform:translate(-2px,-2px);}
.tab__icon{width:40px;height:40px;flex:none;background-color:var(--c-cream);background-size:92%;background-repeat:no-repeat;background-position:center;border:2px solid var(--c-ink);image-rendering:pixelated;}
.tab__name{display:flex;flex-direction:column;align-items:center;}
.tab-panel{padding:clamp(16px,2.5vw,24px);display:flex;flex-direction:column;gap:14px;}
.tab-panel[hidden]{display:none;}
.tab-panel__pages{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;align-items:stretch;gap:8px;}
.tab-panel__pages li{flex:1 1 0;min-width:0;display:flex;flex-direction:row;align-items:stretch;gap:8px;}
.page-box{flex:1 1 0;min-width:0;border:3px solid var(--c-ink);background:var(--c-light);display:flex;flex-direction:column;}
.page-box__n{background:var(--c-navy);color:var(--c-cream);font-size:15px;line-height:1;padding:6px 10px;display:flex;align-items:center;justify-content:center;flex:none;}
.page-box__name{padding:10px;font-size:15px;line-height:1.5;display:flex;align-items:center;justify-content:center;text-align:center;flex:1;text-wrap:pretty;}
.page-arrow{flex:none;align-self:center;color:var(--c-navy);font-size:14px;line-height:1;}
.page-arrow::before{content:"▶";}
@media (max-width:768px){
  .tabs{grid-template-columns:repeat(3,minmax(0,1fr));}
  .tab-panel__pages,.tab-panel__pages li{flex-direction:column;}
  .page-box{flex-direction:row;}
  .page-box__name{justify-content:flex-start;text-align:left;}
  .page-arrow::before{content:"▼";}
}
.examples__note{margin:0;padding:16px 20px;border:4px solid var(--c-navy);background:var(--c-light);color:var(--c-navy);font-size:17px;line-height:1.7;display:flex;flex-direction:column;text-wrap:pretty;}
.price-block{display:flex;flex-direction:column;gap:16px;}
#options{scroll-margin-top:90px;}
.server-text{padding:20px 24px;font-size:15px;}
.server-text p{margin:0;text-wrap:pretty;}
.server-text strong{font-weight:400;color:var(--c-navy);background:var(--c-gold);padding:0 4px;}
.estimate{padding:14px 18px;font-size:14px;color:var(--c-brown);display:flex;flex-direction:column;gap:4px;}
.estimate__body{color:var(--c-ink);text-wrap:pretty;}
.materials__inner{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:40px;}
.materials__lead{margin:0;font-size:15px;text-wrap:pretty;display:flex;flex-direction:column;}
.materials__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:28px;}
.material{padding:24px;display:flex;flex-direction:column;gap:10px;}
.material h3{margin:0;font-weight:400;font-size:19px;}
.material p{margin:0;font-size:15px;text-wrap:pretty;}
.materials__note{margin:-16px 0 0;font-size:13px;color:var(--c-brown);}
.materials__note a{color:var(--c-navy);text-decoration:underline;text-underline-offset:3px;}

/* ==========================================================
   こだわり・強み
   ========================================================== */
.strengths__inner{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:56px;}
.strength{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:32px;align-items:center;}
.strength__text{display:flex;flex-direction:column;gap:14px;}
.strength--reverse .strength__text{order:2;}
@media (max-width:768px){.strength--reverse .strength__text{order:0;}}
.strength__point{display:flex;align-items:center;gap:14px;}
.strength__point img{width:64px;height:64px;flex:none;object-fit:contain;}
.strength__head{display:flex;flex-direction:column;gap:6px;}
.strength__label{font-size:15px;color:var(--c-brown);}
.strength__catch{margin:0;font-weight:400;font-size:clamp(22px,2.6vw,28px);line-height:1.5;text-wrap:pretty;}
.promise{padding:14px 16px;display:flex;flex-direction:column;gap:6px;}
.promise__label{font-size:13px;color:var(--c-brown);letter-spacing:0.08em;}
.promise p{margin:0;font-size:15px;color:var(--c-ink);text-wrap:pretty;}
.strength .btn{align-self:flex-start;}
.photo-frame{--px:3px;--frame-base:#bfbcb4;--frame-hi:#eeede8;--frame-sh:#6e6b64;--frame-edge:#1b2836;--frame-inner:#26374a;--screw:#8f8c85;position:relative;box-sizing:border-box;width:100%;padding:calc(var(--px)*3);background:var(--frame-base);border:var(--px) solid var(--frame-edge);box-shadow:inset var(--px) var(--px) 0 var(--frame-hi),inset calc(var(--px)*-1) calc(var(--px)*-1) 0 var(--frame-sh),6px 6px 0 var(--c-ink);}
.photo-frame img{display:block;width:100%;height:auto;box-sizing:border-box;border:var(--px) solid var(--frame-inner);}
.photo-frame::before,.photo-frame::after{content:"";position:absolute;inset:calc(var(--px)*0.5);pointer-events:none;background-repeat:no-repeat;}
.photo-frame::before{--s:calc(var(--px)*2);background-image:linear-gradient(var(--screw),var(--screw)),linear-gradient(var(--screw),var(--screw)),linear-gradient(var(--screw),var(--screw)),linear-gradient(var(--screw),var(--screw));background-size:var(--s) var(--s);background-position:left top,right top,left bottom,right bottom;}
.photo-frame::after{background-image:linear-gradient(var(--frame-hi),var(--frame-hi)),linear-gradient(var(--frame-hi),var(--frame-hi)),linear-gradient(var(--frame-hi),var(--frame-hi)),linear-gradient(var(--frame-hi),var(--frame-hi));background-size:var(--px) var(--px);background-position:left top,calc(100% - var(--px)) top,left calc(100% - var(--px)),calc(100% - var(--px)) calc(100% - var(--px));}

/* ==========================================================
   お問い合わせ
   ========================================================== */
.contact-top{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:48px;align-items:stretch;}
.contact-top__left{display:flex;flex-direction:column;gap:28px;align-self:start;}
.tel-btn{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;text-decoration:none;background:var(--c-navy);color:var(--c-cream);border:4px solid var(--c-ink);box-shadow:6px 6px 0 var(--c-ink);padding:10px 22px;}
.tel-btn:hover{background:var(--c-cream);color:var(--c-navy);}
.tel-btn:active{transform:translate(6px,6px);box-shadow:none;}
.tel-btn__num{font-size:clamp(20px,2.6vw,26px);line-height:1.4;white-space:nowrap;}
.tel-btn__hours{font-size:13px;line-height:1.4;opacity:0.85;white-space:nowrap;}
.shop-scene{height:100%;border:4px solid var(--c-ink);box-shadow:6px 6px 0 var(--c-ink);background:#D6E6EC;}
.shop-scene__inner{position:relative;height:100%;overflow:hidden;container-type:inline-size;background:#D6E6EC;}
@media (max-width:768px){
  .shop-scene{height:auto;}
  .shop-scene__inner{height:auto;aspect-ratio:1410/936;}
}
.cloud{position:absolute;left:-30%;}
.cloud svg{display:block;}
.cloud--a{top:9%;width:64px;height:24px;animation:shop-cloud 90s steps(90,end) infinite;}
.cloud--b{top:22%;width:48px;height:18px;animation:shop-cloud 130s steps(130,end) -60s infinite;}
.shop-scene__stage{position:absolute;left:-4.397%;bottom:-2.128cqw;width:108.936%;aspect-ratio:1536/1024;}
.shop-art{position:absolute;inset:0;}
.shop-art > img{position:absolute;image-rendering:pixelated;}
.shop-art__shop{inset:0;width:100%;height:100%;}
.shop-art__noren{top:44.92%;width:7.6%;height:18.36%;transform-origin:50% 0;animation:done-noren 3.6s steps(2,end) infinite;}
.shop-art__noren--1{left:38.67%;animation-delay:0s;}
.shop-art__noren--2{left:46.27%;animation-delay:-1.2s;}
.shop-art__noren--3{left:53.87%;animation-delay:-2.4s;}
.shop-art__owner{left:44.42%;top:57.13%;width:11.23%;height:32.23%;}

.contact-form-sec{background:var(--c-beige);border-top:4px solid var(--c-ink);border-bottom:4px solid var(--c-ink);}
.contact-form-sec__inner{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:32px;}
.form-card{padding:28px;display:flex;flex-direction:column;gap:20px;}
.form-card label,.form-card .field{display:flex;flex-direction:column;gap:6px;font-size:14px;}
.form-card input[type="text"],.form-card input[type="email"],.form-card input[type="tel"],.form-card textarea{font-family:var(--f-dot);font-size:15px;padding:10px 12px;border:3px solid var(--c-ink);background:var(--c-light);border-radius:0;color:var(--c-ink);width:100%;}
.form-card textarea{resize:vertical;}
.form-card .submit-btn{all:unset;align-self:center;cursor:pointer;background:var(--c-navy);color:var(--c-cream);border:4px solid var(--c-ink);box-shadow:4px 4px 0 var(--c-ink);padding:12px 36px;font-size:18px;font-family:var(--f-dot);}
.form-card .submit-btn:hover{background:var(--c-cream);color:var(--c-navy);}
.form-card .submit-btn:active{transform:translate(4px,4px);box-shadow:none;}
.form-card .submit-btn:focus-visible{outline:3px solid var(--c-gold);outline-offset:2px;}
.form-card__note{font-size:12px;color:var(--c-brown);text-align:center;}

/* Contact Form 7 で作ったフォームを、上の見た目に合わせる */
.form-card .wpcf7{margin:0;}
.form-card .wpcf7-form{display:flex;flex-direction:column;gap:20px;}
.form-card .wpcf7-form-control-wrap{display:block;position:relative;}
.form-card .hidden-fields-container{display:none;}
.form-card .wpcf7 .screen-reader-response{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:-1px;padding:0;border:0;}
.form-card__submit{display:flex;flex-direction:column;align-items:center;gap:8px;}
.form-card .wpcf7-spinner{display:none;}
.form-card .wpcf7-form.submitting .submit-btn{opacity:0.6;pointer-events:none;}
.iwaya-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden;}
/* 入力が足りないときの一言 */
.form-card .wpcf7-not-valid{border-color:var(--c-terracotta);}
.form-card .wpcf7-not-valid-tip{display:block;margin-top:4px;font-size:13px;line-height:1.6;color:#A5502A;}
/* 送信できなかったときなどのお知らせ（入力内容はそのまま残る） */
.form-card .wpcf7-response-output{margin:0;padding:12px 16px;border:3px solid var(--c-terracotta);background:var(--c-light);color:var(--c-ink);font-size:14px;line-height:1.8;}
.form-card .wpcf7-response-output a{color:var(--c-navy);}
.form-card .wpcf7-form.init .wpcf7-response-output,
.form-card .wpcf7-form.resetting .wpcf7-response-output,
.form-card .wpcf7-form.submitting .wpcf7-response-output,
.form-card .wpcf7-form.sent .wpcf7-response-output{display:none;}

.done{padding:clamp(14px,3vw,28px);display:flex;flex-direction:column;gap:24px;}
.done[hidden]{display:none;}
.done__scene{container-type:inline-size;border:4px solid var(--c-ink);background:var(--c-beige);}
.done__crop{position:relative;height:calc(max(100cqw, 560px) * 0.62);overflow:hidden;}
.done__stage{position:absolute;left:50%;bottom:0;width:max(100cqw, 560px);aspect-ratio:1536/1024;transform:translateX(-50%);}
.msg-window{background:var(--c-deep-navy);border:4px solid var(--c-cream-msg);padding:5px;box-shadow:4px 4px 0 var(--c-ink);}
.msg-window__inner{position:relative;border:3px solid var(--c-cream-msg);padding:clamp(16px,2.5vw,22px) clamp(18px,3vw,26px) 30px;color:var(--c-cream-msg);font-size:clamp(15px,2vw,18px);line-height:1.95;}
.msg-window__text{display:grid;}
.msg-window__text span{grid-area:1/1;white-space:pre-line;}
.msg-window__ghost{visibility:hidden;}
.msg-window__caret{position:absolute;right:14px;bottom:6px;font-size:14px;animation:done-blink 0.9s steps(1,end) infinite;}
.msg-window__caret[hidden]{display:none;}
.done__back{align-self:center;animation:done-pop 0.3s steps(3,end) both;padding:12px 32px;}
.done__back[hidden]{display:none;}

/* ==========================================================
   ブログ・お知らせ
   ========================================================== */
.blog-list{padding:clamp(48px,7vw,96px) 20px;}
.blog-list__inner{max-width:1080px;margin:0 auto;display:flex;flex-direction:column;gap:32px;}
.cat-filter{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:4px 8px 10px 4px;margin:0 -8px 0 -4px;}
.cat-btn{flex:none;display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:15px;line-height:1.3;white-space:nowrap;border:4px solid var(--c-ink);background:var(--c-cream);color:var(--c-ink);text-decoration:none;}
.cat-btn:hover{color:var(--c-ink);}
.cat-btn:focus-visible{outline:3px solid var(--c-gold);outline-offset:2px;}
.cat-btn__dot{width:14px;height:14px;flex:none;border:2px solid var(--c-ink);}
.cat-btn[aria-current="page"]{background:var(--c-navy);color:var(--c-cream);box-shadow:4px 4px 0 var(--c-ink);transform:translate(-2px,-2px);}
.cat-btn[aria-current="page"] .cat-btn__dot{border-color:var(--c-cream);}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:28px;}
.post-card{text-decoration:none;color:var(--c-ink);background:var(--c-cream);border:4px solid var(--c-ink);box-shadow:6px 6px 0 var(--c-ink);display:flex;flex-direction:column;min-width:0;}
.post-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--c-ink);color:var(--c-ink);}
.post-card__thumb{aspect-ratio:16/9;border-bottom:4px solid var(--c-ink);overflow:hidden;background:var(--c-beige);}
.post-card__thumb img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.post-card__body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:10px;flex:1;}
.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;}
.post-meta__date{color:var(--c-brown);}
.cat-label{display:inline-flex;align-items:center;gap:6px;color:var(--c-cream);padding:2px 10px 2px 4px;font-size:13px;line-height:1.5;}
.cat-label__icon{width:16px;height:16px;flex:none;border:2px dashed rgba(243,233,210,0.75);}
.sample-label{background:#FFE14D;color:var(--c-ink);border:2px solid var(--c-ink);font-size:12px;line-height:1.5;padding:0 8px;}
.post-card__title{margin:0;font-weight:400;font-size:19px;line-height:1.55;text-wrap:pretty;word-break:auto-phrase;overflow-wrap:anywhere;}
.post-card__excerpt{margin:0;font-family:var(--f-body);font-size:14px;line-height:1.8;color:#3A3A3A;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.empty-note{margin:0;padding:24px;border:3px dashed var(--c-brown);color:var(--c-brown);text-align:center;}
.pager{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;}
.pager a,.pager span{min-width:44px;height:44px;padding:0 6px;display:grid;place-items:center;border:4px solid var(--c-ink);background:var(--c-cream);color:var(--c-ink);text-decoration:none;font-size:16px;}
.pager .current{background:var(--c-navy);color:var(--c-cream);}
.pager .is-disabled{opacity:0.4;}

.article{padding:clamp(40px,6vw,80px) 20px;}
.article__inner{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:28px;}
.back-link{align-self:flex-start;font-size:14px;color:var(--c-navy);text-decoration:none;}
.back-link:hover{color:var(--c-brown);}
.article__header{display:flex;flex-direction:column;gap:14px;}
.article__cats{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;}
/* 記事タイトル・カードのタイトルは、言葉の区切りで改行（word-break:auto-phrase に対応していないブラウザは、今までどおりの改行） */
.article__title{margin:0;font-weight:400;font-size:clamp(26px,3.6vw,38px);line-height:1.5;text-wrap:pretty;word-break:auto-phrase;overflow-wrap:anywhere;}
.article__dates{display:flex;flex-wrap:wrap;gap:4px 20px;font-size:14px;color:var(--c-brown);}
.article__eyecatch{margin:0;aspect-ratio:16/9;border:4px solid var(--c-ink);box-shadow:6px 6px 0 var(--c-ink);overflow:hidden;background:var(--c-beige);}
.article__eyecatch img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.toc{background:var(--c-light);border:4px solid var(--c-ink);padding:18px 22px;display:flex;flex-direction:column;gap:8px;}
.toc__label{font-size:15px;color:var(--c-brown);letter-spacing:0.1em;}
.toc ol{margin:0;padding-left:1.6em;display:flex;flex-direction:column;gap:4px;font-size:15px;line-height:1.7;}
.toc a{color:var(--c-navy);}
.toc a:hover{color:var(--c-brown);}
.author{margin-top:24px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding:18px 20px;border:4px solid var(--c-ink);background:var(--c-beige);}
.author img{width:64px;height:64px;flex:none;display:block;}
.author__text{flex:1 1 240px;min-width:0;display:flex;flex-direction:column;gap:4px;}
.author__label{font-size:13px;color:var(--c-brown);}
.author__name{font-size:18px;}
.author p{margin:0;font-family:var(--f-body);font-size:14px;line-height:1.8;text-wrap:pretty;}
/* お問い合わせボックス（記事の下）：左にイワマル君、右に見出し・安心材料・ボタン */
.consult{background:var(--c-navy);color:var(--c-cream);border:4px solid var(--c-ink);box-shadow:6px 6px 0 var(--c-ink);padding:clamp(20px,3vw,32px);display:flex;align-items:center;gap:clamp(16px,3vw,32px);}
.consult__chara{flex:none;width:130px;height:auto;image-rendering:pixelated;display:block;}
.consult__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:14px;}
.consult__title{font-size:clamp(18px,2.4vw,22px);line-height:1.5;text-shadow:3px 3px 0 var(--c-ink);}
.consult__points{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-family:var(--f-body);font-size:14px;line-height:1.5;}
.consult__points li{display:flex;align-items:center;gap:6px;}
.consult__points img{width:24px;height:24px;flex:none;image-rendering:pixelated;}
.consult__btns{display:flex;flex-wrap:wrap;gap:14px;}
.btn--main{background:var(--c-terracotta);color:var(--c-light);}
.btn--main:hover{background:var(--c-ink);color:var(--c-cream);}
.consult .btn--main{border-color:var(--c-ink);}
.consult__link{align-self:flex-start;color:var(--c-cream);font-size:14px;text-underline-offset:3px;}
.consult__link:hover{color:var(--c-gold);}
@media (max-width:600px){
	.consult{flex-direction:column;text-align:center;}
	.consult__chara{width:96px;}
	.consult__points{flex-direction:column;align-items:flex-start;margin:0 auto;}
	.consult__btns{flex-direction:column;}
	.consult__btns .btn{width:100%;box-sizing:border-box;text-align:center;}
	.consult__link{align-self:center;}
}
.related{display:flex;flex-direction:column;gap:16px;}
.related__title{margin:0;font-weight:400;font-size:20px;display:flex;align-items:center;gap:10px;}
.related__title::before{content:"";width:10px;height:10px;background:var(--c-navy);flex:none;}
.related__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:20px;}
.related .post-card__body{padding:14px 16px 18px;}
.related .post-card__title{font-size:16px;}
.article__back{align-self:center;}

/* 本文 */
.entry-content{font-family:var(--f-body);font-size:17px;line-height:2;color:var(--c-ink);overflow-wrap:anywhere;}
.entry-content>*{margin:0;}
.entry-content>*+*{margin-top:1.5em;}
.entry-content h2{font-family:var(--f-dot);font-weight:400;font-size:clamp(21px,2.6vw,26px);line-height:1.5;margin-top:2.6em;padding:10px 16px;background:var(--c-navy);color:var(--c-cream);border:4px solid var(--c-ink);box-shadow:4px 4px 0 var(--c-ink);scroll-margin-top:80px;}
.entry-content h3{font-family:var(--f-dot);font-weight:400;font-size:clamp(19px,2.2vw,21px);line-height:1.5;margin-top:2.2em;padding-bottom:6px;border-bottom:3px dashed var(--c-brown);scroll-margin-top:80px;}
.entry-content h2+*,.entry-content h3+*{margin-top:1em;}
.entry-content ul,.entry-content ol{padding-left:1.6em;}
.entry-content li+li{margin-top:.35em;}
.entry-content ul>li::marker{content:'▸  ';color:#9E5530;}
.entry-content ol>li::marker{font-family:var(--f-dot);color:var(--c-navy);}
.entry-content figure{margin-left:0;margin-right:0;}
.entry-content img{display:block;max-width:100%;height:auto;border:4px solid var(--c-ink);box-shadow:6px 6px 0 var(--c-ink);background:var(--c-beige);}
.entry-content figcaption{font-size:14px;line-height:1.7;color:var(--c-brown);margin-top:12px;}
.entry-content blockquote{margin-left:0;margin-right:0;padding:18px 22px;background:var(--c-light);border:3px dashed var(--c-brown);}
.entry-content blockquote p{margin:0;}
.entry-content blockquote cite{display:block;margin-top:8px;font-size:14px;font-style:normal;color:var(--c-brown);}
.entry-content figure:has(>table){overflow-x:auto;}
.entry-content table{width:100%;min-width:480px;border-collapse:collapse;background:var(--c-light);border:4px solid var(--c-ink);font-size:15px;line-height:1.7;}
.entry-content th,.entry-content td{padding:10px 14px;border:2px solid var(--c-ink);text-align:left;vertical-align:top;}
/* 表の見出し行：濃紺に白文字（表が画面より広いときは、表だけ横にスクロール） */
.entry-content th{background:var(--c-navy);color:var(--c-light);font-weight:700;}
.entry-content figure:has(>table){-webkit-overflow-scrolling:touch;}.entry-content a{color:var(--c-navy);text-decoration:underline;text-underline-offset:3px;}
.entry-content a:hover{color:var(--c-brown);}
/* 太字はマーカー風（文字の下半分に薄い金色）。下線のリンクと見分けがつくように */
.entry-content strong{font-weight:700;padding:0 2px;background:linear-gradient(transparent 52%,rgba(230,194,122,0.55) 52%);text-decoration:none;}
/* 注記（段落ブロックに「iwaya-note」クラス）：小さめの文字。表のすぐ下では間を詰める */
.entry-content .iwaya-note{font-size:14px;line-height:1.8;color:var(--c-brown);}
.entry-content figure + .iwaya-note{margin-top:.6em;}
/* 本文の中のボタン（カスタムHTMLブロックで <p class="iwaya-cta"><a class="btn btn--light btn--md">） */
.entry-content .iwaya-cta{text-align:center;}
.entry-content a.btn{text-decoration:none;color:var(--c-ink);font-family:var(--f-dot);}
.entry-content a.btn:hover{color:var(--c-cream);}

/* 前の記事／次の記事（同じカテゴリ・公開済みだけ） */
.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.post-nav__item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--c-light);border:4px solid var(--c-ink);box-shadow:4px 4px 0 var(--c-ink);color:var(--c-ink);text-decoration:none;min-width:0;}
.post-nav__item:hover{background:var(--c-cream);}
.post-nav__item:active{transform:translate(4px,4px);box-shadow:none;}
.post-nav__item--next{grid-column:2;flex-direction:row-reverse;text-align:right;}
.post-nav__thumb{flex:none;width:96px;height:auto;aspect-ratio:1200/630;object-fit:cover;border:2px solid var(--c-ink);background:var(--c-beige);display:block;}
.post-nav__text{display:flex;flex-direction:column;gap:4px;min-width:0;}
.post-nav__dir{font-family:var(--f-dot);font-size:13px;color:var(--c-brown);}
.post-nav__title{font-size:14px;line-height:1.6;word-break:auto-phrase;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;}
@media (max-width:600px){
	.post-nav{grid-template-columns:minmax(0,1fr);}
	.post-nav__item--next{grid-column:auto;}
	.post-nav__thumb{width:80px;}
}

/* お知らせ一覧 */
.news-archive__inner{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:32px;}
.news-archive .news-box{padding:12px clamp(16px,3vw,32px);display:flex;flex-direction:column;}
.news-row{display:flex;gap:20px;flex-wrap:wrap;align-items:center;padding:16px 4px;border-bottom:2px dashed #6B6B6B;font-size:15px;color:var(--c-cream);text-decoration:none;}
a.news-row:hover{color:var(--c-gold);}
.news-row__date{color:#CFC4AA;font-size:14px;}
.news-row__type{font-size:12px;border:2px solid var(--c-gold);color:var(--c-gold);padding:0 8px;}
.news-row__title{flex:1;min-width:12em;}
.news-archive__more{padding:16px 4px;font-size:13px;color:#8A8A8A;}
.news-archive .pager a,.news-archive .pager span{background:var(--c-cream);}

/* ==========================================================
   汎用ページ・404
   ========================================================== */
.plain{max-width:760px;margin:0 auto;}

/* ==========================================================
   動きを減らす設定：すべて止めて、最初から全部見せる
   ========================================================== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;}
  .js .point-card{transform:none;opacity:1;}
}
