/*
Theme Name: loubte
Theme URI: https://loubte.com
Author: loubte
Author URI: https://loubte.com
Description: loubte オリジナルWordPressテーマ
Version: 3.0
License: Private
Text Domain: loubte
*/
.about-page{position:relative}
.about-section{position:relative;z-index:1}
.about-typography-block{padding:100px 40px;display:flex;align-items:center;justify-content:center;min-height:40vh;}
.about-typo-text{font-family:var(--font-serif);font-style:italic;font-size:clamp(40px,7vw,80px);line-height:1.4;color:var(--fg);font-weight:400;letter-spacing:0.01em;text-align:center;}
@media(max-width:768px){.about-typography-block{padding:60px 20px;min-height:30vh}
.about-typo-text{font-size:clamp(28px,8vw,48px)}
}
.scroll-indicator{display:flex;flex-direction:column;align-items:center;gap:10px;position:fixed;bottom:40px;left:50%;transform:translateX(-50%);z-index:50;opacity:0;transition:opacity 0.6s ease;pointer-events:none;}
.scroll-indicator.is-visible{opacity:1}
.scroll-indicator-line{display:block;width:1px;height:48px;background:linear-gradient(to bottom,transparent,var(--fg));animation:scrollLine 1.8s ease-in-out infinite;transform-origin:top center;}
@keyframes scrollLine{0%{transform:scaleY(0);opacity:0}
40%{transform:scaleY(1);opacity:1}
100%{transform:scaleY(1);opacity:0;transform:scaleY(1) translateY(10px)}
}
.scroll-indicator-text{font-size:9px;letter-spacing:0.22em;color:var(--muted);font-family:var(--font-body);text-transform:uppercase;}
@media(max-width:768px){.scroll-indicator{display:none}
}
.hero-left{position:relative;overflow:hidden}
.hero-diag{position:absolute;inset:-100px;background-image:repeating-linear-gradient(45deg,transparent,transparent 40px,#c8c4be 40px,#c8c4be 41px),repeating-linear-gradient(-45deg,transparent,transparent 40px,#d0ccc7 40px,#d0ccc7 41px);opacity:0.4;-webkit-mask-image:radial-gradient(ellipse 70% 70% at 30% 40%,black 20%,transparent 80%);mask-image:radial-gradient(ellipse 70% 70% at 30% 40%,black 20%,transparent 80%);pointer-events:none;z-index:0;}
.hero-watermark{position:absolute;top:50%;left:50%;transform:translate(-50%,-54%);font-family:var(--font-serif);font-style:italic;font-size:clamp(160px,22vw,260px);font-weight:400;color:rgba(0,0,0,0.045);line-height:1;white-space:nowrap;pointer-events:none;z-index:0;user-select:none;transition:opacity 1.2s ease;}
.hero-content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;height:100%;}
@media(max-width:768px){.hero-vlines{display:none}
.hero-watermark{font-size:120px;opacity:0.03}
}
.archive-page{padding:60px 40px 80px;max-width:1400px;margin:0 auto}
.archive-header{padding-bottom:48px;border-bottom:1px solid var(--border);margin-bottom:48px}
.archive-label{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.archive-title{font-family:var(--font-serif);font-size:clamp(36px,5vw,64px);font-weight:400;line-height:1.05}
.archive-filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:48px}
.filter-btn{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:6px 16px;border:1px solid var(--border);border-radius:20px;transition:all 0.3s ease}
.filter-btn:hover,.filter-btn.is-active{color:var(--fg);border-color:var(--fg)}
.archive-filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:48px}
.filter-btn{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:6px 16px;border:1px solid var(--border);border-radius:20px;transition:all 0.3s ease}
.filter-btn:hover,.filter-btn.is-active{color:var(--fg);border-color:var(--fg)}
.archive-grid{padding:0}
.archive-nav{display:flex;justify-content:space-between;padding:40px 0;font-size:12px;letter-spacing:0.1em;text-transform:uppercase}
.archive-nav a{color:var(--muted);text-decoration:none;transition:color 0.2s}
.archive-nav a:hover{color:var(--fg)}
@media(max-width:768px){.archive-page{padding:32px 20px 60px}
.archive-title{font-size:clamp(28px,8vw,42px)}
}
@keyframes pageIn{from{opacity:0;transform:translateY(12px)}
to{opacity:1;transform:translateY(0)}
}
.page-transition-out{opacity:0;transform:translateY(-8px);transition:opacity 0.4s ease,transform 0.4s ease;pointer-events:none;}
body{animation:pageIn 0.8s cubic-bezier(0.16,1,0.3,1) both}
.nav-mobile-overlay{position:fixed;top:8px;left:8px;right:8px;bottom:8px;background:#ffffff;border-radius:16px;box-shadow:0 8px 48px rgba(0,0,0,0.10);z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:100px;opacity:0;pointer-events:none;transform:scale(0.97);transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1),transform 0.9s cubic-bezier(0.16,1,0.3,1);}
.nav-mobile-overlay.is-open{opacity:1;pointer-events:auto;transform:scale(1);}
.nav-mobile-close{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:50%;background:#f2f2f2;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:#888;transition:background 0.2s;line-height:1;}
.nav-mobile-close:hover{background:#e4e4e4}
.nav-mobile-overlay ul{list-style:none;text-align:center;padding:0;margin:0;}
.nav-mobile-overlay ul li a{display:block;font-family:var(--font-serif);font-size:clamp(28px,7vw,44px);font-weight:400;letter-spacing:0.01em;color:#111;padding:8px 0;text-decoration:none;opacity:0;transform:translateY(16px);transition:opacity 0.7s cubic-bezier(0.16,1,0.3,1),transform 0.7s cubic-bezier(0.16,1,0.3,1),color 0.2s;}
.nav-mobile-overlay.is-open ul li a{opacity:1;transform:translateY(0)}
.nav-mobile-overlay ul li:nth-child(1) a{transition-delay:0.12s}
.nav-mobile-overlay ul li:nth-child(2) a{transition-delay:0.20s}
.nav-mobile-overlay ul li:nth-child(3) a{transition-delay:0.28s}
.nav-mobile-overlay ul li:nth-child(4) a{transition-delay:0.36s}
.nav-mobile-overlay ul li:nth-child(5) a{transition-delay:0.44s}
.nav-mobile-overlay ul li a:hover{color:#888}
.nav-mobile-social{display:flex;gap:24px;margin-top:36px;opacity:0;transform:translateY(12px);transition:opacity 0.7s ease 0.52s,transform 0.7s cubic-bezier(0.16,1,0.3,1) 0.52s;}
.nav-mobile-overlay.is-open .nav-mobile-social{opacity:1;transform:translateY(0)}
.nav-mobile-social a{color:#aaa;display:flex;transition:color 0.2s}
.nav-mobile-social a:hover{color:#111}
*{margin:0;padding:0;box-sizing:border-box}:root{--fg:#111;--bg:#ececec;--muted:#888;--border:#d8d5d0;--font-body:'DM Sans',sans-serif;--font-serif:'EB Garamond',Georgia,serif;}
html{background:#ececec}
body{background:#ececec;color:var(--fg);font-family:var(--font-body);font-size:14px;letter-spacing:0.01em;min-height:100vh;overflow-x:hidden;display:flex;flex-direction:column}
.about-page,.news-page,.blog-page,.page-content{flex:1}
.footer-wrap{margin-top:auto}
a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5,h6{font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
*[class*="title"],*[class*="headline"],*[class*="name"]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.hero-title,.about-headline,.contact-headline,.work-name,.single-work-title,.about-member-name,.news-title{font-weight:400!important}
.fade-in{opacity:0;transform:translateY(20px);transition:opacity 1.2s cubic-bezier(0.16,1,0.3,1),transform 1.2s cubic-bezier(0.16,1,0.3,1);transition-delay:var(--delay,0s);}
.fade-in.is-shown{opacity:1;transform:translateY(0)}
@keyframes fadeInFallback{to{opacity:1;transform:none}
}
.fade-in{animation:fadeInFallback 0s 2s both}
.admin-bar nav{top:32px}
@media screen and (max-width:782px){.admin-bar nav{top:46px}
}
nav{display:flex;justify-content:space-between;align-items:center;padding:28px 40px;position:sticky;top:0;background:var(--bg);z-index:100;border-bottom:1px solid var(--border);transition:border-color 0.3s}
.nav-magic-line{position:absolute;bottom:0;height:1px;background:var(--fg);transition:left 0.35s cubic-bezier(0.16,1,0.3,1),width 0.35s cubic-bezier(0.16,1,0.3,1),opacity 0.2s ease;opacity:0;pointer-events:none}
.nav-links{position:relative;display:flex;gap:32px}
nav.scrolled{border-color:var(--border)}
.nav-logo{display:flex;align-items:center;font-family:'Alex Brush',cursive;font-size:38px;letter-spacing:0.02em;color:var(--fg);line-height:1}
.nav-links{display:flex;gap:32px;list-style:none}
.nav-links a{font-size:13px;letter-spacing:0.14em;color:var(--fg);transition:color 0.2s;text-transform:uppercase;position:relative}
.nav-links a:hover{color:#000}
.nav-links a.active,.nav-links .current-menu-item a{color:#000;font-weight:500}
.hero{padding:48px 40px 0;display:grid;grid-template-columns:1fr 0.7fr;gap:32px;align-items:center}
.hero-label{font-size:10px;letter-spacing:0.15em;color:var(--muted);text-transform:uppercase;margin-bottom:16px}
.hero-num{font-family:var(--font-serif);font-size:clamp(64px,10vw,120px);line-height:0.9;color:#ccc;font-style:italic;pointer-events:none;user-select:none;transition:opacity 1.2s ease}
.hero-title{font-family:var(--font-serif);font-size:clamp(36px,5vw,64px);line-height:1.05;margin-top:-16px;font-weight:400}
.hero-title span{display:block}
.hero-meta{margin-top:24px;display:flex;gap:24px;align-items:center}
.hero-tag{font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);padding:5px 12px}
.hero-link{font-size:12px;letter-spacing:0.08em;text-transform:uppercase;border-bottom:1px solid var(--fg);padding-bottom:2px;transition:opacity 0.2s}
.hero-link:hover{opacity:0.5}
.hero-img-wrap{width:100%;padding-top:133.33%;overflow:hidden;position:relative;cursor:default;display:block}
.hero-img-wrap canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;cursor:crosshair}
.hero-img-wrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-slide{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 3s ease-in-out;pointer-events:none}
.hero-slide--active{opacity:1;pointer-events:auto}
.hero-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.hero-img-caption{position:absolute;bottom:16px;right:16px;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.7)}
.ticker-wrap{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:40px 0 0;padding:10px 0}
.ticker{display:flex;white-space:nowrap;animation:ticker 50s linear infinite}
.ticker:hover{animation-play-state:paused}
@keyframes ticker{from{transform:translateX(0)}
to{transform:translateX(-50%)}
}
.ticker-item{display:inline-flex;align-items:center;gap:24px;padding:0 24px;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted)}
.ticker-dot{width:4px;height:4px;border-radius:50%;background:var(--border);flex-shrink:0}
.works{padding:80px 40px 120px}
.works-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:32px}
.works-heading{font-family:var(--font-serif);font-size:13px;letter-spacing:0.12em;text-transform:uppercase}
.works-count{font-size:11px;color:var(--muted)}
.works-grid{display:grid;grid-template-columns:repeat(3,1fr);background:var(--bg)}
.work-item{background:var(--bg);padding:24px;cursor:pointer;transition:background 0.2s;display:flex;flex-direction:column;height:320px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.work-item:nth-child(3n){border-right:none}
.work-item:nth-last-child(-n+3){border-bottom:none}
.work-item:hover{background:#e2e2e2}
.work-thumb{width:100%;flex:1;overflow:hidden;margin-bottom:14px}
.work-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94),filter 0.5s ease}
.work-item:hover .work-thumb img{transform:scale(1.03);filter:grayscale(100%)}
.work-info{flex-shrink:0}
.work-num{font-size:10px;color:var(--muted);margin-bottom:4px;letter-spacing:0.08em}
.work-name{font-family:var(--font-serif);font-size:18px;line-height:1.2;margin-bottom:4px}
.work-cat{font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted)}
.about-strip{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:100px 40px;border-top:1px solid var(--border)}
.about-label{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
.about-text{font-family:var(--font-serif);font-size:clamp(18px,2.5vw,26px);line-height:1.5}
.about-cta{margin-top:28px}
.about-cta a{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;border-bottom:1px solid var(--fg);padding-bottom:2px;display:inline-flex;align-items:center;gap:10px;transition:opacity 0.2s;}
.about-cta a:hover{opacity:0.5}
.about-cta a .arrow{display:inline-block;width:7px;height:7px;border-right:1px solid var(--fg);border-top:1px solid var(--fg);transform:rotate(45deg);flex-shrink:0;margin-bottom:1px;}
.about-cta a img,.about-cta a svg:not(.arrow-svg),.about-cta a::after{display:none!important}
.service-row{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--border);font-size:13px}
.service-row:first-child{border-top:1px solid var(--border)}
.service-num{font-size:10px;color:var(--muted);width:28px}
.service-name{flex:1;padding-left:8px}
.service-tag{font-size:10px;color:var(--muted);letter-spacing:0.08em}
.footer-wrap{position:relative;overflow:hidden}
.footer-wave{display:block;width:100%;line-height:0;overflow:hidden}
.footer-wave svg{width:200%;height:80px;display:block;animation:wave-move 8s linear infinite}
@keyframes wave-move{from{transform:translateX(0)}
to{transform:translateX(-50%)}
}
footer{display:flex;justify-content:space-between;align-items:center;padding:28px 40px;background:#fff;border-top:none}
footer.footer-no-wave{background:var(--bg);border-top:none}
.footer-wrap:not(:has(.footer-wave)){background:var(--bg)}
.footer-copy{font-size:10px;color:#000000;letter-spacing:0.08em}
.footer-icons{display:flex;gap:20px;align-items:center}
.footer-icons a{display:flex;align-items:center;justify-content:center;color:var(--muted);transition:color 0.2s}
.footer-icons a:hover{color:var(--fg)}
.footer-icons svg{width:18px;height:18px;fill:currentColor}
.to-top{position:fixed;bottom:32px;right:80px;cursor:pointer;z-index:200;opacity:0;pointer-events:none;transition:opacity 0.4s ease;background:none;border:none;padding:8px;}
.to-top.visible{opacity:1;pointer-events:all}
.to-top .icon-dash,.to-top .icon-arrow{display:block;font-size:18px;color:var(--fg);line-height:1;transition:opacity 0.25s ease,transform 0.25s ease;font-family:var(--font-body);letter-spacing:0;}
.to-top .icon-arrow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) translateY(4px);opacity:0;width:10px;height:10px;border-left:1px solid var(--fg);border-top:1px solid var(--fg);rotate:45deg;margin-top:3px;}
.to-top:hover .icon-dash{opacity:0;transform:translateY(-4px)}
.to-top:hover .icon-arrow{opacity:1;transform:translate(-50%,-50%) translateY(0)}
.news-page{padding:60px 40px 100px}
.news-page-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:40px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.news-page-label{font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted)}
.news-page-count{font-size:11px;color:var(--muted)}
.news-list{display:flex;flex-direction:column}
.news-item{display:grid;grid-template-columns:40px 140px 1fr 24px;align-items:center;gap:24px;padding:20px 0;border-bottom:1px solid var(--border);transition:background 0.2s;text-decoration:none;color:inherit;}
.news-item:first-child{border-top:1px solid var(--border)}
.news-item:hover{background:rgba(0,0,0,0.02);padding-left:8px;padding-right:8px;margin:0 -8px}
.news-item-num{font-size:10px;color:var(--muted);letter-spacing:0.08em}
.news-item-date{font-size:11px;color:var(--muted);letter-spacing:0.06em;white-space:nowrap}
.news-item-title{font-family:var(--font-serif);font-size:17px;line-height:1.4}
.news-item-arrow{display:flex;justify-content:flex-end}
.news-item-arrow .arrow{display:inline-block;width:7px;height:7px;border-right:1px solid var(--muted);border-top:1px solid var(--muted);transform:rotate(45deg);transition:border-color 0.2s,transform 0.2s;}
.news-item:hover .news-item-arrow .arrow{border-color:var(--fg);transform:rotate(45deg) translate(1px,-1px);}
.news-empty{padding:60px 0;font-family:var(--font-serif);font-size:16px;color:var(--muted)}
@media(max-width:768px){.news-page{padding:40px 20px 80px}
.news-item{grid-template-columns:32px 1fr 20px;gap:12px}
.news-item-date{display:none}
.news-item-title{font-size:15px}
}
.single-work-hero{padding:60px 40px 40px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.single-work-meta{padding-top:8px}
.single-work-label{font-size:10px;letter-spacing:0.15em;color:var(--muted);text-transform:uppercase;margin-bottom:24px}
.single-work-title{font-family:var(--font-serif);font-size:clamp(32px,5vw,64px);line-height:1.05;margin-bottom:24px}
.single-work-tags{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px}
.single-work-tag{font-size:10px;letter-spacing:0.1em;text-transform:uppercase;border:1px solid var(--border);padding:5px 12px;color:var(--muted)}
.single-work-desc{font-family:var(--font-serif);font-size:18px;line-height:1.7;color:#444}
.single-work-body{margin-top:24px;font-size:15px;line-height:1.8;color:#333}
.single-work-body p{margin-bottom:16px}
.single-work-body img{max-width:280px;height:auto;display:block}
.single-work-img{width:100%}
.single-work-img img{width:100%;height:auto;display:block}
.single-work-content{padding:0 40px 80px;max-width:900px}
.single-work-content img{width:100%;margin:32px 0}
.work-nav{display:flex;justify-content:space-between;padding:32px 40px;border-top:1px solid var(--border)}
.work-nav a{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;border-bottom:1px solid var(--fg);padding-bottom:2px;transition:opacity 0.2s}
.work-nav a:hover{opacity:0.5}
.news-page{padding:60px 40px 100px}
.news-page-header{margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.news-page-label{font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted)}
.news-list{max-width:900px}
.news-item{display:grid;grid-template-columns:140px 1fr 24px;align-items:center;gap:24px;padding:20px 0;border-bottom:1px solid var(--border);transition:opacity 0.2s;color:var(--fg)}
.news-item:first-child{border-top:1px solid var(--border)}
.news-item:hover{opacity:0.5}
.news-date{font-size:11px;letter-spacing:0.08em;color:var(--muted);flex-shrink:0}
.news-title{font-family:var(--font-serif);font-size:16px;line-height:1.5}
.news-arrow{display:block;width:7px;height:7px;flex-shrink:0;border-right:1px solid var(--muted);border-top:1px solid var(--muted);transform:rotate(45deg);justify-self:end}
.news-empty{font-family:var(--font-serif);font-size:16px;color:var(--muted);padding:40px 0}
.about-nav-bar{position:sticky;top:72px;display:flex;align-items:center;justify-content:center;gap:0;height:44px;background:var(--bg);border-bottom:1px solid var(--border);z-index:90;transition:background 0.6s ease;}
.about-nav-items{display:flex;align-items:center;gap:0;height:100%}
.about-nav-item{font-size:11px;letter-spacing:0.1em;color:var(--muted);padding:0 20px;height:100%;display:flex;align-items:center;transition:color 0.2s;cursor:pointer;text-decoration:none;position:relative;}
.about-nav-item.active{color:var(--fg)}
.about-nav-item.active::after{content:'';position:absolute;bottom:-1px;left:20px;right:20px;height:1px;background:var(--fg);}
.about-page{padding:0}
@keyframes revealFallback{to{opacity:1;transform:translateY(0)}
}
.reveal{opacity:0;transform:translateY(24px);transition:opacity 1.6s cubic-bezier(0.16,1,0.3,1),transform 1.6s cubic-bezier(0.16,1,0.3,1);animation:revealFallback 0s 3.5s both;}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal-zoom{opacity:0;transform:scale(1.08) translateY(28px);transition:opacity 2s cubic-bezier(0.16,1,0.3,1),transform 2s cubic-bezier(0.16,1,0.3,1);will-change:opacity,transform;}
.reveal-zoom.is-visible{opacity:1;transform:scale(1) translateY(0)}
.reveal-delay-1{transition-delay:0.2s}
.reveal-delay-2{transition-delay:0.45s}
.reveal-delay-3{transition-delay:0.7s}
.reveal-delay-4{transition-delay:0.95s}
.reveal-delay-5{transition-delay:1.2s}
.about-section{padding:120px 40px;border-bottom:1px solid var(--border)}
.about-section:last-child{border-bottom:none}
.about-section-inner{display:grid;grid-template-columns:80px 1fr;gap:40px;max-width:900px}
.about-section-num{font-family:var(--font-serif);font-size:11px;letter-spacing:0.1em;color:var(--muted);padding-top:4px}
.about-headline{font-weight:400;line-height:1.2}
.about-headline-ja{display:block;font-family:var(--font-serif);font-size:clamp(28px,4vw,52px);margin-bottom:16px;letter-spacing:0.02em}
.about-headline-en{display:block;font-family:var(--font-serif);font-style:italic;font-size:clamp(16px,2vw,26px);color:var(--muted);line-height:1.6}
.about-section-title{font-family:var(--font-serif);font-size:13px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:32px;font-weight:400}
.about-text-block{font-family:var(--font-serif);font-size:15px;line-height:1.9;color:#444}
.about-text-block p{margin-bottom:1em}
.about-member{display:grid;grid-template-columns:280px 1fr;gap:40px;align-items:start}
.about-member-img{width:100%;aspect-ratio:4/3;overflow:hidden}
.about-member-img img{width:100%;height:100%;object-fit:cover}
.about-member-name{font-family:var(--font-serif);font-size:20px;margin-bottom:6px}
.about-member-role{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.about-member-base{font-size:11px;color:var(--muted)}
.about-info-grid{margin-bottom:32px}
.about-info-row{display:flex;gap:32px;padding:14px 0;border-bottom:1px solid var(--border);font-size:12px}
.about-info-row:first-child{border-top:1px solid var(--border)}
.about-info-label{width:64px;flex-shrink:0;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted)}
.about-info-value{color:var(--fg);font-family:var(--font-serif);font-size:14px}
.about-page-social{display:flex;gap:20px;align-items:center}
.about-page-social a{display:flex;align-items:center;justify-content:center;color:var(--muted);transition:color 0.2s}
.about-page-social a:hover{color:var(--fg)}
.about-page-social svg{width:18px;height:18px;fill:currentColor}
.blog-page{padding:60px 40px 100px}
.blog-page-header{margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.blog-page-label{font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted)}
.blog-note-link{margin-bottom:48px}
.blog-note-btn{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;border-bottom:1px solid var(--fg);padding-bottom:2px;display:inline-flex;align-items:center;gap:10px;transition:opacity 0.2s}
.blog-note-btn:hover{opacity:0.5}
.blog-note-btn .arrow{display:inline-block;width:7px;height:7px;border-right:1px solid var(--fg);border-top:1px solid var(--fg);transform:rotate(45deg);flex-shrink:0}
.blog-list{max-width:900px}
@media(max-width:768px){.blog-page{padding:40px 20px 80px}
}
.page-content{padding:60px 40px 80px;max-width:800px}
.page-content h1{font-family:var(--font-serif);font-size:clamp(32px,5vw,56px);margin-bottom:32px;line-height:1.1}
.page-content p{font-family:var(--font-serif);font-size:18px;line-height:1.8;margin-bottom:24px;color:#444}
.contact-page{padding:0;flex:1}
.contact-section{padding:80px 40px 100px}
.contact-section-inner{display:grid;grid-template-columns:1fr 1.6fr;gap:80px;max-width:1100px;align-items:start}
.contact-label{font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}
.contact-headline{font-family:var(--font-serif);font-size:clamp(36px,5vw,64px);font-weight:400;line-height:1.05;margin-bottom:24px}
.contact-sub{font-family:var(--font-serif);font-size:15px;line-height:1.8;color:#555;margin-bottom:48px}
.contact-sub span{display:block;font-style:italic;color:var(--muted)}
.contact-info{padding-top:40px;border-top:1px solid var(--border)}
.contact-info-item{font-size:12px;color:var(--muted);letter-spacing:0.04em;margin-bottom:6px}
.contact-info-social{display:flex;gap:16px;margin-top:20px;align-items:center}
.contact-info-social a{display:flex;align-items:center;color:var(--muted);transition:color 0.2s}
.contact-info-social a:hover{color:var(--fg)}
.contact-info-social svg{width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important;fill:currentColor;flex-shrink:0;display:block}
.contact-form{display:flex;flex-direction:column;gap:0}
.contact-field{border-bottom:1px solid var(--border);padding:20px 0;display:grid;grid-template-columns:140px 1fr;gap:16px;align-items:center}
.contact-field:first-child{border-top:1px solid var(--border)}
.contact-field-label{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted)}
.req{color:var(--fg)}
.contact-field input,.contact-field select,.contact-field textarea{background:none;border:none;outline:none;font-family:var(--font-serif);font-size:15px;color:var(--fg);width:100%;padding:0;resize:none;-webkit-appearance:none;box-shadow:none}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--border)}
.contact-field select{cursor:pointer}
.contact-field textarea{line-height:1.8;padding-top:4px}
.contact-submit{margin-top:40px;display:inline-flex;align-items:center;gap:12px;background:none;border:none;border-bottom:1px solid var(--fg);cursor:pointer;padding:0 0 4px;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--fg);transition:opacity 0.2s;align-self:flex-start}
.contact-submit:hover{opacity:0.5}
.contact-submit-arrow{display:inline-block;width:7px;height:7px;border-right:1px solid var(--fg);border-top:1px solid var(--fg);transform:rotate(45deg);flex-shrink:0}
.wpcf7 .wpcf7-form{display:flex;flex-direction:column;gap:0}
.wpcf7 p{border-bottom:1px solid var(--border);padding:20px 0;display:grid;grid-template-columns:140px 1fr;gap:16px;align-items:center;margin:0}
.wpcf7 p:first-of-type{border-top:1px solid var(--border)}
.wpcf7 label{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted)}
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 select,.wpcf7 textarea{background:none;border:none;outline:none;font-family:var(--font-serif);font-size:15px;color:var(--fg);width:100%;padding:0;resize:none;-webkit-appearance:none;box-shadow:none}
.wpcf7 input[type="submit"]{margin-top:40px;background:none;border:none;border-bottom:1px solid var(--fg);cursor:pointer;padding:0 0 4px;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--fg);transition:opacity 0.2s}
.wpcf7 input[type="submit"]:hover{opacity:0.5}
@media(max-width:768px){.contact-section{padding:60px 20px 80px}
.contact-section-inner{grid-template-columns:1fr;gap:48px}
.contact-field{grid-template-columns:1fr;gap:8px;padding:16px 0}
.wpcf7 p{grid-template-columns:1fr;gap:8px;padding:16px 0}
}
.nav-hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;width:36px;height:36px;gap:5px;cursor:pointer;background:none;border:none;padding:0;z-index:200;position:relative;}
.nav-hamburger span{display:block;width:22px;height:1px;background:var(--fg);transition:transform 0.3s ease,opacity 0.3s ease;transform-origin:center;}
.nav-hamburger.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-hamburger.is-open span:nth-child(2){opacity:0}
.nav-hamburger.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:1024px){.works-grid{grid-template-columns:1fr 1fr 1fr}
.hero{gap:32px}
}
@media(max-width:768px){nav{padding:18px 20px}
.nav-links{display:none}
.nav-hamburger{display:flex}
.hero{grid-template-columns:1fr;padding:24px 20px 0;gap:20px;min-height:auto;}
.hero-left{order:2}
.hero-right{order:1}
.hero-title{font-size:clamp(36px,10vw,56px)}
.hero-num{font-size:clamp(72px,18vw,120px)}
.hero-img-wrap{padding-top:75%;min-height:auto}
.works{padding:32px 20px 60px}
.works-header{padding-bottom:16px}
.works-grid{grid-template-columns:1fr 1fr;gap:12px}
.work-item{height:auto}
.work-thumb{aspect-ratio:3/4}
.about-strip{grid-template-columns:1fr;gap:40px;padding:40px 20px}
footer{flex-direction:column;gap:12px;padding:20px;text-align:center}
.footer-links{justify-content:center}
.news-page{padding:40px 20px 80px}
.news-item{grid-template-columns:80px 1fr;gap:12px}
.news-arrow{display:none}
.news-date{font-size:10px}
.news-title{font-size:14px}
.blog-page{padding:40px 20px 80px}
.contact-section{padding:40px 20px 80px}
.contact-section-inner{grid-template-columns:1fr;gap:32px}
.contact-field{grid-template-columns:1fr;gap:8px;padding:14px 0}
.about-section{padding:72px 20px}
.about-section-inner{grid-template-columns:32px 1fr;gap:16px}
.about-member{grid-template-columns:1fr;gap:20px}
.about-member-img{aspect-ratio:4/3}
.about-info-table{gap:0}
.about-info-row{grid-template-columns:80px 1fr;padding:14px 0}
.single-work-hero{grid-template-columns:1fr;padding:32px 20px}
.single-work-content{padding:0 20px 60px}
.work-nav{padding:20px;flex-direction:column;gap:8px}
.work-nav-item{font-size:11px}
.about-headline-ja,.about-headline-en{font-size:clamp(28px,7vw,48px)}
.contact-headline{font-size:clamp(28px,7vw,48px)}
}