:root{
  --moss:#547733; --moss-d:#3a5224; --ink:#2b2a26; --kinari:#f6f2e8; --paper:#fbf9f3;
  --line:#ded8c6; --accent:#855629; --muted:#4f4d44;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:"Zen Kaku Gothic New",sans-serif;color:var(--ink);background:var(--paper);line-height:1.9;font-size:16px;-webkit-text-size-adjust:100%}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.serif{font-family:"Shippori Mincho",serif}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
section{padding:80px 0}
h2{font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(24px,3.2vw,32px);letter-spacing:.12em;text-align:center;line-height:1.5}
h2 small{display:block;font-family:"Zen Kaku Gothic New";font-size:12px;letter-spacing:.3em;color:var(--accent);margin-bottom:10px}
.lead{text-align:center;color:var(--muted);margin:16px auto 44px;max-width:620px}
.btn{display:inline-block;padding:14px 32px;border-radius:2px;letter-spacing:.1em;font-weight:500;transition:.2s}
.btn-main{background:var(--moss);color:#fff}.btn-main:hover{background:var(--moss-d)}
.btn-line{border:1px solid var(--moss);color:var(--moss)}.btn-line:hover{background:var(--moss);color:#fff}

/* header */
header{position:sticky;top:0;z-index:20;background:rgba(251,249,243,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;justify-content:space-between;height:80px}
.logo{font-family:"Shippori Mincho",serif;font-size:22px;letter-spacing:.18em;font-weight:700;color:var(--moss-d);line-height:1.2}
.logo-img img{height:60px;width:auto}
.logo-plate img{height:56px;width:auto}
.logo small{display:block;font-size:10px;letter-spacing:.2em;font-weight:400;color:var(--muted)}
nav ul{display:flex;align-items:center;gap:28px;list-style:none;padding:0;font-size:14px;letter-spacing:.08em}
nav a:hover{color:var(--accent)}
.nav-cta a{background:var(--moss);color:#fff;padding:9px 20px;border-radius:2px;letter-spacing:.1em}
.nav-cta a:hover{background:var(--moss-d);color:#fff}

.hd-right{display:flex;align-items:center;gap:22px}
.hd-tel{display:flex;align-items:center;gap:10px;color:var(--moss-d);white-space:nowrap;font-family:"Shippori Mincho",serif;font-size:26px;font-weight:700;letter-spacing:.04em;line-height:1.15}
.hd-tel svg{flex:none;background:var(--moss);color:#fff;border-radius:50%;padding:7px;width:40px;height:40px}
.hd-tel small{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-size:11px;font-weight:500;letter-spacing:.08em;color:var(--muted)}
.hd-btn{background:var(--moss);color:#fff;padding:11px 22px;border-radius:2px;letter-spacing:.1em;font-weight:500;font-size:14px}
.hd-btn:hover{background:var(--moss-d)}
.nav-cta{display:none}
.menu-btn{display:none}

/* hero */
.hero{padding:0;background:var(--kinari)}
.hero{position:relative;overflow:hidden}
.hero .wrap::before{content:"";position:absolute;z-index:-1;left:-70px;top:50%;width:520px;height:520px;transform:translateY(-50%);background:url(../img/emblem-wm.png) center/contain no-repeat;pointer-events:none}
.hero .wrap{position:relative;z-index:1}
.hero .wrap{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center;min-height:560px;padding-top:40px;padding-bottom:40px}
.hero h1{font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(30px,4.4vw,48px);line-height:1.6;letter-spacing:.14em;color:var(--moss-d)}
.hero p{margin:22px 0 30px;color:var(--muted);max-width:420px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.hero-img{position:relative}
.hero-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px;box-shadow:0 18px 40px -18px rgba(40,50,30,.45)}
.hero-img .sub{position:absolute;left:-28px;bottom:-28px;width:38%;border:6px solid var(--kinari);border-radius:2px}
.hero-img .sub img{aspect-ratio:1;box-shadow:none}

/* strengths */
.points{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:10px}
.point{background:#fff;border:1px solid var(--line);padding:34px 26px;text-align:center}
.point .no{font-family:"Shippori Mincho",serif;color:var(--accent);font-size:13px;letter-spacing:.25em}
.point h3{font-family:"Shippori Mincho",serif;font-weight:500;font-size:20px;letter-spacing:.1em;margin:8px 0 14px;color:var(--moss-d)}
.point p{font-size:14px;color:var(--muted);text-align:left}

.points.two{grid-template-columns:repeat(2,1fr);max-width:860px;margin-left:auto;margin-right:auto}
.points.two .point{padding:38px 34px}
.points.two .point p{font-size:15px}
.quote{max-width:820px;text-wrap:balance;margin:48px auto 0;text-align:center;font-family:"Shippori Mincho",serif;font-size:clamp(16px,1.9vw,20px);letter-spacing:.08em;line-height:2.1;color:var(--moss-d);position:relative;padding:0 8px}
.quote cite{display:block;margin-top:12px;font-size:13px;font-style:normal;letter-spacing:.15em;color:var(--muted)}
#concept .more{margin-top:34px}

/* section head (editorial) */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 40px;flex-wrap:wrap;margin-bottom:40px}
.sec-head .num{display:block;font-size:12px;letter-spacing:.28em;color:var(--accent);margin-bottom:6px}
.sec-head h2{text-align:left;font-size:clamp(28px,3.6vw,40px);letter-spacing:.14em}
.sec-head p{color:var(--muted);font-size:14px;letter-spacing:.08em;margin-bottom:6px}
.more-r{text-align:center;margin-top:56px}
.more-r a{display:inline-flex;align-items:center;gap:14px;font-size:15px;letter-spacing:.12em;padding:6px 0}
.more-r a::after{content:"";display:block;width:40px;height:1px;background:currentColor;transition:width .3s}
.more-r a:hover{color:var(--accent)}
.more-r a:hover::after{width:72px}
.band{position:relative;overflow:hidden;aspect-ratio:21/6.6;margin-bottom:56px;background:var(--moss-d)}
.band img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:saturate(.8) brightness(.92) sepia(.12)}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,42,22,.82) 0%,rgba(28,42,22,.5) 38%,rgba(28,42,22,0) 70%)}
.band-tx{position:absolute;z-index:1;left:max(40px,calc((100% - 1320px)/2));top:50%;transform:translateY(-50%);color:#fff;font-family:"Shippori Mincho",serif;font-size:clamp(20px,3vw,36px);letter-spacing:.14em;line-height:1.9;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.dummy{position:absolute;z-index:1;right:12px;bottom:10px;font-size:11px;color:#fff;background:rgba(0,0,0,.45);padding:2px 8px;border-radius:2px;letter-spacing:.05em}
.lead-l{font-family:"Shippori Mincho",serif;font-size:clamp(17px,2vw,21px);letter-spacing:.1em;line-height:1.9;color:var(--moss-d);margin:-12px 0 36px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:48px;border-top:1px solid var(--line);padding-top:32px}
.cols2 h3{font-family:"Shippori Mincho",serif;font-weight:500;font-size:21px;letter-spacing:.1em;color:var(--moss-d);margin-bottom:12px}
.cols2 p{font-size:15.5px;color:var(--muted);line-height:2}
#concept .wrap{max-width:1400px;padding:0 40px}
/* works */
.works{background:var(--paper);border-top:1px solid var(--line)}
.works .wrap{max-width:1400px;padding:0 40px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 32px}
.card{display:block}
.card .ph{position:relative;overflow:hidden}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .7s}
.card:hover img{transform:scale(1.04)}
.card .tx{padding:14px 0 16px;border-bottom:1px solid var(--line)}
.card .cat{font-size:12px;letter-spacing:.14em;color:var(--muted)}
.card:hover h3{color:var(--accent)}
.card h3{transition:color .2s;font-family:"Shippori Mincho",serif;font-weight:500;font-size:20px;margin-top:4px;letter-spacing:.08em;line-height:1.5}
/* news */
.news{background:var(--paper);border-top:1px solid var(--line)}
.news .wrap{max-width:1400px;padding:0 40px}
.news ul{list-style:none;padding:0;border-top:1px solid var(--line)}
.news li{display:flex;gap:40px;padding:20px 8px;border-bottom:1px solid var(--line);font-size:16px}
.news time{color:var(--muted);min-width:90px;font-size:14px;letter-spacing:.08em}
.news a:hover{color:var(--accent)}
/* about */
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center;margin-bottom:56px}
.portrait{position:relative;margin:0}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:60% 50%;border-radius:2px;box-shadow:0 18px 40px -20px rgba(40,50,30,.5)}
.about h2{text-align:left}
.about p{margin-top:18px}
.sign{margin-top:22px;font-family:"Shippori Mincho",serif;letter-spacing:.15em}
.career{margin-top:22px;border-top:1px solid var(--line);font-size:14px}
.career div{display:flex;gap:18px;border-bottom:1px solid var(--line);padding:9px 0}
.career b{font-family:"Shippori Mincho",serif;color:var(--accent);min-width:56px}


/* tea banner inside craftsman section */
.tea-banner{display:block;position:relative;overflow:hidden;border-radius:2px;aspect-ratio:21/7;background:var(--moss-d)}
.tea-banner img{position:absolute;right:0;top:0;width:70%;height:100%;object-fit:cover;object-position:50% 58%;transition:transform .8s;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%)}
.tea-banner:hover img{transform:scale(1.04)}
.tea-banner .cap{position:absolute;z-index:1;left:clamp(20px,5vw,56px);top:50%;transform:translateY(-50%);color:#fff}
.tea-banner .cap small{display:block;font-size:12px;letter-spacing:.3em;color:#e6d6b0}
.tea-banner .cap strong{display:block;font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(24px,3.6vw,38px);letter-spacing:.14em;line-height:1.4;margin:4px 0 10px}
.tea-banner .cap span{display:inline-block;font-size:14px;letter-spacing:.1em;border-bottom:1px solid #fff;padding-bottom:2px}
/* flow */
.flow{background:var(--kinari);border-top:1px solid var(--line)}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:36px;counter-reset:none}
.step{position:relative;background:#fff;border:1px solid var(--line);border-top:4px solid var(--moss);padding:26px 22px 30px}
.step:not(:last-child)::after{content:"";position:absolute;top:50%;right:-27px;width:16px;height:16px;border-top:3px solid var(--accent);border-right:3px solid var(--accent);transform:translateY(-50%) rotate(45deg);z-index:2}
.st-no{display:flex;align-items:baseline;gap:8px;color:var(--moss)}
.st-no span{font-size:11px;letter-spacing:.25em}
.st-no .free{align-self:center}
.st-no b{font-family:"Shippori Mincho",serif;font-size:42px;font-weight:500;line-height:1;letter-spacing:.04em}
.st-ic{margin:14px 0 8px;color:var(--accent)}
.step h3{font-family:"Shippori Mincho",serif;font-weight:500;font-size:18px;letter-spacing:.04em;white-space:nowrap;color:var(--moss-d);line-height:1.5;margin-bottom:8px}
.st-no .free{margin-left:auto;font-family:"Zen Kaku Gothic New",sans-serif;font-size:11px;letter-spacing:.1em;color:#fff;background:var(--accent);padding:1px 8px;border-radius:2px;vertical-align:middle}
.step p{font-size:14.5px;color:var(--muted);line-height:1.9}
/* news */

/* cta */
.cta-box{background:var(--kinari);border:1px solid var(--line);text-align:center;padding:56px 24px}
.cta-box .tel{font-family:"Shippori Mincho",serif;font-size:clamp(30px,6vw,46px);letter-spacing:.08em;color:var(--moss-d);margin:10px 0 2px;display:block}
.cta-box .note{font-size:13px;color:var(--muted)}
.cta-box .btn{margin-top:22px}

footer{background:#2d3328;color:#d6d9cc;padding:46px 0 90px;font-size:14px}
.ft{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
footer .logo{color:#f2efe4}
footer address{font-style:normal;margin-top:12px;line-height:1.9}
footer ul{list-style:none;padding:0;columns:2;column-gap:36px}
footer li{margin-bottom:6px}
.copy{margin-top:34px;font-size:12px;color:#97a08a}

/* mobile fixed bar */
.fixbar{display:none}
.draft{position:fixed;right:10px;top:76px;z-index:30;background:#9a6b3f;color:#fff;font-size:11px;padding:3px 10px;border-radius:2px;opacity:.9}
.prop{display:inline-block;font-size:10px;background:#c4572f;color:#fff;padding:0 7px;border-radius:2px;margin-left:8px;vertical-align:middle;letter-spacing:.05em}

@media (max-width:860px){
  .logo-img img{height:46px}
  section{padding:56px 0}
  nav{position:absolute;left:0;right:0;top:80px;background:var(--paper);border-bottom:1px solid var(--line);display:none}
  nav.open{display:block}
  nav ul{flex-direction:column;gap:0;padding:6px 20px 14px}
  nav li a{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
  .nav-cta a{margin-top:14px;text-align:center;border-bottom:0;padding:13px 0}
  .menu-btn{display:block;background:none;border:1px solid var(--moss);color:var(--moss);padding:6px 12px;font-size:13px;letter-spacing:.1em}
  .hd-right{display:none}
  .nav-cta{display:block}
  .hero .wrap::before{width:420px;height:420px;left:auto;right:-130px;top:120px;transform:none}
  .hero .wrap{grid-template-columns:1fr;gap:34px;min-height:0;padding-top:34px;padding-bottom:50px}
  .hero-img .sub{left:auto;right:-6px;bottom:-24px}
  .band{aspect-ratio:4/3;margin-bottom:36px}
  .band-tx{left:20px;font-size:19px}
  .band::after{background:linear-gradient(90deg,rgba(28,42,22,.8),rgba(28,42,22,.15))}
  .points,.points.two,.steps,.cols2{grid-template-columns:1fr}
  .steps{gap:34px}
  .step h3{white-space:normal}
  .step:not(:last-child)::after{top:auto;bottom:-24px;right:auto;left:50%;transform:translateX(-50%) rotate(135deg)}
  .cols2{gap:28px}
  #concept .wrap,.flow .wrap{padding:0 20px}
  .works .wrap,.news .wrap{padding:0 20px}
  .grid{grid-template-columns:1fr;gap:32px}
  .news li{gap:16px;flex-wrap:wrap}
  .about,.tea .in{grid-template-columns:1fr;gap:28px}

  .tea .imgs{order:-1}
  .news li{flex-wrap:wrap;gap:6px 14px}
  .fixbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:25;box-shadow:0 -4px 14px rgba(0,0,0,.15)}
  .fixbar a{text-align:center;padding:14px 4px;font-size:15px;letter-spacing:.08em;font-weight:500}
  .fixbar .t{background:var(--moss-d);color:#fff}.fixbar .m{background:#b0814f;color:#fff}
  .draft{top:auto;bottom:62px}
}

/* readability for older visitors: larger text, stronger contrast */
nav a{white-space:nowrap}
@media (max-width:1180px){
  nav ul{gap:20px}
  .hd-btn{display:none}
  .nav-cta{display:block}
  .nav-cta a{font-size:16px;padding:10px 18px}
  .hd-tel{font-size:23px}
}
@media (max-width:860px){ .nav-cta a{padding:13px 0} }

body{font-size:18px;line-height:2;color:#26251f}
.hero p{font-size:18px;color:#3b3a33}
nav ul{gap:24px}
nav a{font-size:16px}
.hd-btn{font-size:16px;padding:12px 22px}
.hd-tel{font-size:26px}
.hd-tel small{font-size:12.5px;color:#4f4d44}
.menu-btn{font-size:15px}
.btn{font-size:17px}
.sec-head .num{font-size:14px}
.sec-head p{font-size:16px}
.lead-l{font-size:clamp(19px,2.2vw,23px)}
.cols2 p{font-size:17.5px;line-height:2.05}
.cols2 h3{font-size:23px}
.card .cat{font-size:15px;color:#4f4d44}
.card h3{font-size:22px}
.more-r a{font-size:17px}
.news li{font-size:18px}
.news time{font-size:16px;min-width:100px}
.about p,.career{font-size:17px}
.career{font-size:16.5px}
.career b{font-size:17px}
.about small,.sec-head .num,.about h2 small{font-size:14px}
.tea-banner .cap small{font-size:13px}
.tea-banner .cap span{font-size:16px}
.step p{font-size:16px;line-height:1.95}
.step h3{font-size:19px}
.st-no span{font-size:13px}
.st-no .free{font-size:13px;padding:2px 9px}
.prop{font-size:12px;padding:1px 8px}
.cta-box .note{font-size:15px;color:#4f4d44}
.cta-box .lead,.lead{font-size:17px}
footer{font-size:16px}
.copy{font-size:13px;color:#b5bea8}
.dummy{font-size:12px}
@media (max-width:860px){
  body{font-size:18px}
  .fixbar a{font-size:17px;padding:16px 4px}
  .step h3{white-space:normal}
}

/* footer: deep moss + cream mono logo */
footer{background:#2f4223;color:#efeadb}
footer .logo-plate{background:none;padding:0}
footer .logo-plate img{height:62px;filter:brightness(0) invert(.93) sepia(.22);mix-blend-mode:normal}
footer address{font-size:16px;line-height:2;color:#efeadb;margin-top:16px}
footer ul{columns:2;column-gap:56px}
footer li{margin-bottom:10px}
footer li a{font-size:16px;color:#efeadb;border-bottom:1px solid transparent;padding-bottom:2px}
footer li a:hover{border-bottom-color:#d9c29a;color:#fff}
footer .copy{color:#b9c4a8;border-top:1px solid rgba(255,255,255,.15);padding-top:20px}

/* header: align with content width, more breathing room */
header .wrap{max-width:1400px;padding:0 40px}
nav ul{gap:34px}
.hd-right{gap:26px}
@media (max-width:1280px){ header .wrap{padding:0 28px} nav ul{gap:26px} .hd-tel{font-size:24px} }
@media (max-width:1180px){ .hd-btn{display:none} .nav-cta{display:block} nav ul{gap:22px} .hd-tel{font-size:23px} }
@media (max-width:860px){ header .wrap{padding:0 20px} }

.sub-links{margin-top:26px;font-size:16px;letter-spacing:.08em}
.sub-links a{border-bottom:1px solid currentColor;padding-bottom:2px}
.sub-links a:hover{color:var(--accent)}
.sub-links span{margin:0 14px;color:var(--muted)}

/* tablet / small laptop: collapse nav into a menu, keep the phone number visible */
@media (max-width:1120px){
  nav{position:absolute;left:0;right:0;top:80px;background:var(--paper);border-bottom:1px solid var(--line);display:none}
  nav.open{display:block}
  nav ul{flex-direction:column;align-items:stretch;gap:0;padding:6px 28px 16px}
  nav li a{display:block;padding:14px 0;border-bottom:1px solid var(--line)}
  .nav-cta a{margin-top:14px;text-align:center;border-bottom:0;padding:13px 0}
  .menu-btn{display:block}
  .hd-right{margin-left:auto;margin-right:14px}
}
@media (max-width:860px){ nav ul{padding:6px 20px 14px} .hd-right{display:none} }

/* ===== lower pages ===== */
.page-head{background:var(--kinari);border-bottom:1px solid var(--line);padding:44px 0 46px;position:relative;overflow:hidden}
.page-head::before{content:"";position:absolute;right:max(-80px,calc((100% - 1400px)/2 - 60px));top:50%;width:360px;height:360px;transform:translateY(-50%);background:url(../img/emblem-wm.png) center/contain no-repeat;opacity:.8;pointer-events:none}
.page-head .wrap{max-width:1400px;padding:0 40px;position:relative}
.crumb{font-size:14px;color:var(--muted);margin-bottom:22px;letter-spacing:.06em}
.crumb a{border-bottom:1px solid transparent}.crumb a:hover{color:var(--accent);border-bottom-color:currentColor}
.crumb span{margin:0 8px}
.page-head .num,.craft .num,.history .num{display:block;font-size:14px;letter-spacing:.28em;color:var(--accent);margin-bottom:6px}
.page-head h1{font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(30px,4vw,44px);letter-spacing:.14em;line-height:1.5;color:var(--moss-d)}
.ph-sub{margin-top:14px;color:var(--muted);max-width:720px}
.article{padding:72px 0}
.wrap.narrow{max-width:860px}
.wrap.wide{max-width:1400px;padding:0 40px}
.prop.todo{background:#b3541e;margin-left:10px;font-size:12px;vertical-align:middle;letter-spacing:.04em}
.story{margin-bottom:64px}
.story h2{text-align:left;font-size:clamp(24px,3vw,32px);letter-spacing:.12em;margin-bottom:22px;line-height:1.6;color:var(--moss-d)}
.story h2 small{display:inline-block;font-family:"Shippori Mincho",serif;color:var(--accent);font-size:18px;letter-spacing:.2em;margin:0 14px 0 0}
.story h2 em{font-style:normal;font-size:15px;letter-spacing:.1em;color:var(--muted);margin-left:12px;font-family:"Zen Kaku Gothic New",sans-serif}
.story p{margin-bottom:1.2em}
.story .quote{margin:36px 0 0;text-align:left;border-left:3px solid var(--accent);padding:4px 0 4px 24px;max-width:none}
.story .quote cite{text-align:left}
.craft{background:var(--kinari);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:80px 0}
.about2{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center;max-width:1100px}
.about2 h2{text-align:left;font-size:clamp(28px,3.4vw,38px);letter-spacing:.14em;margin-bottom:20px}
.about2 p{margin-bottom:1em}
.profile{margin-top:22px;border-top:1px solid var(--line)}
.profile div{display:flex;gap:20px;padding:11px 0;border-bottom:1px solid var(--line)}
.profile dt{min-width:64px;color:var(--accent);font-family:"Shippori Mincho",serif;font-weight:700}
.profile dd{margin:0}
.history{padding:80px 0}
.history h2{text-align:left;font-size:clamp(26px,3vw,34px);letter-spacing:.12em;margin-bottom:30px}
.timeline{list-style:none;padding:0;border-top:1px solid var(--line)}
.timeline li{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:22px 4px;border-bottom:1px solid var(--line)}
.timeline b{font-family:"Shippori Mincho",serif;font-size:24px;color:var(--moss);font-weight:500;letter-spacing:.06em}
.note-s{margin-top:18px;font-size:14.5px;color:var(--muted)}
.cta-strip{background:var(--moss-d);color:#f2efe4;text-align:center;padding:64px 20px}
.cta-strip .cta-ttl{font-family:"Shippori Mincho",serif;font-size:clamp(22px,3vw,30px);letter-spacing:.12em}
.cta-strip .cta-sub{margin:10px 0 6px;color:#d8dccb}
.cta-strip .cta-tel{display:block;font-family:"Shippori Mincho",serif;font-size:clamp(34px,6vw,50px);letter-spacing:.06em;margin:6px 0 20px;color:#fff}
.cta-strip .btn-main{background:#fff;color:var(--moss-d)}.cta-strip .btn-main:hover{background:var(--kinari)}
.listing{padding:64px 0 88px}
.list-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:34px}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chips button{font:inherit;font-size:16px;padding:9px 20px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:30px;cursor:pointer;letter-spacing:.06em}
.chips button:hover{border-color:var(--moss);color:var(--moss)}
.chips button.on{background:var(--moss);border-color:var(--moss);color:#fff}
.count{font-size:15px;color:var(--muted)}
.listing .grid{grid-template-columns:repeat(3,1fr);gap:48px 32px}
.card .cat time{margin-left:6px}
.more-r a#more{cursor:pointer}
.related{background:var(--kinari);border-top:1px solid var(--line)}
.h-s{font-family:"Shippori Mincho",serif;font-weight:500;font-size:26px;letter-spacing:.12em;margin-bottom:30px;text-align:left}
.meta{display:flex;align-items:center;gap:16px;margin-bottom:28px;color:var(--muted)}
.meta .tag{background:var(--moss);color:#fff;padding:2px 14px;font-size:14px;letter-spacing:.1em}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}
.pn{margin-top:40px}.pn a{border-bottom:1px solid currentColor;padding-bottom:3px}.pn a:hover{color:var(--accent)}
.news.article ul{list-style:none;padding:0;border-top:1px solid var(--line)}
.acc{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
.spec{margin:0 0 26px;border-top:1px solid var(--line)}
.spec div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:16px 4px;border-bottom:1px solid var(--line)}
.spec dt{font-family:"Shippori Mincho",serif;font-weight:700;color:var(--moss-d)}
.spec dd{margin:0}
.tel-l,.tl{border-bottom:1px solid currentColor;padding-bottom:1px}
.tel-l{font-family:"Shippori Mincho",serif;font-size:24px;letter-spacing:.05em;color:var(--moss-d)}
.map iframe{width:100%;height:440px;border:1px solid var(--line);display:block}
.est{background:var(--kinari);border:1px solid var(--line);padding:30px 34px;margin-bottom:36px}
.est p{margin-bottom:.8em}.est p:last-child{margin:0}
.tel-box{text-align:center;border:1px solid var(--line);padding:28px 20px;margin:0 0 48px;background:#fff}
.tel-box span{display:block;color:var(--muted);font-size:15px;letter-spacing:.1em}
.tel-box .tel-big{display:block;font-family:"Shippori Mincho",serif;font-size:clamp(34px,6vw,48px);letter-spacing:.06em;color:var(--moss-d);margin:4px 0}
.tel-box small{font-size:15px;color:var(--muted)}
.form-lead{margin-bottom:26px;font-family:"Shippori Mincho",serif;font-size:21px;letter-spacing:.08em;color:var(--moss-d)}
.f{margin-bottom:26px}
.f label{display:block;font-weight:500;margin-bottom:8px;letter-spacing:.06em}
.f label b{display:inline-block;margin-left:10px;font-size:12px;color:#fff;background:#b3541e;padding:1px 8px;font-weight:400;border-radius:2px}
.f input,.f select,.f textarea{width:100%;font:inherit;font-size:18px;padding:15px 16px;border:1px solid #bdb7a2;background:#fff;border-radius:2px;color:var(--ink)}
.f input:focus,.f select:focus,.f textarea:focus{outline:3px solid rgba(84,119,51,.35);border-color:var(--moss)}
.privacy{font-size:14.5px;color:var(--muted);margin-bottom:22px}
.submit{text-align:center}.submit .btn{font:inherit;font-size:19px;border:0;cursor:pointer;padding:18px 64px}
.recruit-h{font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(24px,3vw,32px);letter-spacing:.1em;color:var(--moss-d);margin-bottom:30px;line-height:1.6}
.rc{display:grid;grid-template-columns:1.3fr .7fr;gap:36px;align-items:start;margin-bottom:48px}
.rc-img{margin:0}
.rc-img img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:2px}
@media (max-width:860px){
  .page-head .wrap,.wrap.wide{padding:0 20px}
  .page-head{padding:30px 0 34px}.page-head::before{width:240px;height:240px;right:-70px}
  .article{padding:48px 0}
  .about2,.acc,.rc{grid-template-columns:1fr;gap:28px}
  .listing .grid{grid-template-columns:1fr 1fr;gap:28px 14px}
  .card h3{font-size:17px}
  .gallery{grid-template-columns:1fr}
  .timeline li{grid-template-columns:1fr;gap:6px}
  .spec div{grid-template-columns:1fr;gap:4px}
  .map iframe{height:320px}
  .est{padding:22px 20px}
  .chips button{font-size:15px;padding:8px 16px}
}
@media (max-width:560px){ .listing .grid{grid-template-columns:1fr} }

/* footer link groups */
.ft-links{display:flex;gap:64px;flex-wrap:wrap}
.ft-links h4{font-family:"Shippori Mincho",serif;font-weight:500;font-size:15px;letter-spacing:.14em;color:#d9c29a;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.2)}
.ft-links ul{columns:1;column-gap:0}
@media (max-width:860px){ .ft-links{gap:32px 40px} }

/* long-text pages (privacy etc.): breathing room around headings */
.entry-content .h-s{margin:2em 0 .6em;font-size:22px}
.entry-content .h-s:first-child{margin-top:0}
.article > .wrap > p:first-child{margin-bottom:22px}

/* top: concept statement (owner's key message) */
.concept-line{text-align:center;font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(26px,3.6vw,40px);letter-spacing:.2em;line-height:1.6;color:var(--moss-d);margin:0 0 40px}
.concept-line strong{font-weight:700;color:var(--accent);letter-spacing:.14em;font-size:1.12em}

/* client revisions (2026-10-23) */
.band-tx .big{font-size:1.5em;letter-spacing:.1em}
.concept-lead{text-align:center;font-family:"Shippori Mincho",serif;font-size:clamp(17px,2vw,22px);letter-spacing:.1em;line-height:2;color:var(--moss-d);margin:0 0 26px}
.lead-story{margin:0 0 56px;font-family:"Shippori Mincho",serif;font-size:clamp(20px,2.4vw,26px);letter-spacing:.1em;line-height:2;color:var(--moss-d);border-left:3px solid var(--accent);padding-left:22px}
.lead-story p{margin-bottom:.4em}
.lead-story .big{font-size:1.75em;letter-spacing:.08em;color:var(--accent);font-weight:700}
.story-photo{margin:22px 0 0}
.story-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}
.story-photo figcaption{margin-top:8px;font-size:14px;color:var(--muted)}

.lead-story{font-size:clamp(18px,2.05vw,24px);letter-spacing:.06em}
.lead-story p{text-wrap:balance}
.lead-story .big{font-size:1.6em;letter-spacing:.05em}
.concept-lead{text-wrap:balance}

/* concept page: story photos (split layout) + emphasised closing words */
.story-split{display:grid;grid-template-columns:1fr 340px;gap:36px;align-items:start}
.story-split.rev{grid-template-columns:340px 1fr}
.story-split .story-photo{margin:0}
.story-split .story-photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 50%}
.story-split .st-text p:last-child{margin-bottom:0}
.closing{background:var(--moss-d);color:#f4efe0;padding:96px 20px;position:relative;overflow:hidden;text-align:center}
.closing::before{content:"“";font-family:"Shippori Mincho",serif;position:absolute;left:max(16px,calc((100% - 1000px)/2));top:6px;font-size:230px;line-height:1;color:rgba(217,194,154,.25);pointer-events:none}
.closing-q{max-width:1000px;margin:0 auto;position:relative}
.closing-q p{font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(24px,3.7vw,44px);letter-spacing:.14em;line-height:2.15}
.closing-q p+p{margin-top:.5em}
.closing-q strong{font-weight:700;color:#efd9a8}
.closing-q cite{display:block;margin-top:40px;font-style:normal;font-family:"Shippori Mincho",serif;font-size:clamp(18px,2.2vw,24px);letter-spacing:.26em;color:#d9c29a}
.closing-q cite::before{content:"";display:block;width:64px;height:1px;background:#d9c29a;margin:0 auto 20px}

@media (max-width:860px){
  .story-split,.story-split.rev{grid-template-columns:1fr;gap:22px}
  .story-split .story-photo img{aspect-ratio:4/3}
  .closing{padding:64px 20px}
  .closing::before{font-size:150px;top:0}
  .closing-q p{letter-spacing:.1em;line-height:2}
}

.closing-q .ph{display:inline-block}

/* closing words: toned down (quiet band, calm size, no gold/bold) */
.closing{background:var(--paper);color:var(--moss-d);padding:60px 20px;border-top:1px solid var(--line)}
.closing::before{display:none}
.closing-q p{font-size:clamp(19px,2.3vw,27px);letter-spacing:.1em;line-height:2.1}
.closing-q p+p{margin-top:.3em}
.closing-q strong{font-weight:500;color:inherit}
.closing-q cite{margin-top:26px;font-size:clamp(14px,1.6vw,16px);letter-spacing:.2em;color:var(--muted)}
.closing-q cite::before{width:40px;background:#b9b196;margin:0 auto 14px}
@media (max-width:860px){ .closing{padding:44px 20px} .closing-q p{font-size:19px;letter-spacing:.06em;line-height:2} }

/* closing: maple image (left) + words (right), calm */
.closing{padding:72px 20px}
.closing-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}
.closing-img{position:relative;margin:0}
.closing-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px;filter:saturate(.85) brightness(.97)}
.closing-q{margin:0;text-align:left}
.closing-q cite::before{margin:0 0 14px}
.closing-q .ph{display:inline-block}
@media (max-width:860px){
  .closing-in{grid-template-columns:1fr;gap:28px}
  .closing{padding:48px 20px}
}

/* approachability: reassurance line, consult strip, profile hobby */
.hero-note{margin-top:16px;font-size:16px;color:var(--muted);letter-spacing:.06em}
.consult{background:var(--paper);border-bottom:1px solid var(--line);padding:34px 0 38px}
.consult .wrap{max-width:1400px;padding:0 40px}
.consult-ttl{font-family:"Shippori Mincho",serif;font-size:clamp(19px,2.2vw,24px);letter-spacing:.1em;color:var(--moss-d);margin-bottom:16px}
.consult-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.consult-list a{display:inline-block;padding:11px 22px;border:1px solid var(--line);border-radius:30px;background:#fff;font-size:17px;letter-spacing:.05em}
.consult-list a:hover{border-color:var(--moss);color:var(--moss)}
.consult-list .more a{background:var(--moss);border-color:var(--moss);color:#fff}
.consult-list .more a:hover{background:var(--moss-d);color:#fff}
.hobby{margin-top:12px;font-size:16px;color:var(--muted);letter-spacing:.06em}
@media (max-width:860px){ .consult .wrap{padding:0 20px} .consult-list a{font-size:16px;padding:10px 18px} }

.hero-note .ph{display:inline-block}

/* closing: full-width maple image, calm white text on a soft dark veil */
.closing{position:relative;overflow:hidden;background:var(--moss-d);color:#fff;border-top:0;padding:0;min-height:420px;display:flex;align-items:center}
.closing-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:saturate(.85) brightness(.9)}
.closing::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,42,22,.72) 0%,rgba(28,42,22,.45) 55%,rgba(28,42,22,.15) 100%)}
.closing-in{position:relative;z-index:1;display:block;max-width:1400px;width:100%;margin:0 auto;padding:80px 40px;gap:0}
.closing-q{text-align:left;color:#fff;margin:0}
.closing-q p{font-size:clamp(20px,2.5vw,30px);letter-spacing:.1em;line-height:2.1;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.closing-q strong{color:#fff}
.closing-q cite{color:rgba(255,255,255,.85);margin-top:26px;font-size:clamp(14px,1.6vw,17px)}
.closing-q cite::before{background:rgba(255,255,255,.6)}
.closing .dummy{z-index:2}
@media (max-width:860px){ .closing{min-height:0} .closing-in{padding:52px 20px} .closing::after{background:linear-gradient(0deg,rgba(28,42,22,.75),rgba(28,42,22,.4))} .closing-q p{font-size:19px;letter-spacing:.06em;line-height:2} }

/* top band: main line + the "foundation" sentence, both inside the home-village image */
.band{aspect-ratio:21/8.4}
.band-tx{font-size:inherit;line-height:1.9}
.band-main{font-size:clamp(20px,3vw,36px);letter-spacing:.14em;line-height:1.9;margin:0}
.band-sub{margin:14px 0 0;font-size:clamp(15px,1.8vw,23px);letter-spacing:.1em;line-height:2;opacity:.96}
.band::after{background:linear-gradient(90deg,rgba(28,42,22,.86) 0%,rgba(28,42,22,.6) 45%,rgba(28,42,22,.05) 78%)}
/* concept page: same sentence laid over the old-house photo */
.photo-quote{position:relative;overflow:hidden;border-radius:2px}
.photo-quote img{display:block}
.photo-quote .pq{position:absolute;left:0;right:0;bottom:0;margin:0;padding:64px 26px 24px;color:#fff;font-family:"Shippori Mincho",serif;font-size:clamp(16px,2vw,22px);letter-spacing:.08em;line-height:2;background:linear-gradient(0deg,rgba(24,36,20,.82),rgba(24,36,20,0))}
.photo-quote figcaption{position:static}
@media (max-width:860px){
  .band{aspect-ratio:auto;min-height:340px;display:flex;align-items:flex-end}
  .band img{position:absolute;inset:0}
  .band::after{background:linear-gradient(0deg,rgba(28,42,22,.88) 10%,rgba(28,42,22,.45) 70%,rgba(28,42,22,.1))}
  .band-tx{position:relative;left:auto;top:auto;transform:none;padding:40px 20px 26px;z-index:1}
  .band-main{font-size:19px;letter-spacing:.08em}
  .band-sub{font-size:15.5px;letter-spacing:.06em;margin-top:10px}
  .photo-quote .pq{padding:48px 16px 16px;font-size:15.5px}
}

@media (max-width:860px){
  .band-main{font-size:18px;letter-spacing:.05em}
  .band-main .big{font-size:1.3em;letter-spacing:.04em}
  .concept-line{font-size:22px;letter-spacing:.08em;white-space:nowrap}
  .concept-line strong{letter-spacing:.06em}
  .band img{object-position:50% 90%}
}

/* top philosophy band: lower height on PC */
@media (min-width:861px){
  .band{aspect-ratio:21/6.4}
  .band-main{line-height:1.75}
  .band-sub{margin-top:8px;line-height:1.85}
}

/* pet card (Nene) in the profile */
.pet{display:flex;align-items:center;gap:18px;margin-top:22px}
.pet img{width:96px;height:96px;object-fit:cover;border-radius:50%;border:3px solid #fff;box-shadow:0 6px 16px -8px rgba(40,50,30,.5);flex:none}
.pet p{margin:0;line-height:1.5}
.pet small{display:block;font-size:14px;color:var(--muted);letter-spacing:.14em}
.pet strong{font-family:"Shippori Mincho",serif;font-weight:500;font-size:26px;letter-spacing:.18em;color:var(--moss-d)}

.pet{gap:22px}
.pet img{width:136px;height:136px;object-position:30% 45%}
.pet strong{font-size:30px}
@media (max-width:860px){ .pet img{width:112px;height:112px} .pet strong{font-size:26px} }

/* Nene: proper introduction card (whole photo, caption beside it) */
.pet{display:none}
.nene{padding:72px 0 8px}
.nene-card{margin:0;display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:center;background:var(--kinari);border:1px solid var(--line);padding:26px;border-radius:2px}
.nene-card img{width:260px;aspect-ratio:4/5;object-fit:cover;border-radius:2px;box-shadow:0 14px 28px -16px rgba(40,50,30,.5)}
.nene-en{display:block;font-size:13px;letter-spacing:.3em;color:var(--accent);margin-bottom:6px}
.nene-card strong{display:block;font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(26px,3vw,34px);letter-spacing:.16em;color:var(--moss-d);margin-bottom:12px}
.nene-card p{margin:0;color:var(--muted);line-height:2}
@media (max-width:860px){
  .nene{padding:48px 0 0}
  .nene-card{grid-template-columns:1fr;gap:20px;padding:18px}
  .nene-card img{width:100%;max-width:340px;margin:0 auto;display:block}
}

.nene-en{font-size:15px;letter-spacing:.2em}
.nene-card strong{letter-spacing:.2em}

/* ===== mobile menu: slim two-line icon + calm full panel ===== */
.nav-tel{display:none}
@media (max-width:1120px){
  .menu-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:56px;height:56px;padding:0;border:0;background:none;color:var(--moss-d);cursor:pointer;margin-left:6px}
  .menu-btn .bars{position:relative;display:block;width:28px;height:12px}
  .menu-btn .bars i{position:absolute;left:0;right:0;height:1.5px;background:currentColor;border-radius:2px;transition:transform .35s,top .35s,opacity .2s}
  .menu-btn .bars i:nth-child(1){top:0}
  .menu-btn .bars i:nth-child(2){top:10px;left:6px}
  .menu-btn .lbl{font-family:"Zen Kaku Gothic New",sans-serif;font-size:10px;letter-spacing:.24em;line-height:1;color:var(--muted)}
  .menu-btn[aria-expanded="true"] .bars i:nth-child(1){top:5px;transform:rotate(30deg)}
  .menu-btn[aria-expanded="true"] .bars i:nth-child(2){top:5px;left:0;transform:rotate(-30deg)}
  /* panel */
  nav{position:fixed;left:0;right:0;top:80px;bottom:0;background:var(--kinari);border:0;display:block;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .3s,transform .3s,visibility .3s;overflow:auto;z-index:15}
  nav.open{visibility:visible;opacity:1;transform:none}
  nav ul{padding:12px 28px 40px;gap:0}
  nav li a{display:block;padding:20px 4px;border-bottom:1px solid var(--line);font-family:"Shippori Mincho",serif;font-size:21px;letter-spacing:.14em;color:var(--moss-d)}
  nav li.nav-cta a{margin:26px 0 0;padding:16px 0;text-align:center;border:0;background:var(--moss);color:#fff;font-family:"Zen Kaku Gothic New",sans-serif;font-size:17px;letter-spacing:.14em}
  nav li.nav-tel{display:block}
  nav li.nav-tel a{border:0;text-align:center;padding:22px 0 0;font-size:30px;letter-spacing:.06em}
  nav li.nav-tel small{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-size:13px;letter-spacing:.12em;color:var(--muted);margin-bottom:2px}
  body.menu-open{overflow:hidden}
}
@media (max-width:860px){ .hd-right{display:none} }

/* the header has backdrop-filter (becomes the containing block): size the panel explicitly */
@media (max-width:1120px){
  nav{position:absolute;top:80px;bottom:auto;height:calc(100vh - 80px);height:calc(100dvh - 80px)}
}

/* the phone row inside the menu is for the mobile panel only */
@media (min-width:1121px){ nav li.nav-tel{display:none!important} }

/* links on works / tea pages: no underline (hover = colour change only) */
.crumb a,.crumb a:hover{border-bottom:0!important}
.crumb a:hover{color:var(--accent)}
.pn a,.pn2 a{border-bottom:0!important;padding-bottom:0!important;letter-spacing:.06em}
.pn a:hover,.pn2 a:hover{color:var(--accent)}
.pn2{gap:24px}
.pager a,.pager span{border-bottom:0}
.chips a{border-bottom:1px solid var(--line)}

/* works / tea pages only: the links in the contact block also have no underline */
body.category-works .sub-links a,body.category-tea .sub-links a,
body.single-post .sub-links a{border-bottom:0;padding-bottom:0}
body.category-works .sub-links a:hover,body.category-tea .sub-links a:hover,
body.single-post .sub-links a:hover{color:var(--accent)}

/* site-wide: navigation-type links have no underline (hover = colour change). Links inside running text keep theirs. */
footer li a,footer li a:hover{border-bottom:0!important;padding-bottom:0}
footer li a:hover{color:#fff;opacity:.85}
.sub-links a{border-bottom:0!important;padding-bottom:0}
.sub-links a:hover{color:var(--accent)}
.tel-l{border-bottom:0!important;padding-bottom:0}
.tel-l:hover{color:var(--accent)}
/* running-text links: clearly a link, calm underline */
.tl{border-bottom:1px solid currentColor;padding-bottom:1px}
.tl:hover{color:var(--accent)}


/* ===== WordPress 用の追加 ===== */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.chips a{display:inline-block;font-size:16px;padding:9px 20px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:30px;letter-spacing:.06em}
.chips a:hover{border-color:var(--moss);color:var(--moss)}
.chips a.on{background:var(--moss);border-color:var(--moss);color:#fff}
@media (max-width:860px){ .chips a{font-size:15px;padding:8px 16px} }
.empty{text-align:center;color:var(--muted);padding:40px 0}
.pager{margin-top:56px}
.pager ul{list-style:none;padding:0;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.pager a,.pager span{display:inline-block;min-width:46px;padding:10px 14px;text-align:center;border:1px solid var(--line);background:#fff;color:var(--ink);letter-spacing:.04em}
.pager a:hover{border-color:var(--moss);color:var(--moss)}
.pager .current{background:var(--moss);border-color:var(--moss);color:#fff}
.pn2{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:24px}
.pn2 a{border-bottom:0;padding-bottom:0}
.pn2 a:hover{color:var(--accent)}
.entry-content{max-width:none}
.entry-content p{margin-bottom:1.2em}
/* ---- 施工事例・お茶の本文（旧投稿は組み替え済み／新投稿はブロックエディタ） ---- */
.wk-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.wk-flow>*{min-width:0}
.wk-flow .wk-text,.wk-flow.wk-new>p,.wk-flow.wk-new>h2,.wk-flow.wk-new>h3,.wk-flow.wk-new>ul,.wk-flow.wk-new>ol,.wk-flow.wk-new>blockquote{grid-column:1/-1;max-width:860px;margin:0;font-size:18px;line-height:2}
.wk-fig{position:relative;margin:0}
.wk-fig img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.wk-fig.is-portrait{background:var(--kinari);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;flex-direction:column}
.wk-fig.is-portrait img{width:auto;max-width:100%;height:100%;aspect-ratio:auto;object-fit:contain}
.wk-fig.is-portrait figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;padding:22px 14px 10px;color:#fff;background:linear-gradient(0deg,rgba(24,36,20,.7),rgba(24,36,20,0));font-size:15px}
.wk-fig:only-of-type,.wk-fig:last-of-type:nth-of-type(odd){grid-column:1/-1;width:calc(50% - 9px);justify-self:center}
.wk-fig figcaption{margin-top:8px;font-size:15.5px;line-height:1.7;color:var(--muted)}
.wk-badge{position:absolute;left:12px;top:12px;background:rgba(58,82,36,.9);color:#fff;font-size:15px;letter-spacing:.14em;padding:3px 14px;border-radius:2px}
/* 新しい投稿（ブロックエディタ）の写真 */
.wk-new .wp-block-image,.wk-new figure{margin:0}
.wk-new .wp-block-image img,.wk-new figure img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.wk-new .wp-block-gallery figure{position:relative}
.wk-new .wp-block-gallery figure.is-portrait-img{background:var(--kinari)}
.wk-new .wp-block-gallery figure.is-portrait-img img{object-fit:contain}
.wk-new .wp-block-gallery figure .wk-badge{z-index:1}
.wk-new .wp-block-gallery figure.is-portrait-img{background:var(--kinari)!important;display:flex;align-items:center;justify-content:center}
.wk-new .wp-block-gallery figure.is-portrait-img img{width:auto!important;max-width:100%;height:100%!important;aspect-ratio:auto!important;object-fit:contain!important}
.wk-new .wp-block-gallery figure.is-portrait-img{aspect-ratio:4/3}
.wk-new .wp-block-gallery{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0;padding:0}
.wk-new .wp-block-gallery figure{width:100%!important;margin:0!important;flex:none}
.wk-new .wp-block-gallery figure:last-child:nth-child(odd){grid-column:1/-1;width:calc(50% - 9px)!important;justify-self:center}
.wk-new .wp-block-gallery figcaption,.wk-new .wp-block-image figcaption,.wk-new figcaption{font-size:14.5px;color:var(--muted);margin-top:6px;text-align:left;position:static;background:none;padding:0}
.entry-content img{max-width:100%}
.entry-content.text-only img{aspect-ratio:auto;object-fit:contain}
@media (max-width:860px){
  .wk-flow{grid-template-columns:1fr;gap:14px}
  .wk-fig:only-of-type,.wk-fig:last-of-type:nth-of-type(odd){width:100%}
  .wk-flow .wk-text,.wk-flow.wk-new>p{font-size:17.5px}
  .wk-new .wp-block-gallery{grid-template-columns:1fr}
}
.entry-content.text-only{max-width:860px}
.entry-content h2{font-family:"Shippori Mincho",serif;font-weight:500;font-size:24px;margin:1.6em 0 .6em;text-align:left;color:var(--moss-d)}
.form-alert{background:#fbeee6;border:1px solid #e1b79c;padding:16px 20px;margin-bottom:28px;color:#7a3b12}
.form-done{background:var(--kinari);border:1px solid var(--line);padding:40px 30px;text-align:center}
.form-done-t{font-family:"Shippori Mincho",serif;font-size:26px;letter-spacing:.1em;color:var(--moss-d);margin-bottom:14px}
.f.has-error input,.f.has-error select,.f.has-error textarea{border-color:#c0392b;background:#fff7f5}
.f.has-error label{color:#c0392b}
.screen-reader-text{position:absolute;left:-9999px}

/* スマホ: トップは写真を最初に（文字だけの印象を避ける） */
@media (max-width:860px){
  .hero .wrap{gap:0;padding:0 0 44px}
  .hero-img{order:-1;margin-bottom:44px}
  .hero-img>img{aspect-ratio:4/3;border-radius:0;box-shadow:none}
  .hero-img .sub{left:auto;right:16px;bottom:-32px;width:30%;border-width:5px}
  .hero .wrap>div:first-child{padding:0 20px}
  .hero h1{font-size:clamp(28px,8vw,36px)}
  .hero .wrap::before{top:auto;bottom:0}
}

/* 庭づくりへの思い: コンセプトの表記 */
.concept-key{text-align:center;margin:0 0 44px;padding:6px 0 0}
.concept-key .ck-label{display:block;font-size:13px;letter-spacing:.32em;color:var(--accent)}
.concept-key .ck-word{margin:6px 0 4px;font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(36px,7vw,54px);letter-spacing:.2em;color:var(--moss-d);line-height:1.5}
.concept-key .ck-sub{margin:0;font-size:17px;color:#3b3a33;letter-spacing:.06em}

.story-wide{margin:0 0 56px}
.story-wide img{width:100%;aspect-ratio:16/7;object-fit:cover;object-position:50% 40%;border-radius:2px}
@media (max-width:860px){.story-wide{margin:0 -20px 44px}.story-wide img{aspect-ratio:4/3;border-radius:0}}

/* 庭づくりへの思い: スマホ向けの整え */
.nw{white-space:nowrap}
.concept-key .ck-sub{text-wrap:balance}
@media (max-width:860px){
  .band img[src*="valley-band"]{transform:scale(1.5);transform-origin:70% 88%}
  .concept-key .ck-sub{font-size:16px;letter-spacing:.04em}
}

/* スマホ: メニューの文字を少し大きく / 説明文の1文字残りを防ぐ */
.menu-btn .lbl{font-size:12px}
.hero p,.ph-sub{text-wrap:pretty}

/* 日本語の折り返し: 単語の途中で改行しない（main.js が html に .jp-seg を付ける） */
.jp-seg body{word-break:keep-all;overflow-wrap:anywhere}
main p,main li,main dd{text-wrap:pretty}
