/*
Theme Name: YCF
Theme URI: https://yanagiba-consulting-firm.com/
Author: YCF行政書士事務所
Description: YCF行政書士事務所のための専用テーマ。左の固定メニュー、トップのアニメーションなどの動きはテーマ側で持ち、文章と写真はブロックエディタで編集します。
Version: 1.2.0
Requires at least: 6.5
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: ycf
*/

/* ===== 基本 ===== */
:root{
  --ycf-green:#283B3A;
  --ycf-deep:#1E2928;
  --ycf-cream:#F6F2F1;
  --ycf-ink:#2B2F2E;
  --ycf-gray:#595959;
  --ycf-line:#D9D2CF;
  --ycf-sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --ycf-latin:"Archivo","Zen Kaku Gothic New",sans-serif;
  --ycf-side:88px;
  --ycf-bar:60px;
  --ycf-adminbar:var(--wp-admin--admin-bar--height,0px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ycf-cream);color:var(--ycf-ink);font-family:var(--ycf-sans);font-size:15px;line-height:2;letter-spacing:.06em;font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--ycf-ink)}
a:hover{color:#000}
:focus-visible{outline:2px solid var(--ycf-green);outline-offset:3px}
.ycf-dark :focus-visible{outline-color:var(--ycf-cream)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.ycf-skip:focus{position:fixed!important;left:12px;top:12px;width:auto;height:auto;clip:auto;z-index:100;background:#fff;padding:8px 16px}
.ycf-latin{font-family:var(--ycf-latin);font-weight:600;letter-spacing:.06em}
section[id],footer[id],div[id]{scroll-margin-top:var(--ycf-adminbar)}

/* ===== レイアウト ===== */
.ycf-layout{display:flex;align-items:flex-start;min-height:100vh}
.ycf-main{flex:1 1 auto;min-width:0}

/* ===== PC：固定サイドバー ===== */
.ycf-side{position:sticky;top:var(--ycf-adminbar);flex:0 0 var(--ycf-side);height:calc(100vh - var(--ycf-adminbar));min-height:560px;background:var(--ycf-cream);border-right:1px solid var(--ycf-line);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:28px 0 32px;z-index:20}
.ycf-side__logo{display:block;padding:4px}
.ycf-side__logo svg{display:block;width:52px;height:52px}
.ycf-side__nav{position:relative;padding-left:14px}
.ycf-side__nav::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--ycf-line)}
.ycf-side__nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center}
.ycf-side__nav a{display:block;writing-mode:vertical-rl;text-orientation:upright;text-decoration:none;font-size:13px;letter-spacing:.24em;padding:16px 10px;color:var(--ycf-ink);transition:color .3s ease}
.ycf-side__nav a.is-active,.ycf-side__nav a[aria-current="page"]{color:var(--ycf-green);font-weight:700}
.ycf-guide{position:absolute;left:-1px;top:0;width:3px;height:0;background:var(--ycf-green);opacity:0;transition:top .55s cubic-bezier(.6,0,.2,1),height .55s cubic-bezier(.6,0,.2,1),opacity .3s ease}
.ycf-side__foot{margin:0;padding:10px 12px;background:none;border:0;border-radius:999px;cursor:pointer;writing-mode:horizontal-tb;font-family:var(--ycf-latin);font-size:11px;font-weight:600;letter-spacing:.2em;color:var(--ycf-gray);transition:color .3s ease,background-color .3s ease}
.ycf-side__foot:hover{color:var(--ycf-cream);background:var(--ycf-green)}
.ycf-menu__foot{display:flex;align-items:center;justify-content:space-between}
.ycf-menu__invert{margin:0 -12px 0 0;padding:12px;min-width:44px;min-height:44px;background:none;border:0;color:inherit;font:inherit;font-weight:600;letter-spacing:.2em;cursor:pointer;-webkit-tap-highlight-color:transparent}

/* ===== スマホ：上部バーと全画面メニュー ===== */
.ycf-bar{display:none}
.ycf-menu[hidden]{display:none}
.ycf-menu{position:fixed;inset:0;top:var(--ycf-adminbar);z-index:60;background:var(--ycf-green);color:var(--ycf-cream);display:flex;flex-direction:column;padding:12px 24px 32px;overflow-y:auto}
.ycf-menu a{color:var(--ycf-cream);text-decoration:none}
.ycf-menu__head{display:flex;justify-content:space-between;align-items:center;min-height:48px}
.ycf-menu__close{width:48px;height:48px;background:none;border:0;color:var(--ycf-cream);font-size:28px;line-height:1;cursor:pointer;font-family:inherit}
.ycf-menu ul{list-style:none;margin:40px 0;padding:0}
.ycf-menu li a{display:flex;align-items:center;gap:16px;font-size:22px;font-weight:700;letter-spacing:.12em;padding:16px 0;border-bottom:1px solid rgba(246,242,241,.25)}
.ycf-menu li a::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ycf-cream);flex:none}
.ycf-menu__foot{margin:auto 0 0;padding-top:40px;font-family:var(--ycf-latin);font-size:11px;color:#BFC6C3;letter-spacing:.08em}
.ycf-sitename{font-size:14px;font-weight:700;letter-spacing:.1em}

/* ===== ボタン ===== */
.ycf-btn-outline{display:inline-flex;align-items:center;min-height:56px;padding:0 36px;border:1px solid currentColor;border-radius:999px;text-decoration:none;font-size:14px;font-weight:700;letter-spacing:.14em}
.wp-block-button__link{border-radius:0;background:var(--ycf-green);color:var(--ycf-cream);font-weight:700;letter-spacing:.12em;padding:16px 32px}
.wp-block-button.is-style-outline .wp-block-button__link{border-radius:999px;background:transparent;color:inherit;border:1px solid currentColor}

@media (max-width:760px){
  .ycf-side{display:none}
  .ycf-bar{display:flex;position:fixed;left:0;right:0;top:var(--ycf-adminbar);height:var(--ycf-bar);z-index:40;background:rgba(246,242,241,.94);border-bottom:1px solid var(--ycf-line);align-items:center;justify-content:space-between;padding:0 8px 0 16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
  .ycf-bar__brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:44px}
  .ycf-bar__brand svg{width:32px;height:32px}
  .ycf-bar__actions{display:flex;align-items:center;gap:4px}
  .ycf-bar__cta{font-size:12px;font-weight:700;text-decoration:none;background:var(--ycf-green);color:var(--ycf-cream);padding:0 14px;min-height:36px;display:inline-flex;align-items:center;letter-spacing:.1em}
  .ycf-bar__cta:hover{color:#fff}
  .ycf-bar__toggle{width:48px;height:48px;background:none;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;cursor:pointer;padding:0}
  .ycf-bar__toggle span{display:block;width:24px;height:1.5px;background:var(--ycf-green)}
  .ycf-main{padding-top:var(--ycf-bar)}
  section[id],footer[id],div[id]{scroll-margin-top:calc(var(--ycf-bar) + var(--ycf-adminbar))}
}

/* ===== トップ：ヒーロー ===== */
.ycf-hero{position:relative;overflow:hidden;height:max(640px,calc(100vh - var(--ycf-adminbar)));max-height:1000px;background:var(--ycf-cream);color:var(--ycf-green)}
.ycf-hero__city{position:absolute;left:0;right:0;bottom:0;height:44%}
.ycf-hero__city svg{width:100%;height:100%;display:block;fill:none;stroke:rgba(40,59,58,.78);stroke-linecap:round;stroke-linejoin:round}
.ycf-hero__city .far{stroke:rgba(40,59,58,.38)}
.ycf-hero__leaf{position:absolute;right:-10%;top:-14%;height:120%;aspect-ratio:100/120}
.ycf-hero__leaf svg{width:100%;height:100%;display:block}
.ycf-hero__body{position:absolute;inset:0;pointer-events:none}
.ycf-hero__body a,.ycf-hero__body button{pointer-events:auto}
.ycf-hero-content{position:static}
.ycf-hero__label{position:absolute;left:clamp(16px,3.6vw,56px);top:96px;margin:0;writing-mode:vertical-rl;font-size:12px;letter-spacing:.3em;color:var(--ycf-gray)}
.ycf-hero__copy{position:absolute;left:clamp(56px,8vw,128px);top:22%;right:48%}
.ycf-hero__copy h1{margin:0 0 32px;font-size:clamp(34px,4.2vw,62px);line-height:1.55;font-weight:700;letter-spacing:.12em;color:var(--ycf-green)}
.ycf-hero__lead{margin:0;font-size:15px;letter-spacing:.12em}
.ycf-js .ycf-hero__copy h1:not(.is-split){opacity:0}
.ycf-hero__btn{display:inline-flex;align-items:center;min-height:56px;margin-top:36px;padding:0 40px;border-radius:999px;background:var(--ycf-green);color:var(--ycf-cream);text-decoration:none;font-size:15px;font-weight:700;letter-spacing:.16em;pointer-events:auto;animation:ycfUp .9s ease 3.3s both}
.ycf-hero__btn:hover{background:var(--ycf-deep);color:#fff}
.ycf-ph{opacity:0}
.ycf-ph:first-of-type{opacity:1}
.ycf-hero__photos{display:none!important}
.ycf-hero__news{position:absolute;right:clamp(16px,4vw,56px);bottom:clamp(16px,4vw,56px);width:min(340px,40vw);background:#fff;color:var(--ycf-ink);text-decoration:none;display:flex;flex-direction:column;box-shadow:0 10px 30px rgba(0,0,0,.14);pointer-events:auto}
.ycf-hero__news-img{display:block;height:130px;background:#B8AC9E center/cover no-repeat}
.ycf-hero__news-body{padding:18px 22px 20px;display:flex;flex-direction:column;gap:6px}
.ycf-hero__news-date{font-family:var(--ycf-latin);font-size:12px;color:var(--ycf-gray);letter-spacing:.08em}
.ycf-hero__news-title{font-size:15px;font-weight:700;line-height:1.7}
.ycf-hero__news-more{font-size:12px;color:var(--ycf-gray);text-decoration:underline;text-underline-offset:4px}

/* アニメーション（CSSのみ。見出しの行分けだけJS） */
.ycf-hero .dr{stroke-dasharray:1.02;animation:ycfDraw 1.1s cubic-bezier(.45,.05,.3,1) both}
.ycf-hero .fl{animation:ycfShow .25s ease both}
@keyframes ycfDraw{from{stroke-dashoffset:1.02}to{stroke-dashoffset:0}}
@keyframes ycfShow{from{opacity:0}to{opacity:1}}
.ycf-hero__leaf{animation:ycfLeaf 1.3s cubic-bezier(.7,0,.2,1) 1.5s both}
@keyframes ycfLeaf{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.ycf-hero__label{animation:ycfShow 1s ease 2.2s both}
.ycf-hero__lead{animation:ycfUp .9s ease 3.1s both}
.ycf-hero__news{animation:ycfCard 1s cubic-bezier(.2,.7,.2,1) 3.5s both}
@keyframes ycfUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes ycfCard{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
.ycf-ln{position:relative;display:block;width:fit-content;overflow:hidden}
.ycf-ln::before{content:"";position:absolute;inset:.08em -.06em;background:var(--ycf-green);transform:scaleX(0);transform-origin:left;animation:ycfWipe .9s cubic-bezier(.7,0,.2,1) var(--d,2s) both}
.ycf-ln__t{display:inline-block;animation:ycfShow .01s linear calc(var(--d,2s) + .45s) both}
@keyframes ycfWipe{0%{transform:scaleX(0);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}50.1%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}

@media (max-width:760px){
  .ycf-hero{height:max(560px,calc(100svh - var(--ycf-bar) - var(--ycf-adminbar)))}
  .ycf-hero__city{height:34%}
  .ycf-hero__leaf{right:-34%;top:30%;height:62%}
  .ycf-hero__label{display:none}
  .ycf-hero__copy{left:24px;right:24px;top:7%}
  .ycf-hero__news{left:24px;right:24px;width:auto;bottom:20px}
  .ycf-hero__news-img{display:none}
}

/* ===== トップ：考え方 ===== */
.ycf-concept{position:relative;overflow:hidden;background-color:var(--ycf-green);color:#E6EAE8;background-image:linear-gradient(rgba(246,242,241,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(246,242,241,.05) 1px,transparent 1px);background-size:48px 48px;padding:140px 48px;display:flex;flex-wrap:wrap;justify-content:center;gap:56px 120px;margin:0!important}
.ycf-concept::after{content:"";position:absolute;left:-60px;bottom:-180px;width:860px;height:860px;opacity:.75;background:url("assets/img/logo-line.svg") no-repeat center/contain;pointer-events:none}
.ycf-concept>*{position:relative;z-index:1}
.ycf-concept__head{display:flex;gap:40px;align-items:flex-start;margin:0!important}
.ycf-concept__head p{margin:0;writing-mode:vertical-rl;font-size:12px;letter-spacing:.3em;color:#C9D0CD}
.ycf-concept__head h2{margin:0;writing-mode:vertical-rl;font-size:clamp(36px,3.6vw,52px);line-height:1.7;font-weight:700;letter-spacing:.24em;color:#fff;min-height:9em}
.ycf-concept__body{flex:0 1 30em;padding-top:40px;font-size:15px;line-height:2.4;letter-spacing:.1em;margin:0!important}
.ycf-concept__body p{margin:0 0 28px}
.ycf-concept__body p:last-child{margin-bottom:0;color:#fff;font-weight:700}

/* ===== トップ：サービス ===== */
.ycf-service,.ycf-service.wp-block-cover{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;min-height:820px;padding:96px 72px 96px 0;margin:0!important;
  background-color:#3E4341;
  /* 申請書類の罫線をイメージした細い横線 */
  background-image:repeating-linear-gradient(to bottom,transparent 0 31px,rgba(246,242,241,.055) 31px 32px);
}
.ycf-service::before{content:"";position:absolute;top:0;bottom:0;right:clamp(48px,9vw,140px);width:1px;background:rgba(246,242,241,.12);pointer-events:none}
.ycf-service .wp-block-cover__image-background,.ycf-service .wp-block-cover__background{display:none!important}
.ycf-service>*{position:relative;z-index:1}
.ycf-service .wp-block-cover__inner-container,.ycf-service>.ycf-panel{width:100%;max-width:1080px;margin:0!important;color:var(--ycf-ink)}
.ycf-panel{background:#fff;padding:64px 64px 56px;margin:0!important}
.ycf-label{margin:0 0 40px;font-size:13px;color:var(--ycf-gray);letter-spacing:.2em}
.ycf-panel .wp-block-columns{gap:40px;margin:0}
.ycf-panel .wp-block-image{margin:0 0 20px}
.ycf-panel .wp-block-image img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.ycf-panel h3{margin:0 0 10px;font-size:18px;font-weight:700;line-height:1.7;letter-spacing:.06em}
.ycf-panel p{margin:0 0 12px;font-size:13px;line-height:2;color:var(--ycf-gray)}
.ycf-panel p.ycf-more a,.ycf-more a{font-size:12px;color:var(--ycf-ink);text-underline-offset:4px}

/* ===== トップ：支援事例 ===== */
.ycf-works{padding:112px 0 120px 72px;overflow:hidden;margin:0!important}
.ycf-works__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-right:72px;margin:0 0 48px!important}
.ycf-works__head p{margin:0}
.ycf-works__head .ycf-more a{display:inline-flex;align-items:center;min-height:60px;padding:0 44px;border:1px solid var(--ycf-green);border-radius:999px;color:var(--ycf-green);text-decoration:none;font-size:17px;font-weight:700;letter-spacing:.14em;transition:background .25s ease,color .25s ease}
.ycf-works__head .ycf-more a:hover{background:var(--ycf-green);color:var(--ycf-cream)}
.ycf-cases{display:flex;gap:40px;overflow-x:auto;padding-bottom:16px;margin:0!important;scroll-snap-type:x proximity}
.ycf-case{flex:0 0 400px;margin:0!important;scroll-snap-align:start}
.ycf-case h3{margin:0 0 6px;font-family:var(--ycf-latin);font-size:20px;font-weight:600;letter-spacing:.08em}
.ycf-case__meta{margin:0 0 4px;font-size:15px;font-weight:700}
.ycf-case__desc{margin:0 0 20px;font-size:13px;color:var(--ycf-gray);line-height:1.9}
.ycf-case .wp-block-image{margin:0}
.ycf-case .wp-block-image img{width:100%;aspect-ratio:8/5;object-fit:cover;display:block}

@media (max-width:760px){
  .ycf-concept{padding:88px 24px}
  .ycf-concept__head h2{min-height:0}
  .ycf-concept::after{left:-120px;bottom:-120px;width:520px;height:520px}
  .ycf-concept__body{padding-top:0}
  .ycf-service,.ycf-service.wp-block-cover{min-height:0;padding:48px 16px}
  .ycf-service::before{display:none}
  .ycf-panel{padding:36px 24px}
  .ycf-works{padding:80px 0 88px 24px}
  .ycf-works__head{padding-right:24px}
  .ycf-case{flex-basis:78vw}
}

/* ===== フッター ===== */
.ycf-footer{position:relative;overflow:hidden;background:var(--ycf-deep);color:var(--ycf-cream);display:flex;flex-wrap:wrap}
.ycf-footer a{color:var(--ycf-cream)}
.ycf-footer__main{flex:1 1 auto;min-width:0;padding:104px 72px 56px;display:flex;flex-direction:column;justify-content:flex-end;gap:56px;min-height:540px;position:relative;z-index:1}
.ycf-footer__tagline{margin:0 0 40px;font-size:22px;font-weight:700;line-height:1.8;letter-spacing:.14em;white-space:pre-line}
.ycf-footer__name{margin:0 0 2px;font-size:15px;font-weight:700}
.ycf-footer__en{margin:0 0 16px;font-family:var(--ycf-latin);font-size:11px;color:#BFC6C3;letter-spacing:.08em}
.ycf-footer__info{margin:0 0 20px;font-size:12px;line-height:2;color:#BFC6C3;white-space:pre-line}
.ycf-footer__contact{margin:0 0 32px}
.ycf-footer__copy{margin:0;font-size:11px;color:#9EA7A3}
.ycf-footer__nav{margin:0 0 44px;padding-bottom:20px;border-bottom:1px solid rgba(246,242,241,.16);max-width:520px}
.ycf-invert .ycf-footer__nav{border-bottom-color:rgba(40,59,58,.18)}
.ycf-footer__links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 28px}
.ycf-footer__links a{display:inline-block;padding:6px 0;font-size:13px;letter-spacing:.1em;text-decoration:none;color:#DCE1DF}
.ycf-footer__links a:hover,.ycf-footer__links a[aria-current]{color:var(--ycf-cream);text-decoration:underline;text-underline-offset:5px}
/* 背面のロゴ（濃い緑の上に、ほんのり明るい緑で） */
.ycf-footer__mark{position:absolute;right:40px;top:50%;width:460px;height:460px;transform:translateY(-50%);opacity:.07;pointer-events:none}
.ycf-footer__mark svg{width:100%;height:100%;display:block}
@media (max-width:760px){
  .ycf-footer__main{padding:72px 24px 40px}
  .ycf-footer__mark{width:420px;height:420px;right:-140px;top:auto;bottom:-60px;transform:none}
}

/* ===== 下層ページ ===== */
.ycf-pagehead{position:relative;overflow:hidden;padding:120px clamp(24px,6vw,96px) 72px;border-bottom:1px solid var(--ycf-line)}
.ycf-pagehead__sub{margin:0 0 8px;font-size:13px;color:var(--ycf-gray);letter-spacing:.2em}
.ycf-pagehead h1{position:relative;z-index:1;margin:0;font-size:clamp(30px,3.4vw,46px);font-weight:700;letter-spacing:.14em;line-height:1.5;color:var(--ycf-green)}
.ycf-content{padding:72px clamp(24px,6vw,96px) 120px}
.ycf-content>*{max-width:760px;margin-left:auto;margin-right:auto}
.ycf-content>.alignwide{max-width:1200px}
.ycf-content>:first-child{margin-top:0}
.ycf-content>.alignfull{max-width:none;margin-left:calc(-1 * clamp(24px,6vw,96px));margin-right:calc(-1 * clamp(24px,6vw,96px))}
.ycf-content h2{font-size:26px;letter-spacing:.12em;line-height:1.6;margin:72px auto 24px;padding-bottom:14px;border-bottom:1px solid var(--ycf-green);color:var(--ycf-green)}
.ycf-content h3{font-size:19px;letter-spacing:.1em;margin:48px auto 16px}
.ycf-content p,.ycf-content li{font-size:15px}
.ycf-content ul,.ycf-content ol{padding-left:1.4em}
.ycf-content table{width:100%;border-collapse:collapse}
.ycf-content th,.ycf-content td{border-bottom:1px solid var(--ycf-line);padding:14px 12px;text-align:left;vertical-align:top}
.ycf-front{margin:0}
.ycf-front>*{margin-top:0;margin-bottom:0}
.ycf-front>p,.ycf-front>h2,.ycf-front>h3,.ycf-front>ul{max-width:760px;margin:48px auto;padding:0 24px}

/* 表（保有資格・経歴・報酬額表） */
.ycf-content .wp-block-table{margin:0 auto 8px;overflow-x:visible}
.ycf-content .ycf-table table{border:0}
.ycf-content .ycf-table th,.ycf-content .ycf-table td{border:0;border-bottom:1px solid var(--ycf-line)}
.ycf-content .ycf-table thead{border:0}
.ycf-content .ycf-table thead th{font-size:12px;font-weight:500;color:var(--ycf-gray);letter-spacing:.14em;padding:12px;border-bottom:1px solid var(--ycf-line)}
.ycf-content .ycf-table td{font-size:15px;line-height:1.8;padding:18px 12px}
.ycf-content .ycf-table td:first-child{font-weight:700}
.ycf-table--2col th:first-child,.ycf-table--2col td:first-child{width:34%}
.ycf-table--year th:first-child,.ycf-table--year td:first-child{width:24%;font-family:var(--ycf-latin)}
.ycf-content .ycf-table--year td:first-child{font-weight:600}
.ycf-fee th:first-child,.ycf-fee td:first-child{width:40%}
.ycf-fee th:nth-child(2),.ycf-fee td:nth-child(2){width:32%}
.ycf-content .ycf-fee td:nth-child(2){font-weight:700;color:var(--ycf-green)}
.ycf-content .ycf-fee td:nth-child(3){font-size:13px;color:var(--ycf-gray)}
.ycf-fee--2col th:first-child,.ycf-fee--2col td:first-child{width:62%}
.ycf-fee--2col th:nth-child(2),.ycf-fee--2col td:nth-child(2){width:auto}
.ycf-content h2+h3{margin-top:32px}
.ycf-content .ycf-fee--2col thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.ycf-content .ycf-fee--2col table{border-top:1px solid var(--ycf-line)}
.ycf-content h3:has(+.ycf-fee){font-size:16px;color:var(--ycf-green);margin:40px auto 12px}
.ycf-content .ycf-fee__lead{margin-bottom:8px;color:var(--ycf-gray);font-size:14px}
@media (max-width:640px){
  .ycf-content .ycf-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
  .ycf-content .ycf-table table,.ycf-content .ycf-table tbody,.ycf-content .ycf-table tr,.ycf-content .ycf-table td{display:block;width:auto!important}
  .ycf-content .ycf-table tr{padding:16px 0;border-bottom:1px solid var(--ycf-line)}
  .ycf-content .ycf-table td{border:0;padding:2px 0}
  .ycf-content .ycf-table td:empty{display:none}
}

/* 代表者プロフィール */
.ycf-content .ycf-profile{position:relative;overflow:hidden;background:#fff;padding:48px clamp(24px,5vw,56px)}
.ycf-profile>*{position:relative;z-index:1;margin:0}
.ycf-content .ycf-profile__role{font-size:13px;color:var(--ycf-gray);letter-spacing:.16em}
.ycf-content .ycf-profile__name{margin:6px 0 20px;font-size:clamp(28px,3vw,36px);font-weight:700;letter-spacing:.24em;line-height:1.5;color:var(--ycf-green)}
.ycf-content .ycf-profile__lead{max-width:34em;font-size:15px;line-height:2.1}
.ycf-points{counter-reset:ycfpt;display:grid;gap:0}
.ycf-point:last-child{border-bottom:0}
.ycf-point{counter-increment:ycfpt;display:grid;grid-template-columns:56px 1fr;column-gap:16px;padding:24px 0;border-bottom:1px solid var(--ycf-line)}
.ycf-point::before{content:counter(ycfpt,decimal-leading-zero);grid-row:1 / span 2;font-family:var(--ycf-latin);font-size:22px;font-weight:600;line-height:1.4;color:var(--ycf-green)}
.ycf-content .ycf-point h3{margin:0 0 6px;font-size:17px;line-height:1.6;color:var(--ycf-green)}
.ycf-content .ycf-point p{margin:0;font-size:14px;color:var(--ycf-gray)}

/* 下層ページ末尾の問い合わせ導線 */
.ycf-content .ycf-pagecta{margin-top:80px;padding-top:40px;border-top:1px solid var(--ycf-line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px}
.ycf-pagecta>p{margin:0}
.ycf-pagecta .wp-block-buttons{margin:0}
.ycf-pagecta .wp-block-button .wp-block-button__link{color:var(--ycf-green);padding:16px 44px;min-height:56px}
.ycf-pagecta .wp-block-button .wp-block-button__link:hover{background:var(--ycf-green);color:var(--ycf-cream)}

/* お問い合わせフォーム（Contact Form 7） */
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 input[type=url],.wpcf7 textarea,.wpcf7 select{width:100%;border:1px solid #B9B2AE;background:#fff;padding:12px 14px;font:inherit;letter-spacing:.04em}
.wpcf7 input[type=submit]{background:var(--ycf-green);color:var(--ycf-cream);border:0;padding:16px 40px;font:inherit;font-weight:700;letter-spacing:.14em;cursor:pointer;min-height:52px}

/* ニュース一覧・記事 */
.ycf-postlist{list-style:none;margin:0 auto;padding:0;max-width:760px}
.ycf-postlist li{border-bottom:1px solid var(--ycf-line)}
.ycf-postlist a{display:flex;flex-wrap:wrap;gap:4px 24px;padding:20px 0;text-decoration:none}
.ycf-postlist time{font-family:var(--ycf-latin);font-size:13px;color:var(--ycf-gray)}
.ycf-postlist a:hover span{text-decoration:underline;text-underline-offset:5px}
.ycf-content .ycf-backlink{margin-top:72px;padding-top:32px;border-top:1px solid var(--ycf-line)}
.ycf-backlink a{display:inline-flex;align-items:center;min-height:52px;padding:0 36px;border:1px solid var(--ycf-green);border-radius:999px;color:var(--ycf-green);text-decoration:none;font-size:14px;font-weight:700;letter-spacing:.14em;transition:background-color .3s ease,color .3s ease}
.ycf-backlink a:hover{background:var(--ycf-green);color:var(--ycf-cream)}
.ycf-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;text-decoration:none}
.ycf-pagination .page-numbers.current{background:var(--ycf-green);color:var(--ycf-cream)}
.ycf-postmeta{margin:0 0 12px;font-family:var(--ycf-latin);font-size:13px;color:var(--ycf-gray)}
.ycf-pagination{max-width:760px;margin:40px auto 0;display:flex;gap:16px}

/* ===== スクロールに合わせた動き（JSが .ycf-rv などを付けたときだけ働く） ===== */
.ycf-rv{opacity:0;transform:translateY(22px)}
.ycf-rv.is-in{opacity:1;transform:none;transition:opacity .9s ease var(--rv,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--rv,0s)}
.ycf-ch{display:inline-block;opacity:0;transform:translateY(-10px)}
.ycf-chars.is-in .ycf-ch{opacity:1;transform:none;transition:opacity .7s ease var(--rv,0s),transform .7s cubic-bezier(.2,.7,.2,1) var(--rv,0s)}
/* コンセプト背景：線で描かれるロゴ */
.ycf-concept.has-draw::after{display:none}
.ycf-concept>.ycf-concept__draw{position:absolute;z-index:0;left:-60px;bottom:-180px;width:860px;height:860px;opacity:.75;pointer-events:none;fill:none;stroke:#F6F2F1;stroke-opacity:.35;stroke-width:.32;stroke-linejoin:round}
.ycf-concept__draw path{stroke-dasharray:1;stroke-dashoffset:1}
.ycf-concept__draw.is-in path{stroke-dashoffset:0;transition:stroke-dashoffset 2.6s cubic-bezier(.45,.05,.3,1) var(--rv,0s)}
/* フッター背面のロゴ */
.ycf-footer__mark.ycf-rv-mark{opacity:0;clip-path:inset(100% 0 0 0)}
.ycf-footer__mark.ycf-rv-mark.is-in{opacity:.07;clip-path:inset(0 0 0 0);transition:opacity 1.6s ease .2s,clip-path 1.8s cubic-bezier(.6,0,.2,1) .2s}
/* カード・写真・ボタンの反応 */
.ycf-panel .wp-block-image,.ycf-case .wp-block-image{overflow:hidden}
.ycf-panel .wp-block-image img,.ycf-case .wp-block-image img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.ycf-panel .wp-block-column:hover .wp-block-image img,.ycf-case:hover .wp-block-image img{transform:scale(1.05)}
.ycf-btn-outline,.ycf-hero__btn,.wp-block-button__link,.ycf-bar__cta{transition:background-color .3s ease,color .3s ease,border-color .3s ease,transform .3s ease}
.ycf-btn-outline:hover{background:var(--ycf-cream);color:var(--ycf-deep)}
.ycf-footer a.ycf-btn-outline:hover{color:var(--ycf-deep)}
.ycf-hero__btn:hover,.ycf-btn-outline:hover,.wp-block-button__link:hover{transform:translateY(-2px)}
.ycf-hero__news{transition:box-shadow .5s ease}
.ycf-hero__news:hover{box-shadow:0 18px 40px rgba(0,0,0,.2)}
.ycf-side__nav a:hover{color:var(--ycf-green)}
@media (max-width:760px){
  .ycf-concept>.ycf-concept__draw{left:-120px;bottom:-120px;width:520px;height:520px}
  .ycf-rv{transform:translateY(14px)}
}

/* トップの街並み：描き終えたあと、ゆっくり横に流れる（左右がつながって繰り返す） */
.ycf-hero__city svg.is-drawn .dr{animation:none}
.ycf-hero__city svg.is-drawn .fl{animation:none}
.ycf-hero__city.is-flow{overflow:hidden}
.ycf-hero__city.is-flow svg{position:absolute;bottom:0;max-width:none;will-change:transform;animation:ycfCity 200s linear infinite}
.ycf-hero__city.is-paused svg{animation-play-state:paused}
@keyframes ycfCity{from{transform:translateX(0)}to{transform:translateX(var(--ycf-city-shift,0))}}

/* ===== 配色の反転（左下の「YCF」を押すと、クリームと緑が入れ替わる） ===== */
html.ycf-invert{
  --ycf-green:#F6F2F1;
  --ycf-cream:#283B3A;
  --ycf-ink:#E6EAE8;
  --ycf-gray:#BFC6C3;
  --ycf-line:rgba(246,242,241,.2);
  --ycf-deep:#EBE5E2;
  color-scheme:dark;
}
html.ycf-invert-anim *,html.ycf-invert-anim *::before,html.ycf-invert-anim *::after{transition:background-color .7s ease,color .7s ease,border-color .7s ease,fill .7s ease,stroke .7s ease!important}
.ycf-invert a:hover{color:#fff}
.ycf-invert .ycf-side__logo path,.ycf-invert .ycf-bar__brand path{fill:#F6F2F1}
.ycf-invert .ycf-side__logo path:last-child,.ycf-invert .ycf-bar__brand path:last-child{fill:#D3D9D6}
.ycf-invert .ycf-bar{background:rgba(40,59,58,.94)}
.ycf-invert .ycf-bar__cta:hover,.ycf-invert .ycf-hero__btn:hover{color:#283B3A}
.ycf-invert .ycf-menu li a{border-bottom-color:rgba(40,59,58,.25)}
.ycf-invert .ycf-menu__foot{color:#4A5A58}
/* トップ */
.ycf-invert .ycf-hero__city svg{stroke:rgba(246,242,241,.78)}
.ycf-invert .ycf-hero__city .far{stroke:rgba(246,242,241,.38)}
.ycf-invert .ycf-hero__city .fl{fill:#283B3A}
.ycf-invert .ycf-hero__news{background:#F6F2F1;color:#2B2F2E}
.ycf-invert .ycf-hero__news-date,.ycf-invert .ycf-hero__news-more{color:#595959}
/* コンセプト：緑の面がクリームに */
.ycf-invert .ycf-concept{color:#2B2F2E;background-image:linear-gradient(rgba(40,59,58,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(40,59,58,.06) 1px,transparent 1px)}
.ycf-invert .ycf-concept__head p{color:#595959}
.ycf-invert .ycf-concept__head h2,.ycf-invert .ycf-concept__body p:last-child{color:#283B3A}
.ycf-invert .ycf-concept>.ycf-concept__draw{stroke:#283B3A;stroke-opacity:.3}
.ycf-invert .ycf-concept::after{filter:invert(1);opacity:.5}
/* サービス */
.ycf-invert .ycf-service,.ycf-invert .ycf-service.wp-block-cover{background-color:#E3DCD8;background-image:repeating-linear-gradient(to bottom,transparent 0 31px,rgba(40,59,58,.07) 31px 32px)}
.ycf-invert .ycf-service::before{background:rgba(40,59,58,.14)}
.ycf-invert .ycf-panel,.ycf-invert .ycf-content .ycf-profile{background:#1E2928}
/* フッター：濃い緑がクリームに */
.ycf-invert .ycf-footer__en,.ycf-invert .ycf-footer__info{color:#4A5A58}
.ycf-invert .ycf-footer__copy{color:#6B7775}
.ycf-invert .ycf-footer__links a{color:#3A4A48}
.ycf-invert .ycf-footer__mark path{fill:#283B3A}
.ycf-invert .ycf-footer a.ycf-btn-outline:hover{color:var(--ycf-deep)}
/* フォーム */
.ycf-invert .wpcf7 input,.ycf-invert .wpcf7 textarea,.ycf-invert .wpcf7 select{color:#2B2F2E}

/* 動きを減らす設定 */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ycf-guide{transition:none}
  .ycf-hero *,.ycf-hero{animation:none!important}
  .ycf-ln::before{display:none}
  .ycf-concept__draw path{stroke-dashoffset:0;transition:none}
}
