@charset "UTF-8";

/* ──────────────────────────────────────

COMMON

─────────────────────────────────────   */
/* RESET
---------------------------------------------------------- */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;font-size:13px;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:none;}table{border-collapse:collapse;border-spacing:0;}body.mac{font-family:Helvetica, "Hiragino Kaku Gothic Pro", "\30D2\30E9\30AE\30CE\89D2\30B4\20Pro\20W3", Osaka;}body.msie{font-size:81.25%;}.cf:after{visibility:hidden;display:block;content:" ";clear:both;height:0;font-size:0;}* html .cf,*:first-child+html .cf{zoom:1px;}

/* html, body
---------------------------------------------------------- */
html {
background: #000;
overflow: auto;
}
body {
font-family: "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
font-size: 14px;
font-weight: 400;
line-height: 1.8;
letter-spacing: 0.02em;
font-feature-settings: "palt";
word-break: break-all;
padding-top: 110px;
background-color: #fff;
overflow: hidden;
}
@media(max-width:736px){
body{font-size: calc( ((14 / 16) * .9rem) + (18 - 14) * calc( (100vw - 375 / 16 * 1rem) / (1440 - 375) ) );}
body{padding-top: clamp(72px, 15vw, 20vw);}
}/* @media */

/* img
---------------------------------------------------------- */
img {display: block;width: 100%;-webkit-user-drag: none;-moz-user-select: none;}
@media(max-width:736px){a img:hover{opacity: 1;}}

/* a
---------------------------------------------------------- */
a:hover  {cursor: pointer;}
a:link   {color: #000;text-decoration: none;}
a:visited{color: #000;}
a:hover  {color: #ddd;}
a:active {color: #ddd;}

/* other
---------------------------------------------------------- */
.ffm{font-family: "Montserrat";}
p   {margin-bottom: 1em;}
span.add_space {padding: 0 0.2em;}

/* pc sp
---------------------------------------------------------- */
.pc{ display: block !important;}@media(max-width:736px){.pc{ display: none !important;}}
.sp{ display: none !important;}@media(max-width :736px){.sp{ display: block !important;}}

/* ──────────────────────────────────────

読み込み時アニメーション

─────────────────────────────────────   */
@keyframes fadeInUp {
from {opacity: 0;transform: translateY(20px);}
to {opacity: 1;transform: translateY(0);}
}
body > *:not(header) { animation: fadeInUp 0.4s ease-out;}

/* ----------------------------------------------------------
READ MORE（汎用クラス）
---------------------------------------------------------- */
.text-clamp {
position: relative;
}
/* 行数制限の共通スタイル */
.text-clamp-1 .text-clamp-content,
.text-clamp-2 .text-clamp-content,
.text-clamp-3 .text-clamp-content,
.text-clamp-4 .text-clamp-content,
.text-clamp-5 .text-clamp-content,
.text-clamp-6 .text-clamp-content,
.text-clamp-7 .text-clamp-content,
.text-clamp-8 .text-clamp-content,
.text-clamp-9 .text-clamp-content,
.text-clamp-10 .text-clamp-content {
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
/* 各行数の指定 */
.text-clamp-1 .text-clamp-content { -webkit-line-clamp: 1; }
.text-clamp-2 .text-clamp-content { -webkit-line-clamp: 2; }
.text-clamp-3 .text-clamp-content { -webkit-line-clamp: 3; }
.text-clamp-4 .text-clamp-content { -webkit-line-clamp: 4; }
.text-clamp-5 .text-clamp-content { -webkit-line-clamp: 5; }
.text-clamp-6 .text-clamp-content { -webkit-line-clamp: 6; }
.text-clamp-7 .text-clamp-content { -webkit-line-clamp: 7; }
.text-clamp-8 .text-clamp-content { -webkit-line-clamp: 8; }
.text-clamp-9 .text-clamp-content { -webkit-line-clamp: 9; }
.text-clamp-10 .text-clamp-content { -webkit-line-clamp: 10; }
/* 0行 = 非表示 */
.text-clamp-0 .text-clamp-content {
display: none;
}
/* Read moreボタン */
.text-clamp-btn {
display: block;
margin-top: 1em;
padding: 0.4em;
background-color: #000000;
color: #ffffff;
border: none;
cursor: pointer;
font-size: 1.3em;
transition: opacity 0.3s;
text-align: center;
border-radius: 100px;
line-height: 1;
}
.text-clamp-btn:hover {
opacity: 0.7;
}
/* 展開時 */
.text-clamp.is-expanded .text-clamp-content {
display: block !important;
-webkit-line-clamp: unset !important;
}
.text-clamp.is-expanded .text-clamp-btn {
display: none;
}
/* PC版では制限なし */
@media(min-width: 737px) {
.text-clamp .text-clamp-content {
display: block !important;
-webkit-line-clamp: unset !important;
}
.text-clamp-btn {
display: none !important;
}
}/* @media */

/* ──────────────────────────────────────

H要素

─────────────────────────────────────   */
/* h1
---------------------------------------------------------- */
h1.page-tit {
font-family: "Montserrat";
font-size: 2.4em;
position: relative;
left: 0;
top:0;
font-weight: 600;
position: relative;
padding: 0 3%;
margin: 78px 0 0;
letter-spacing: -0.01em;
}
@media(max-width:736px){
h1.page-tit {
font-size: 2em;
margin: 24px 0 0;
padding: 0 5%;
}
}/* @media */

/* h2
---------------------------------------------------------- */
h2 {
font-family: "Montserrat";
}
h2.works_sub_tit {
font-size: 1em;
font-weight: 300;
margin-bottom: 3em;
}
h2.under_border{
font-size: 2em;
position: relative;
padding: 0 3%;
margin: 88px 0 0;
}
h2.under_border:after {
content: "";
display: block;
width: 94%;
height: 1px;
background: rgba(0, 0, 0, 1);
position: absolute;
bottom: .55em;
left: 3%;
}
.under_border span {
position: absolute;
right: 3%;
bottom: 1em;
font-size: 0.4em;
font-weight: normal;
}
h2.under_border:after {
content: "";
display: none;
}
h2.under_border .line-container {
position: absolute;
bottom: .55em;
left: 3%;
width: 94%;
height: 40px;
pointer-events: none;
overflow: visible;
}
h2.under_border .line-container svg {
position: absolute;
top: 0.7em;
left: 0;
width: 100%;
height: 100%;
}
h2.under_border .line-container path {
stroke: rgba(0, 0, 0, 1);
stroke-width: 1;
fill: none;
stroke-linecap: round;
transition: d 0.3s ease-out;
}
@media(max-width:736px){
h2.under_border {
font-size: 1.4em;
margin: 40px 0 0;
padding: 0 5%;
}
h2.under_border .line-container {
bottom: 0.05em;
left: 5%;
width: 90%;
}
.under_border span {
bottom: 0.6em;
font-size: 0.5em;
right: 5%;
}
}/* @media */

/* WORKS コンテンツ内 h2 */
.works-content h2{
font-size: 2em;
font-weight: 600;
line-height: 1.4em;
margin: 1em 0 0.5em;
}
.works-content p{
font-size: 1.2em;
margin-bottom: 2em;
}


/* h3
---------------------------------------------------------- */
h3 {
}

/* h4
---------------------------------------------------------- */
h4{
font-family: "Montserrat";
font-size: 2.3em;
font-weight: 600;
line-height: 1.3;
letter-spacing: 0;
margin-bottom: 40px;
position: relative;
}
h4 span{
font-size: 0.4em;
position: absolute;
right: 0;
line-height: 1;
top: 1.2em;
}
h4.works_outline_tit {
font-size: 1.3em;
line-height: 1;
margin-bottom: 40px;
}

/* h5
---------------------------------------------------------- */
h5{
font-family: "Montserrat";
font-size: 1.1em;
border-top: 1px solid #333;
padding: 8px 0 24px;
font-weight: 600;  
}
h5 span{
font-size: 1.4em;
display: block;
}
@media(max-width:736px){
h4 {
font-size: 1.9em;
}
h4 span {
top: 0;
position: relative;
display: block;
padding: .8em 0 0;
}
}/* @media */

/* ──────────────────────────────────────
HEADER
─────────────────────────────────────   */
header {
position: fixed;
top: 0;
left: 0;
width: 94%;
padding: 20px 3%;
z-index: 100;
mix-blend-mode: exclusion;
color: #fff;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 80%, transparent 100%);
}
header > .header-inner {
max-width: 1600px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: flex-start;
font-size: .9em;
}
/* Logo */
header > .header-inner > .site-logo {
display: flex;
flex-direction: column;
gap: 0.25rem;
position: relative;
z-index: 102;
}
header > .header-inner > .site-logo > a {
font-family: 'Montserrat', sans-serif;
font-size: 1.4rem;
font-weight: 600;
text-decoration: none;
color: #fff;
}
header > .header-inner > .site-logo > .author {
font-size: 0.75rem;
font-weight: 400;
margin: 0;
padding: 0;
line-height: 1;
}

/* ハンバーガーボタン（デフォルトは非表示） */
.hamburger {
display: none;
flex-direction: column;
justify-content: space-between;
width: 30px;
height: 32px;
background: transparent;
border: none;
cursor: pointer;
padding: 0;
z-index: 102;
position: relative;
}
.hamburger span {
width: 100%;
height: 2px;
background-color: #fff;
transition: all 0.1s ease;
position: absolute;
left: 0;
transform-origin: center;
}
.hamburger span:nth-child(1) {
top: 0;
}
.hamburger span:nth-child(2) {
top: 8px;
transform: rotate(-28deg);
height: 1px;
}
.hamburger span:nth-child(3) {
top: 15px;
}
.hamburger span:nth-child(4) {
top: 23px;
transform: rotate(-28deg);
height: 1px;
}
.hamburger span:nth-child(5) {
bottom: 0px;
}

/* アクティブ時：中央に畳まれる */
.hamburger.active span:nth-child(1) {
top: 50%;
transform: translateY(-50%) rotate(0deg);
}
.hamburger.active span:nth-child(2) {
top: 50%;
transform: translateY(-50%) rotate(0deg);
}
.hamburger.active span:nth-child(3) {
top: 50%;
transform: translateY(-50%) rotate(0deg);
}
.hamburger.active span:nth-child(4) {
top: 50%;
transform: translateY(50%) rotate(0deg);
}
.hamburger.active span:nth-child(5) {
bottom: 50%;
transform: translateY(50%) rotate(0deg);
}

/* Navigation */
header > .header-inner > .site-nav {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 0rem;
}
/* Sub menu (スタジオ予約) */
header > .header-inner > .site-nav > .sub-menu {
list-style: none;
display: flex;
margin: 0;
padding: 0.6em 0;
}
header > .header-inner > .site-nav > .sub-menu > li > a {
color: inherit;
text-decoration: none;
display: flex;
align-items: center;
gap: 0.25rem;
font-size: 0.85rem;
}
header > .header-inner > .site-nav > .sub-menu .sub-menu-icon {
width: 16px;
height: 16px;
vertical-align: middle;
filter: invert(1);
}
/* Main menu wrapper */
header > .header-inner > .site-nav > .main-menu-wrapper {
display: flex;
align-items: center;
}
/* Main menu */
header > .header-inner > .site-nav > .main-menu-wrapper > .main-menu {
list-style: none;
display: flex;
gap: 1.5rem;
margin: 0;
padding: 0;
}
header > .header-inner > .site-nav > .main-menu-wrapper > .main-menu > li > a {
color: inherit;
text-decoration: none;
}
/* SNS block */
header > .header-inner > .site-nav > .main-menu-wrapper > .site-nav-sns {
display: flex;
align-items: center;
gap: 1rem;
margin-left: 1.5rem;
}
header > .header-inner > .site-nav > .main-menu-wrapper > .site-nav-sns > a {
color: inherit;
text-decoration: none;
}
header > .header-inner > .site-nav > .sub-menu > li > a:hover,
header > .header-inner > .site-nav > .main-menu-wrapper > .main-menu > li > a:hover,
header > .header-inner > .site-nav > .main-menu-wrapper > .site-nav-sns > a:hover {
opacity: .5;
}
/* メニューが開いている時のbody固定 */
body.menu-open {
overflow: hidden;
}

/* ──────────────────────────────────────
RESPONSIVE (スマホ対応)
─────────────────────────────────────   */
@media (max-width: 768px) {
header {
padding: 5%;
width: 90%;
}
header > .header-inner {
align-items: center;
}
/* メニューが開いている時だけmix-blend-modeを無効化 */
body.menu-open header {
mix-blend-mode: normal;
background-color: rgba(0, 0, 0, 0.9);
}
header > .header-inner {
font-size: 0.85em;
}
/* ロゴサイズ調整 */
header > .header-inner > .site-logo > a {
font-size: 1.2rem;
line-height: 1;
}
header > .header-inner > .site-logo > .author {
font-size: 0.6rem;
line-height: 1.8;
}
/* ハンバーガーボタン表示 */
.hamburger {
display: flex;
position: relative;
margin-right: 0%;
scale: 80%;
top: -3px;
}
/* ナビゲーションをフルスクリーンメニューに */
header > .header-inner > .site-nav {
position: fixed;
top: 0;
right: 0;
width: 100%;
height: 100vh;
background-color: #000;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0rem;
z-index: 101;
display: none;
}
header > .header-inner > .site-nav.active {
display: flex;
}
/* サブメニュー */
header > .header-inner > .site-nav > .sub-menu {
flex-direction: column;
align-items: center;
padding: 0;
}
header > .header-inner > .site-nav > .sub-menu > li > a {
font-size: 1rem;
}
header > .header-inner > .site-nav > .sub-menu > li:first-child > a {
position: absolute;
bottom: 15vh;
background: #141414;
padding: 0.5em 0.5em 0.5em 1.8em;
width: 50%;
left: 0;
right: 0;
text-align: center;
margin: auto;
border-radius: 100px;
border: 1px solid #fff;
}
/* メインメニュー */
header > .header-inner > .site-nav > .main-menu-wrapper {
flex-direction: column;
gap: 1.5rem;
}
header > .header-inner > .site-nav > .main-menu-wrapper > .main-menu {
flex-direction: column;
align-items: center;
gap: 1.5rem;
}
header > .header-inner > .site-nav > .main-menu-wrapper > .main-menu > li > a {
font-size: 1.2rem;
}
/* SNS */
header > .header-inner > .site-nav > .main-menu-wrapper > .site-nav-sns {
margin-left: 0;
gap: 1.5rem;
}
header > .header-inner > .site-nav > .main-menu-wrapper > .site-nav-sns > span {
display: none;
}
header > .header-inner > .site-nav > .main-menu-wrapper > .site-nav-sns > a {
font-size: 1.1rem;
}
}/* @media */

/* ──────────────────────────────────────

COMMON

─────────────────────────────────────   */
main {
max-width: 1600px;
margin: 0 auto;
padding: 80px 3%;
}

/* ───────────────────────────────────────

TOP

─────────────────────────────────────── */
.top--mv {
overflow: hidden;
height: calc(95vh - 110px);
position: relative;
touch-action: pan-y;
background: #ccc;
/*
margin: 0 1%;
border-radius: 16px;
*/
}
/* Slides: stack & fade */
.top--mv .top--mv--inner {
position: absolute;
inset: 0;
display: block;
opacity: 0;
transition: opacity 1s ease; /* 1秒フェード */
z-index: 1;
pointer-events: none;
}
/* JSが動かない環境でも1枚目は見えるように（JS稼働時は無効化） */
.top--mv:not(.js-on) .top--mv--inner:first-child { opacity: 1; }
.top--mv .top--mv--inner.is-active {
opacity: 1;
z-index: 2;
pointer-events: auto;
}
/* Image fill (existing selector) */
.top--mv img {
width: 100%;
height: 100%;
object-fit: cover;         /* はみ出しても埋める */
object-position: center center; /* 中央寄せ（横・縦とも） */
display: block;
}
/* 呼吸するズーム（ケンバーンズ風）: 1 ↔ 1.1 を往復。*/
.top--mv { --zoom-cycle: 10s; }
.top--mv img {
animation: mvKen var(--zoom-cycle, 10s) ease-in-out infinite alternate;
will-change: transform;
}
@keyframes mvKen {
from { transform: scale(1); }
to   { transform: scale(1.05); }
}
/* 動きが苦手な環境では停止 */
@media (prefers-reduced-motion: reduce) {
.top--mv img { animation: none; }
}/* @media */

/* Title overlay (existing) */
.top--mv .top--mv--inner .tit{
position: absolute;
left: 2.3%;
bottom: 24px;
line-height: 2;
color: #fff;
text-shadow: 0 0 10px rgba(0, 0, 0, 1);
}
.top--mv .top--mv--inner .tit p{ margin-bottom: 0; }
.top--mv .top--mv--inner .tit p:nth-child(1){ font-size: 1.2em; font-weight: 600; }

/* ===== Progress indicator (bottom-right) ===== */
.top--mv .top--mv--progress{
position: absolute;
right: 2.3%;
left: auto;
bottom: 24px;
display: flex;
align-items: center; /* 中央寄せ */
gap: 6px;
width: min(60vw, 420px);
height: 20px; /* クリックしやすいヒット領域 */
z-index: 3;
}
.top--mv .top--mv--progress .prog-bar{
appearance: none;
-webkit-appearance: none;
border: 0;
padding: 0;
margin: 0;
cursor: pointer;
flex: 1 1 0;
height: 20px; /* 目に見える線は2px、ヒット領域は20px */
position: relative;
background: transparent; /* ベース線は ::after で描画 */
overflow: hidden;
}
.top--mv .top--mv--progress .prog-bar:focus-visible{
outline: none;
box-shadow: 0 0 0 2px rgba(255,255,255,0.85);
}
.top--mv .top--mv--progress .prog-bar::before{
content: "";
position: absolute; left: 0; right: 0; top: 50%;
transform: translateY(-50%);
width: 0%; height: 2px; /* フィルの可視高さ */
background: #fff; /* フィル */
transform-origin: left center;
}
.top--mv .top--mv--progress .prog-bar.is-active::before{
animation: progFill var(--prog-dur,5s) linear forwards;
}
@keyframes progFill { from { width: 0%; } to { width: 100%; } }

/* ベース線（2px, 半透明） */
.top--mv .top--mv--progress .prog-bar::after{
content: "";
position: absolute; left: 0; right: 0; top: 50%;
transform: translateY(-50%);
height: 2px; width: 100%;
background: rgba(255,255,255,0.5);
}
@media(max-width:736px){
.top--mv{
height: 71vh;
/*
margin: 0 1.6%;
border-radius: 8px;
*/
}
.top--mv .top--mv--inner .tit{
left: 3.3%;
bottom: 24px;
font-size: .9em;
}
.top--mv .top--mv--inner .tit p:nth-child(2){
display: none;
}
.top--mv .top--mv--progress{
right: inherit;
left: 3.3%;
bottom: 8px;
}
}/* @media */

/* -------------------------------------------
tio--intro
 ------------------------------------------- */
.top--intro{
}
.top--intro .catch-copy{
font-family: "Montserrat";
line-height: 1;
margin-bottom: 1em;
font-size: 4em;
}
.top--intro .catch-copy span:nth-child(1) {
display: block;
font-size: 0.4em;
margin-bottom: 0.3em;
font-weight: 500;
}
.top--intro .catch-copy span:nth-child(2) {
display: block;
font-size: 0.2em;
margin-bottom: 2.2em;
}
.top--intro .catch-copy p{
font-weight: 500;
}
.top--intro .catch-text{
}
.top--intro .catch-text p:nth-child(1) {
font-size: 1.6em;
}
.top--intro .catch-text p:nth-child(2){
margin-bottom: 2em;
}
.more_btn{
}
.more_btn:hover{
}
.more_btn a{
display: inline-block;
line-height: 1;
padding: .8em 0;
margin-top: 80px;
font-size: 1.4em;
line-height: 1;
padding: .8em 0;
border: 1px solid #000;
border-radius: 100px;
padding: .5em 2em;
background: #000;
color: #fff;
}
.more_btn a:hover{
opacity: .7;
}
@media(max-width:736px){
.top--intro .catch-copy p {
font-size: 11vw;
margin-bottom: 0;
}
.more_btn{
text-align: left;
}
.more_btn a{
margin-top: 24px;
font-size: 1.2em;
}
}/* @media */


/* ───────────────────────────────────────

NEWS

─────────────────────────────────────── */

/* ───────────────────────────────────────
NEWS > アーカイブ
─────────────────────────────────────── */
.news-card {
padding: 32px 0;
border-bottom: 1px solid #eee;
transition: ease-in-out .2s;
}
.news-card a{
color: #000;
}
.news-card:hover{
opacity: .5;
}
.news-card__link {
display: grid;
grid-template-columns: 1fr 280px; /* 左:本文 / 右:サムネ */
gap: 40px;
text-decoration: none;
color: inherit;
}
.news-card__date {
font-size: 14px;
margin-bottom: 12px;
color: #787878;
}
.news-card__date span{
font-family: "Montserrat";
color: #000;
font-weight: 600;
}
.news-card__date span:after{
content: '｜';
padding: 0 .1em 0 .3em;
}
.news-card__title {
font-size: 1.1em;
line-height: 1.7;
}
.news-card__thumb {
width: 100%;
aspect-ratio: 16 / 9;           /* 画像の比率を揃える */
background-size: cover;         /* はみ出しはトリミング */
background-position: center;
background-repeat: no-repeat;
border: 1px solid #eee;
}
.news-archive__pagination {
margin-top: 40px;
}

/* スマホ対応 */
@media(max-width: 736px) {
.news-card {
padding: 24px 0;
}
.news-card__link {
grid-template-columns: 1fr 100px; /* 左:本文 / 右:サムネ（小さく） */
gap: 16px;
}
.news-card__date {
font-size: 12px;
margin-bottom: 8px;
}
.news-card__title {
font-size: 0.95em;
line-height: 1.6;
}
.news-card__thumb {
aspect-ratio: 1 / 1; /* スマホでは正方形に */
}
.news-archive__pagination {
margin-top: 30px;
}
}/* @media */

/* ───────────────────────────────────────
NEWS > single
─────────────────────────────────────── */
main.news{
max-width: 900px;
}
/* TOPだけ全幅に */
main.news.top-news{
max-width: 100%;
}
main.news .page-date {
margin-bottom: 1.6em;
}
main.news .page-date span{
font-family: "Montserrat";
font-weight: 600;
letter-spacing: 0;
}
main.news .page-date span:after{
content: '｜';
padding: 0 .1em 0 .3em;
}
main.news .page-description {
font-size: 1.2em;
margin-bottom: 32px;
}
@media(max-width:736px){
main.news .page-description {
font-size: 1.1em;
}
}/* @media */

/* ───────────────────────────────────────
NEWS > アイキャッチ画像
─────────────────────────────────────── */
main.news .page-icatch{
margin-bottom: 32px;
}
@media(max-width:736px){
main.news .page-icatch {
position: relative;
width: 112%;
left: -6%;
}
}/* @media */

/* ───────────────────────────────────────
NEWS > 本文
─────────────────────────────────────── */
main.news .page-content h2{
font-size: 1.4em;
font-family: "Montserrat", sans-serif;
margin: 80px 0 32px;
}
main.news .page-content h3{
font-size: 1.2em;
font-family: "Montserrat", sans-serif;
margin: 48px 0 8px;
}
main.news .page-content img{
margin-bottom: 32px;
border: 1px solid #dddddd;
}
main.news .page-content strong{
font-weight: 600;
}
main.news .page-content em{
font-size: .8em;
}
main.news .page-content blockquote{
padding: 2em;
border:1px solid #ccc;
border-radius: 16px;
margin-bottom: 40px;
}
main.news .page-content blockquote p:last-child{
margin-bottom: 0;
}
main.news .page-content p a{
text-decoration: underline;
color: #888;
}
main.news .page-content p a:hover{
color: #000;
}
main.news .page-content hr.wp-block-separator{
border: none;
border-top: 1px solid;
margin: 6em 0;
}

/* ───────────────────────────────────────

WORKS

─────────────────────────────────────── */
main > .page-tit {
font-family: 'Montserrat', sans-serif;
font-size: 2.25rem;        /* 36px */
font-weight: 600;
margin: 0 0 16px;
line-height: 1.6;
letter-spacing: 0;
}
main > .filters {
list-style: none;
margin: 0 0 48px;
padding: 0;
font-size: 0.75rem;        /* 12px */
display: flex;
}
main > .filters > li > a {
background: #fff;
color: #666;
text-decoration: none;
padding: 0.4em 1em;
border-radius: 20px;
margin-right: 0.5em;
font-size: 1em;
border: 1px solid #666;
transition: ease-in-out .2s;
}
/* 選択しているページの場合 */
main > .filters > li.on > a {
color: #fff;
background: #333;
pointer-events: none;
cursor: default;
}
/* 「ALL」は無効に */
main > .filters > li.on:first-child > a {
background: #fff;
color: #666;
pointer-events: inherit;
cursor: pointer;
}
/* ホバー時の挙動 */
main > .filters > li > a:hover ,
main > .filters > li.on:first-child > a:hover {
color: #fff;
background: #333;
}
/* 一覧でのサブタイトル表示 */
.works-item__subtitle--archive {
font-size: 0.8rem;
color: #888;
margin: 0;
line-height: 1.5;
}
.works-item__tags {
font-size: 0.76em;
color: #a6a6a6;
margin-top: 16px;
}
.works-item__tags-separator{
padding: 0 0.1em;
opacity: .6;
}

/* =========================================
Smartphone (～767px)
既存のPC向け指定は保持し、スマホのみ上書き
========================================= */
@media (max-width: 767px) {
/* リスト自体：複数行折り返し＋余白調整 */
main > .filters {
flex-wrap: wrap;
row-gap: 8px;         /* 行間 */
column-gap: 8px;      /* 列間 */
margin: 0 0 24px;     /* 下の空き少し縮める */
}
/* <li>側の外側余白はgapに任せる */
main > .filters > li {
margin: 0;            /* 既存のmargin-rightの干渉を避ける */
list-style: none;
}
/* タップターゲット拡大・視認性向上 */
main > .filters > li > a {
display: inline-flex;
align-items: center;
justify-content: center;
margin-right: 0;             /* PCで付いている場合の打ち消し */
font-size: .8em;
padding: .2em .8em;
}
/* ホバー／フォーカス（スマホのフォーカスリング考慮） */
main > .filters > li > a:hover,
main > .filters > li > a:focus,
main > .filters > li > a:focus-visible {
background: #ddd;
color: #000;
outline: none;
}
}/* @media */

/* （任意）現在選択中のタグ用スタイル例 もし current クラスなどを付与している場合にどうぞ */
main > .filters > li > a.current {
background: #333;
color: #fff;
}
@media(max-width:736px){
main > .page-tit {
font-size: 1.4rem;
}
}/* @media */

/* ───────────────────────────────────────
WORKS > works-grid：最大3列
─────────────────────────────────────── */
/* デフォルトは3カラム */
.works-grid {
display: grid;
gap: 24px;
grid-template-columns: repeat(3, 1fr);
}
/* 幅1080px以下では2カラムに */
@media (max-width: 1080px) {
.works-grid {
grid-template-columns: repeat(2, 1fr);
}
}/* @media */
/* 幅736px以下では1カラムに */
@media (max-width: 736px) {
.works-grid {
grid-template-columns: 1fr;
gap: 0px;
}
}/* @media */

/* ───────────────────────────────────────
WORKS > 一覧 img
─────────────────────────────────────── */
main > .works-grid > .works-item > .works-item__thumb {
display: block;
overflow: hidden;
border-radius: 4px;
}
/* 画像：ホバーで拡大 */
main > .works-grid > .works-item > .works-item__thumb img {
width: 100%;
height: auto;
object-fit: cover;
transition: transform 0.8s ease;
transform-origin: center center;
}
main > .works-grid > .works-item > .works-item__thumb img{
transform: scale(1.05);
}
/* ホバー時のズーム */
main > .works-grid > .works-item > .works-item__thumb:hover img {
transform: scale(1);
}
@media(max-width:736px){
main > .works-grid > .works-item > .works-item__thumb {
width: 107%;
left: -3.5%;
position: relative;
}
}/* @media */

/* ───────────────────────────────────────
WORKS > works-item
─────────────────────────────────────── */
main > .works-grid > .works-item {
display: flex;
flex-direction: column;
margin-bottom: 40px;
}
main > .works-grid > .works-item > .works-item__thumb img {
width: 100%;
height: auto;
object-fit: cover;
}
main > .works-grid > .works-item > .works-item__title {
font-size: .85rem;
font-weight: 600;
margin: 0 0 8px;
}
main > .works-grid > .works-item > .works-item__title > a {
color: inherit;
text-decoration: none;
}
main > .works-grid > .works-item > .works-item__subtitle {
font-size: 0.875rem;
color: #666;
margin: 0;
}
main > .works-no-posts {
text-align: center;
color: #666;
font-size: 1rem;
margin: 80px 0;
}

/* ───────────────────────────────────────
WORKS - max-width: 736px
─────────────────────────────────────── */
@media (max-width: 736px) {
main {
padding: 40px 5%;
}
main > .works-grid {
grid-template-columns: 1fr;
}
}/* @media */

/* ───────────────────────────────────────

WORKS - single-works：レイアウト  (右カラム固定・余白保持版)

─────────────────────────────────────── */

/* ───────────────────────────────────────
WORKS - single-works > common
─────────────────────────────────────── */
.single-works .works-hero {
position: relative;
width: 108%;
left: -4%;
margin-bottom: 56px;
}
.single-works .works-hero img{
width:100%;
height:auto;
display:block;
margin-bottom:32px;
}
.works-outline {margin-bottom: 88px;}
.works-outline h5 {
border: 0;
padding: 0;
margin: 3em 0 1em;
font-weight: 500;
}
.works-outline h5:first-child{
margin: 0 0 1em;
}
.works-credit dl {
margin: 0;
max-width: 1200px;
columns: 2;
column-gap: 1em;
}
.works-credit dl > div {
break-inside: avoid;
margin-bottom: 2em;
}
.works-credit dt {
font-size: 0.9em;
color: #999;
line-height: 1;
margin-bottom: 0.3em;
}
.works-credit dd {
margin: 0;
line-height: 1.8;
}
.works-credit dd a {
color: #000;
text-decoration: underline;
}
@media (max-width: 768px) {
.works-credit dl {
columns: 1;
}
.single-works .works-hero {
width: 190vw;
left: -50vw;
position: relative;
margin-bottom: 0px;
}
main > .works-grid > .works-item > .works-item__title {
font-size: 0.8rem;
}
}/* @media */

/* ───── PC (幅 ≥ 900px) ───── */
@media (min-width:900px){
.single-works .works-body{
position:relative;
display:flex;
gap:20px;
align-items:flex-start;
}
/* 左右カラム：幅固定 50% − gap/2 */
.works-content,
.works-side{
width:calc(50% - 10px);
flex:0 0 auto;
min-width:0;
}
/* 右カラム：縦積み＋固定時も右余白を死守するため padding-right を付与 */
.works-side{
position:relative;
display:flex;
flex-direction:column;
gap:0;
padding-bottom: 40px;
}
}/* @media */

/* ───── SP (幅 < 900px) ───── */
@media(max-width:736px){
.single-works .works-body{
display:grid;
grid-template-columns:1fr;
row-gap:20px;
}
.works-side{display:contents;}
.works-outline{ grid-row:1; margin-bottom: 8px;}
.works-content{ grid-row:2; }
.works-credit { grid-row:3; }
.works-content, .works-outline, .works-credit{ min-width:0;}
}/* @media */


/* ───────────────────────────────────────
WORKS - single-works > vimeo 埋め込み用
─────────────────────────────────────── */
.works-content .vimeo-wrapper{
position:relative;
width:100%;
padding-top:56.25%;   /* ＝ 9/16 × 100 */
margin-bottom: 16px;
}
.works-content .vimeo-wrapper iframe{
position:absolute;
inset:0;
width:100%;
height:100%;
}
.works-content img{
margin-bottom: 16px;
}

/* ───────────────────────────────────────

WORKS NEWS - single-works > 画像ポップアップ

─────────────────────────────────────── */
@media (min-width: 900px) {
.works-side {
transition: none; /* position変更時のちらつきを防ぐ */
}
}/* @media */
/* 画像ポップアップ用スタイル */
.image-popup-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 0.4);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
z-index: 1000;
cursor: pointer;
/* 他のアニメーションを無効化 */
animation: none !important;
transition: none !important;
transform: none !important;
opacity: 1 !important;
}
.image-popup-content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) !important;
width: 80vw;
height: 80vh;
cursor: default;
/* 他のアニメーションを無効化 */
animation: none !important;
transition: none !important;
}
.image-popup-content img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 4px;
/* 他のアニメーションを無効化 */
animation: none !important;
transition: opacity 0.2s ease !important;
transform: none !important;
}
.image-popup-close {
position: absolute;
top: 20px;
right: 30px;
color: #000;
font-size: 50px;
font-weight: 200;
cursor: pointer;
z-index: 1001;
line-height: 1;
user-select: none;
transition: opacity 0.2s ease;
/* 他のアニメーションを無効化 */
animation: none !important;
transform: none !important;
}
.image-popup-close:hover {
opacity: 0.5;
}
/* ナビゲーションボタン */
.image-popup-nav {
position: absolute;
top: 50%;
transform: translateY(-50%) !important;
background: rgba(0, 0, 0, 0);
border: none;
width: 80px;
height: 80px;
cursor: pointer;
font-size: 40px;
color: #000;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.2s ease;
font-weight: 200;
border-radius: 4px;
/* 他のアニメーションを無効化 */
animation: none !important;
}
.image-popup-nav:hover {
color: #ccc;
}
.image-popup-prev {
left: 20px;
}
.image-popup-next {
right: 20px;
}
/* カウンター */
.image-popup-counter {
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%) !important;
background: rgba(255, 255, 255, 0.9);
color: #000;
padding: 8px 16px;
border-radius: 20px;
font-size: 14px;
font-weight: 400;
border: 1px solid rgba(0, 0, 0, 0.1);
/* 他のアニメーションを無効化 */
animation: none !important;
transition: none !important;
}
/* モバイル対応 */
@media (max-width: 768px) {
.image-popup-content {
max-width: 90%;
max-height: 90%;
}
.image-popup-nav {
width: 40px;
height: 40px;
font-size: 16px;
}
.image-popup-prev {
left: 15px;
}
.image-popup-next {
right: 15px;
}
.image-popup-close {
top: 15px;
right: 20px;
font-size: 30px;
}
}/* @media */
/* クリック可能な画像のスタイル */
.works-content img ,
.page-content img,
.page-icatch img {
cursor: pointer;
transition: opacity 0.2s ease;
}
.works-content img:hover ,
.page-content img:hover,
.page-icatch img:hover {
opacity: 0.8;
}

@media(max-width:736px){
.works-content img:hover ,
.page-content img:hover,
.page-icatch img:hover {
opacity: 1;
}
}/* @media */


/* ───────────────────────────────────────

RENTAL

─────────────────────────────────────── */

/* ----------------------------------------------------------
RENTAL > main
---------------------------------------------------------- */
main.studio{display: flex;}
main.studio .main--contents--left {width: 30%;margin-right: 10%;}
main.studio .main--contents--right {width: 60%;}
main.studio .main--contents--right .main--contents--right--box {margin-top: 154px;}
main.studio .main--contents--right .main--contents--right--box:first-child {margin-top: 0;}
main.studio .main--contents--right .main--contents--right--box:last-child{}

@media(max-width:736px){
main.studio{display: inherit;}
main.studio .main--contents--left,
main.studio .main--contents--right {
margin-right: 0;
}
main.studio .main--contents--left ,
main.studio .main--contents--right{
width: 100%;
margin-right: 0%;
}
main.studio .main--contents--right .main--contents--right--box {
margin-top: 80px;
}
}/* @media */


/* ----------------------------------------------------------
RENTAL > PHOTOS
---------------------------------------------------------- */
.studio--bgimg-wrapper {
position: relative;
width: 100%;
height: 560px;
overflow: hidden;
cursor: pointer;
margin-bottom: 16px;
}
.studio--bgimg {
position: absolute;
top: 0; 
left: 0;
width: 100%; 
height: 100%;
background-size: cover;
background-repeat: no-repeat;
background-position: center center;
opacity: 0;
border-radius: 3px;
overflow: hidden;
}
.studio--bgimg.active {
opacity: 1;
}
/* ページャー基本スタイル - インスタストーリー風 */
.studio--pager {
display: flex;
gap: 4px;
margin: 12px 0 24px;
width: 100%;
}
.studio--pager .dot {
flex: 1;
height: 2px;
background: rgba(0, 0, 0, 0.2);
cursor: pointer;
border-radius: 0;
position: relative;
overflow: hidden;
margin: 0;
}
/* プログレスバーのアニメーション */
.studio--pager .dot::before {
content: '';
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 0;
background: #000;
border-radius: 1.5px;
transition: none;
}
.studio--pager .dot.active::before {
animation: progress 5s linear forwards;
}
.studio--pager .dot.completed::before {
width: 100%;
}
@keyframes progress {
from {
width: 0;
}
to {
width: 100%;
}
}


/* ───────────────────────────────────────
RENTAL > OVERVIEW
─────────────────────────────────────── */
dl.at_about{
font-family: "Montserrat";
font-weight: 500;
font-size: .9em;
border-bottom: 1px solid #ddd;
}
dl.at_about b{
width: 7em;
display: inline-block;
}
dl.at_about p{
margin: 3em 0 1em;
font-size: 1rem;
}
dl.at_about dt{
clear: both;
float: left;
width: 10em;
padding: 20px 0 20px;
}
dl.at_about dd {
padding: 20px 0 20px 10em;
border-top: 1px solid #ddd;
}
dl.at_about span {
position: relative;
top: 0em;
font-size: .9em;
line-height: 1;
letter-spacing: 0.2em;
margin:0 .5em;
}
dl.at_about span:before{content: '（';}
dl.at_about span:after {content: '）';}
dl.at_about.border_none{border-bottom: 0px;}
dl.at_about.border_none dt, dl.at_about.border_none dd{border-top: 0px;}

@media(max-width:736px){
dl.at_about {
border-bottom: 0;
}
dl.at_about dt {
clear: both;
float: none;
width: 100%;
padding: 8px 0 0px;
border-top: 1px solid #ccc;
opacity: .5;
}
dl.at_about dd {
padding: 0px 0 8px 0em;
border: 0;
}
dl.at_about b {
width: 100%;
display: inline-block;
margin: 1em 0 0;
}
dl.at_about b:before {
content: '- ';
}
}/* @media */

/* アンカーリンク
---------------------------------------------------------- */
ul.anchor_link{
font-size: 1.8em;
font-weight: 400;
}
ul.anchor_link li a{
color: #d0d0d0;
}
ul.anchor_link a:hover,
ul.anchor_link a.active {
color: #000;
}
ul.anchor_link li.none:before{
content: '';
padding-right: 0em;
}
ul.anchor_link li.none{
margin-bottom: .8em;
}
/* ---------------------------------------- scroll-fixed.add */
.scroll-fixed{
width: 28vw;
opacity: 1;
transition: ease-in-out .2s;
}
.scroll-fixed.add{
position: fixed;
top: 160px;
}
.scroll-fixed.fin{
opacity: 0;
}
@media(max-width:736px){
.scroll-fixed{
width: 100%;
}
.scroll-fixed.add{
position: inherit;
top: inherit;
}
}/* @media */

/* ----------------------------------------------------------
RENTAL > ACCESS
---------------------------------------------------------- */
.access_map {
display: block;
position: relative;      /* 擬似要素を乗せるために必要 */
width: 100%;
height: 500px;
margin-bottom: 16px;
background: url('../../assets/imgs/rental/access/access.jpg') no-repeat center center;
background-size: 960px auto;
text-decoration: none;
overflow: hidden;
}
/* 透明なオーバーレイ層 */
.access_map::before {
content: '';
position: absolute;
inset: 0;                    /* top:0; right:0; bottom:0; left:0; と同じ */
background: rgba(0,0,0,0);   /* 初期は透明 */
}
/* 中央テキスト */
.access_map::after {
content: 'GoogleMap を開く ↗';
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%, -50%);
color: #fff;
font-size: 1.2em;
opacity: 0;
white-space: nowrap;
}
/* ホバー時 */
.access_map:hover::before {
background: rgba(0,0,0,0.3);
}
.access_map:hover::after {
opacity: 1;
}
@media(max-width:736px){
.access_map{
height:70vw;
background-size: 160vw auto;
background-position: -27vw;
}
}/* @media */

/* ----------------------------------------------------------
RENTAL > RESERVED BTN
---------------------------------------------------------- */
/* 初期状態は画面外（下）に隠しておく */
.reserved-btn a {
display: block;
background: #000;
padding: 0.8em 4em;
color: #fff;
font-size: 1.2em;
border-radius: 10em;
position: fixed;
bottom: 40px;
left: 3%;
transform: translateY(100px);
opacity: 0;
transition: transform 0.3s ease, opacity 0.3s ease;
}
/* .visible が付いたら表示 */
.reserved-btn a.visible {
transform: translateY(0);
opacity: 1;
}
@media(max-width:736px){
.reserved-btn a {
padding: 0.8em 0;
text-align: center;
bottom: 16px;
left: 5%;
right: 5%;
}
}/* @media */


/* ----------------------------------------------------------
RENTAL - max-width:736px
---------------------------------------------------------- */
@media(max-width:736px){
main.studio{
display: inherit;
}
ul.anchor_link li:before{
padding-right: .3em;
}
ul.anchor_link li {
margin-left: 0em;
font-size: 0.8em;
}
ul.anchor_link li a{
color: #000;
}
.main--contents--left {
padding-left: 0;
width: 100%;
margin-right: 0;
}
.main--contents--right {
width: 100%;
}
.main--contents--right--box {
margin-top: 80px;
}
ul.anchor_link{
margin-bottom: 16px;
}
.about--img--1{
height: 130vw;
}
}/* @media */

@media(max-width:736px){
.studio--bgimg-wrapper {
position: relative;
width: 112%;
height: 100vw;
margin-bottom: 16px;
left: -6%;
}
}/* @media */


/* ----------------------------------------------------------
STUDIO RENTAL
---------------------------------------------------------- */
h3 span.reserve {
position: relative;
top: -0.25em;
left: 1em;
font-size: 0.55em;
}
.rental_plan--wrap{
margin: 2em 0;
}
.rental_plan--wrap ul{
display: flex;
}
.rental_plan--wrap ul:last-child{
border-bottom: 1px solid;
}
.rental_plan--wrap ul:first-child{
font-size: .8em;
}
.rental_plan--wrap ul li:nth-child(1){
width: 80%;
}
.rental_plan--wrap ul li{
width: 100%;
text-align: center;
border-top: 1px solid;
font-weight: 600;
line-height: 1;
padding: 1.5em 0;
font-size: 1.3em;
}
.rental_plan--wrap ul li span{
font-size: .7em;
margin-left: .2em;
}
.rental_plan--wrap ul li p {
font-size: .7em;
margin: 0;
padding: 0.5em 0 0;
color: #888;
font-weight: 400;
}
@media(max-width:780px){
h3 span.reserve {
position: relative;
top: -.3em;
left: 0em;
font-size: 0.5em;
}
.rental_plan--wrap ul li{
font-size: 1.1em;
}
}/* @media */


/* ----------------------------------------------------------
FAQ
---------------------------------------------------------- */
.faq--wrap a{
text-decoration: underline;
margin: 0 .2em;
}
.faq--area a:hover{
text-decoration: none;
}
p.faq-tit{
font-size: 1.2em;
font-weight: bold;
}
dl.faq {
list-style: none;
margin: 2em 0 5em;
padding: 0;
border-bottom: 1px solid #ccc;
}
dl.faq dt {
font-size: 1.15em;
cursor: pointer;
border-top: 1px solid #ccc;
padding: 1em 4em 1em 0;
position: relative;
line-height: 1.4;
}
dl.faq dd {
opacity: 0;
position: relative;
padding: 0;
max-height: 0;
overflow: hidden;
transition: max-height 0.2s ease, opacity 0.2s ease;
}
dl.faq dd p {
margin-bottom: 0.5em;
}
dl.faq dd p:first-child{margin-top: 1em;}
dl.faq dd p:last-child{margin-bottom: 2em;}
dl.faq dd p span {
background: #eaff62;
}
dl.faq dd ul{
margin: 1em 0 0;
}
dl.faq dd li{
padding-left: 1em;
}
.faq dt::after {
content: '＋';
position: absolute;
top: 34%;
right: 0;
cursor: pointer;
transition: transform 0.3s ease;
}
.faq dt.active::after {
transform: rotate(45deg);
}
.faq dt.active + dd {
max-height: 1000px; /* 適切な大きさに調整してください */
opacity: 1;
}
a#faq{
display: block;
margin-top: -100px;
padding-top: 100px;
}


/* ───────────────────────────────────────

ABOUT

─────────────────────────────────────── */
.video-container {
max-width: 1600px;
margin: 0 auto;
width: 100%;
}
.video-container iframe {
width: 100%;
aspect-ratio: 16/9;
}

/* ----------------------------------------------------------
ABOUT > introduction
---------------------------------------------------------- */
main.about{display: flex;}
main.about .main--contents--left  {width: 48.5%;margin-right: 3%;}
main.about .main--contents--right {width: 48.5%;}
main.about .main--contents{width: 100%;}
.about-text{
line-height: 2em;
}
.about-tit {
font-size: 1.8em;
font-weight: 500;
margin-bottom: 1em;
}
@media(max-width:736px){
main.about{display: inherit;}
main.about .main--contents--left,
main.about .main--contents--right {
width: 100%;
margin-right: 0;
}
.about-tit {
font-size: 1.5em;
line-height: 1.8;
font-weight: 500;
margin:1em 0;
}
}/* @media */


/* ----------------------------------------------------------
ABOUT > overview
---------------------------------------------------------- */
.overview {
display: grid;
grid-template-columns: 30vw 1fr;
gap: 80px;
}
.overview .section {
margin-bottom: 6em;
}
.overview .section:last-child {
margin-bottom: 0;
}
.overview-section .tit {
font-size: 2em;
font-family: "Montserrat";
font-weight: 600;
line-height: 1.6;
}
.overview-section p {
font-size: 1.5em;
letter-spacing: 0.05em;
}
.sections-wrapper {
display: flex;
flex-direction: column;
gap: 80px;
}
.section-number {
font-family: "Montserrat";
font-size: 1em;
color: #999;
letter-spacing: 0.1em;
}
.section-title {
font-family: "Montserrat";
font-size: 2em;
font-weight: 600;
margin: 0 0 1em;
}
.section-subtitle {
display: inline;
}
.section-description {
line-height: 2;
margin-bottom: 0.6em;
color: #333;
}
.section-tags {
font-size: 0.8125em;
color: #666;
display: inline;
}
@media (max-width: 1024px) {
.overview {
grid-template-columns: 1fr;
gap: 2em;
}
}/* @media */

@media(max-width:736px){
.overview-section p {
font-size: 1.2em;
}
.overview-section h1 {
font-size: 2em;
}
.section-title {
font-size: 1.8em;
}
.overview .section {
margin-bottom: 3em;
}
}/* @media */


/* ----------------------------------------------------------
ABOUT > MEMBER
---------------------------------------------------------- */
.member-img {
background: #ccc;
width: 100%;
height: 240px;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
filter: grayscale(50%);
}
.member-img.no1{
background-image: url('../../assets/imgs/about/shibu.jpg') ;
}
.member-img.no2{
background-image: url('../../assets/imgs/about/mechikuro.jpg') ;
}
.member-name-ja {
font-size: 1.1em;
font-weight: 700;
letter-spacing: 0.05em;
}
.member-name-ja span {
padding: 0 0 0 1em;
font-size: 0.7em;
font-weight: 500;
position: relative;
top: -0.2em;
}
.member-name-en {
font-size: 0.875em;
letter-spacing: 0.1em;
}
.member-bio {
line-height: 2;
color: #333;
}
.member-bio a{
text-decoration: underline;
}
@media(max-width:736px){
.member-img {
height: 36vw;
}
}/* @media */


/* ----------------------------------------------------------
ABOUT > CONNECT
---------------------------------------------------------- */
.connect-blocks {
display: flex;
gap: 3%;
padding: 0;
margin: 0;
width: 100%;
box-sizing: border-box;
}
.connect-block {
background-color: #fafafa;
width: calc((100% - 40px) / 5);
aspect-ratio: 1 / 1;
background-size: 90%;
background-position: center;
background-repeat: no-repeat;
display: block;
text-decoration: none;
transition: transform 0.3s ease;
overflow: hidden;
box-sizing: border-box;
}
.connect-block:hover {
transform: scale(0.98);
}

@media(max-width:736px){
.connect-blocks {
flex-wrap: wrap;
gap: 2%;
}
.connect-block {
width: calc((100% - 2%) / 2);
margin-bottom: 2%;
}
}/* @media */

/* ----------------------------------------------------------
ABOUT > COMPANY
---------------------------------------------------------- */
.company-info {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0px 40px;
}
.company-info > div {
display: flex;
flex-direction: column;
}
.company-info dt {
color: #7a7a7a;
font-size: .9em;
}
.company-info dd {
margin-bottom: 2em;
}
.company-info > div:last-child {
grid-column: span 2;
}

@media(max-width:736px){
.company-info {
grid-template-columns: 1fr;
gap: 0;
}
.company-info > div:last-child {
grid-column: 1;
}
.company-info dd {
margin-bottom: 1.5em;
}
}/* @media */

/* ----------------------------------------------------------
ABOUT > CLIENT
---------------------------------------------------------- */
.client-list {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px 40px;
list-style: none;
margin: 40px 0 0;
}
@media (max-width: 768px) {
.client-list {
grid-template-columns: repeat(2, 1fr);
gap: 1.8em 2em;
margin: 0px 0 0;
line-height: 1.4;
font-size: .9em;
}
}/* @media */

/* ----------------------------------------------------------
VIMEO
---------------------------------------------------------- */
/* 埋め込みブロックのラッパーを調整 */
.wp-block-embed.is-provider-vimeo {
max-width: none !important;
width: 100% !important;
margin-left: 0 !important;
margin-right: 0 !important;
margin-bottom: 1rem !important; /* 動画の下に余白追加 */
}
.wp-block-embed.is-provider-vimeo .wp-block-embed__wrapper {
position: relative;
width: 100% !important;
padding-bottom: 56.25%; /* 16:9のアスペクト比 */
height: 0;
overflow: hidden;
}
.wp-block-embed.is-provider-vimeo iframe {
position: absolute;
top: 0;
left: 0;
width: 100% !important;
height: 100% !important;
margin: 0 !important;
border: 0;
}
/* Vimeo iframeに直接クラスが付いている場合 */
iframe.vimeo-fullwidth {
width: 100% !important;
height: auto !important;
aspect-ratio: 16 / 9;
max-width: none !important;
}
/* レスポンシブ対応 */
@media (max-width: 768px) {
.wp-block-embed.is-provider-vimeo .wp-block-embed__wrapper {
padding-bottom: 56.25%; /* 16:9を維持 */
}
}/* @media */


/* ----------------------------------------------------------
contact
---------------------------------------------------------- */
.contact-form {
}
.contact-form p {
margin: 0;
}
.contact-form dt {
margin-bottom: 0.2em;
}
.contact-form dt span:before{
content: '*';
color: red;
}
.contact-form dt p {
font-size: 0.9rem;
font-weight: 400;
letter-spacing: 0.06em;
color: #666666;
}
.contact-form dd {
margin-bottom: 2em;
}
/* セレクトボックス（現状未使用でも既存定義を維持） */
.contact-form select {
appearance: none;
width: 100%;
padding: 0.75em 0.75em;
border-radius: 3px;
color: #333333;
font-size: 16px;
cursor: pointer;
outline: none;
border: 1px solid #dddddd;
background: #ffffff;
position: relative;
box-sizing: border-box;
}
/* テキスト系の入力欄：白背景＋下線のみ */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="url"],
.contact-form input[type="tel"],
.contact-form input[type="number"] {
appearance: none;
width: 100%;
padding: 0.75em 0.75em;
font-size: 16px;
border-radius: 3px;
outline: none;
border: 1px solid #dddddd;
background: #ffffff;
box-sizing: border-box;
}
.contact-form input[type="text"]:focus,
.contact-form input[type="email"]:focus,
.contact-form input[type="url"]:focus,
.contact-form input[type="tel"]:focus,
.contact-form input[type="number"]:focus,
.contact-form select:focus {
border-color: #000000;
}
.contact-form textarea {
width: 100%;
min-height: 10em;
padding: 0.75em 0.75em;
font-size: 16px;
border-radius: 3px;
outline: none;
border: 1px solid #dddddd;
background: #ffffff;
box-sizing: border-box;
resize: vertical;
}
.contact-form textarea:focus {
border-color: #000000;
}
/* ラジオボタン（壊れていた表示の修正） */
.contact-form .wpcf7-form-control.wpcf7-radio {
display: flex;
flex-wrap: wrap;
gap: 0.75em 1.5em;
}
.contact-form .wpcf7-list-item {
margin: 0;
}
.contact-form .wpcf7-list-item label {
display: inline-flex;
align-items: center;
gap: 0.4em;
font-size: 0.95rem;
cursor: pointer;
}
.contact-form input[type="radio"] {
appearance: auto;
width: auto;
height: auto;
margin: 0;
padding: 0;
border: none;
background: transparent;
accent-color: #000000;
}
/* 送信ボタン */
.contact-form input[type="submit"] {
background: #000000;
color: #ffffff;
border: 1px solid #000000;
width: 100%;
margin: 4em 0 0;
display: block;
padding: 1.4em 0;
cursor: pointer;
font-size: 1.1em;
font-weight: 600;
border-radius: 3px;
position: relative;
-webkit-appearance: none;
transition: background 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out;
}
.contact-form input[type="submit"]:hover {
background: #ffffff;
color: #000000;
border-color: #000000;
}
/* CF7 メッセージ色は既存仕様を踏襲 */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
border: 0;
padding: 0;
margin: 0;
color: red;
}
.wpcf7 form.sent .wpcf7-response-output {
border: 0;
padding: 0;
margin: 0;
color: #0085ff;
}


/* ----------------------------------------------------------
footer
---------------------------------------------------------- */
footer{
font-family: "Montserrat";
}
footer a,
footer a:visited{
color: #fff !important;
}
.site-footer {
background-color: #000;
padding: 60px 3% 20px;
font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
color: #fff;
}
.footer-container {
margin: 0 auto;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 40px;
margin-bottom: 60px;
padding: 0 2%;
}
.footer-column {
display: flex;
flex-direction: column;
}
.footer-heading {
font-weight: 600;
margin: 0 0 20px 0;
color: #afafaf;
display: flex;
align-items: center;
gap: 8px;
font-size: .9em;
}
.icon-community {
}
.footer-links {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 12px;
}
.footer-links li {
line-height: 1.5;
}
.footer-links a {
color: #fff;
gap: 6px;
transition: opacity 0.2s;
display: inline-block;
width: 100%;
}
.footer-links a:hover {
opacity: 0.6;
}
.footer-access {
grid-column: 4;
}
.footer-address {
font-style: normal;
line-height: 1.8;
margin-bottom: 2em;
}
.footer-address p {
margin: 0;
}
.footer-bottom {
margin: 0 2%;
padding: 20px 0 ;
}
.footer-copyright {
font-size: .8em;
color: #4d4d4d;
margin: 0;
}
.footer-mail-link{
margin: 0 2%;
width: 70vw;
}
.footer-mail-link-tit{
font-size: 1.8em;
margin-bottom: 1em;
}
.footer-mail-link img{
transition: ease-in-out .2s;
}
.footer-mail-link img:hover{
opacity: .6;
}
.toast {
position: fixed !important;
bottom: 20px !important;
left: 50% !important;
transform: translateX(-50%);
background: #333;
color: #fff;
padding: 12px 24px;
border-radius: 4px;
opacity: 0;
pointer-events: none;
z-index: 9999;
}
.toast.show {
opacity: 1;
}

@media (max-width: 768px) {
.footer-container {
grid-template-columns: repeat(2, 1fr);
gap: 30px;
}
/* 左カラム: About Us */
.footer-column:nth-child(1) {
grid-column: 1;
grid-row: 1;
}
/* 右カラム: Community */
.footer-column:nth-child(2) {
grid-column: 2;
grid-row: 1;
}
/* Connect - 左下 */
.footer-column:nth-child(3) {
grid-column: 1;
grid-row: 2;
}
/* Access - 右下（Connectの右） */
.footer-access {
grid-column: 2;
grid-row: 2;
}
.footer-mail-link-tit{
font-size: 1.3em;
}
.footer-mail-link {
margin: 0 2%;
width: 96%;
}
}/* @media */

