/*
Template:ystandard
Theme Name:ystandard-child
Theme URI: https://wp-ystandard.com
Author: yosiakatsuki
Author URI: https://yosiakatsuki.net
Description:「自分色に染めた、自分だけのサイトを作る楽しさ」を感じてもらうために作った一風変わったWordPressテーマ「ystandard」の子テーマ
Version: 4.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/

/*
==============================================================================
  TABLE OF CONTENTS
  01. Tokens / Utilities
  02. Typography (Headings / Text)
  03. Layout (Header / Footer / Global)
      03-1. Header
      03-2. Mobile Navigation
      03-3. Footer
  04. Components
      04-1. Section Head
      04-2. CTA Box
      04-3. CTA Box (3 Columns)
      04-4. Page Hero
      04-5. Main Visual (Top)
      04-6. Background Grain
      04-7. About / Link Section
      04-8. Animations (Wipe / Parallax)
      04-9. Thumbnail img
  05. Pages
      05-1. Archive
      05-2. Company
      05-3. Contact
  06. Plugins
      06-1. Back to Top
      06-2. TranslatePress
==============================================================================
*/

/* ==========================================================================
   01. Tokens / Utilities
   ========================================================================== */

:root{
  --ink: #2C3E50;
}

.uppercase{ text-transform: uppercase; }
.no-caps{ text-transform: none !important; }
.font-min{ font-family: "Noto Serif JP", serif; font-weight: bold; }

.ystdb-column-block-container{ margin-top: 0 !important; margin-bottom: 0 !important; }

/* ==========================================================================
   02. Typography (Headings / Text)
   ========================================================================== */

/* Colors for headings */
.entry-content h1,
.entry-content h2,
.entry-content h3{ color: var(--ink); }

/* H2 (body default) – exclude section heads */
.entry-content h2:not(.section-head__title){
  font-size: clamp(20px, 3.6vw, 36px) !important;
  line-height: 1.4;
  margin: 1.2em 0 .8em;
}

/* H3 (body) */
.entry-content h3{
  font-size: clamp(20px, 3vw, 24px);
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin: 1.4em 0 .4em;
}

/* Section lead */
.section-head__lead{
  grid-area: lead;
  margin: 0;
  font-size: clamp(15px, 2vw, 18px) !important;
  line-height: 1.9;
  letter-spacing: 0.01em;
}

/* Paragraphs */
.entry-content p{
  font-size: clamp(14px, 1.6vw, 16px);
  line-height: 1.9;
  letter-spacing: 0.01em;
  margin: 0 0 1.2em;
}

/* Lists (reset top margin when preceded by .section-head__lead) */
.ystdb-column-block-container > ul.wp-block-list{ margin-top: 0; }

/* Big section title */
.ystdtb .entry-content h2.section-head__title{
  font-family: "Noto Serif JP", serif;
  font-size: clamp(36px, 9vw, 80px) !important;
  line-height: 1;
  margin: 0 0 40px;
  letter-spacing: 0;
}

/* Singular title */
.singular-header__title{
  font-size: clamp(26px, 5vw, 38px) !important;
  line-height: 1.3;
  margin: 32px 0 0;
  color: var(--ink);
}

/* Modifiers */
.entry-content h2.h2-border-left{
  padding-left: 22px;
  background: linear-gradient(var(--ink), var(--ink)) no-repeat 0 70% / 8px 70%;
}

.entry-content .is-clear-style{
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  letter-spacing: inherit;
}

.entry-content .cta-box__title.is-ja{
  font-size: clamp(17px, 2.4vw, 28px);
  line-height: 1.4;
}

/* Typography – Responsive tweaks */
@media (max-width: 768px){
  .ystdtb .entry-content h2.section-head__title{ margin-bottom: 24px; }
  .singular-header__title{
    font-size: clamp(22px, 5vw, 30px) !important;
    margin: 24px 0 .6em;
  }
}
@media (max-width: 599px){
  .entry-content :is(p, li){
    font-size: max(14px, 3.8vw);
    line-height: 1.9;
    letter-spacing: 0.02em;
  }
  .entry-content li li{ font-size: .95em; }
}

/* ==========================================================================
   03. Layout (Header / Footer / Global)
   ========================================================================== */

/* 03-1. Header */
.site-header .container,
.site-header .ystdb-section__inner,
.site-header .l-container,
.site-header .header__inner{
  max-width: 1920px !important;
  margin-inline: auto !important;
  padding-inline: 40px !important;
}
@media (max-width:768px){
  .site-header .container,
  .site-header .ystdb-section__inner,
  .site-header .l-container,
  .site-header .header__inner{ padding-inline: 16px !important; }
}

/* Fit inner boxes inside header */
.site-header .container,
.site-header .site-header__header__inner{
  height: 100%;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

/* Logo sizing */
.site-header .site-branding img,
.site-header .site-logo img{
  max-height: calc(var(--ys-site-header-height) - 16px);
  height: auto;
}

.is-overlay .site-header{ background: transparent !important; }

/* 03-2. Mobile Navigation (hamburger & stack) */
.menu-stack p,
.footer-right p{ margin: 0 !important; }

.menu-stack p + p,
.footer-right p + p{ margin-top: 16px !important; }
@media (max-width: 768px){
  .menu-stack p + p,
  .footer-right p + p{ margin-top: 12px !important; }
}

.menu-stack a{
  position: relative;
  display: inline-block;
  text-decoration: none;
  color: inherit;
  transition: opacity .3s ease;
}
.menu-stack a:hover{ opacity: .7; }
menu-stack
@media (max-width: 768px){
  .ystdb-column img.wp-image-154{ max-width: 180px; height: auto; }
}

/* BUSINESS row (stack) */
.menu-stack .footer-business > .wp-block-group__inner-container{
  display: flex;
  align-items: flex-start;
  gap: .6em;
  flex-wrap: wrap;
  column-gap: .6em;
  row-gap: .2em;
}
.menu-stack .footer-business p,
.menu-stack .footer-business details{
  margin: 0;
  flex: 0 0 auto;
}

/* + / - toggle */
.menu-stack .footer-business details > summary{
  list-style: none;
  cursor: pointer;
  padding: 0;
  margin: 0;
  font-weight: 700;
  line-height: 1;
}
.menu-stack .footer-business details > summary::-webkit-details-marker{ display: none; }
.menu-stack .footer-business details > summary::after{ content: '＋'; }
.menu-stack .footer-business details[open] > summary::after{ content: '－'; }

/* Open/close anim */
.menu-stack .footer-business details > *:not(summary){
  max-height: 0; opacity: 0;
  transition: max-height .3s ease, opacity .2s ease;
}
.menu-stack .footer-business details[open] > *:not(summary){
  max-height: 240px; opacity: 1;
}

/* List inside accordion */
.menu-stack .footer-business .wp-block-list{
  list-style: none;
  padding-left: 0;
  margin: .5em 0 0;
  font-size: clamp(15px, 4vw, 18px);
  line-height: 1.6;
  text-transform: none;
  word-break: break-word;
}

/* Spacing with neighbors */
.menu-stack p + .footer-business,
.menu-stack .footer-business + p{ margin-top: 12px !important; }

/* Hamburger icon */
.global-nav__toggle{ margin-right: 35px; }
.global-nav__toggle::after{ content: none !important; display: none !important; }
.global-nav__toggle .ys-icon svg{ width: 40px; height: 38px; }
.global-nav__toggle .ys-icon svg .l1,
.global-nav__toggle .ys-icon svg .l2,
.global-nav__toggle .ys-icon svg .l3{
  transform: none !important;
  opacity: 1 !important;
  transition: transform .18s ease, opacity .18s ease;
  transform-box: fill-box;
  transform-origin: center;
}
.global-nav__toggle:not(.is-open) .ys-icon svg .l2{ opacity: 0 !important; }
.global-nav__toggle:not(.is-open) .ys-icon svg .l1{ transform: translateY(2px) !important; }
.global-nav__toggle:not(.is-open) .ys-icon svg .l3{ transform: translateY(-2px) !important; }
.global-nav__toggle.is-open .ys-icon svg .l1{ opacity: 1 !important; transform: translateY(8px) rotate(45deg) !important; }
.global-nav__toggle.is-open .ys-icon svg .l3{ opacity: 1 !important; transform: translateY(-8px) rotate(-45deg) !important; }
.global-nav__toggle.is-open .ys-icon svg .l2{ opacity: 0 !important; }

@media (max-width: 768px){
  .global-nav__toggle{ margin-right: 12px; }
}
@media (max-width: 783px){
  .global-nav__toggle{ margin-top: 0 !important; }
  .site-header .container{
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
}

/* 03-3. Footer */
.footer-right,
.menu-stack{
  font-size: 40px;
  line-height: 1.2;
  font-family: "Noto Serif JP", serif;
  text-transform: uppercase;
}

.footer-right .ystdb-section__inner > * + *{ margin-top: 0; }

.site-footer .container{
  max-width: none !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding-inline: 0 !important;
}
.site-footer .footer-widget__container{
  max-width: 1920px !important;
  width: 100%;
  margin: 0 auto !important;
  padding-inline: 24px;
  display: flex;
  justify-content: space-between;
  gap: 80px;
}
@media (max-width: 768px){
  .footer-widget img{ max-width: 160px!important; height: auto; }
}
@media (min-width: 600px){
  .site-footer .footer-widget__container{
    margin-left: auto !important; margin-right: auto !important;
  }
}
@media (max-width: 768px){
  .footer-right, .menu-stack{ font-size: 24px; line-height: 1.3; }
  .site-footer .footer-widget__container{
    display: flex; flex-direction: column; gap: 24px; padding-inline: 16px; max-width: 100%;
  }
  .site-footer .footer-widget__column{ width: 100%; }
  .footer-right{ text-align: left; margin-left: 0; }
  .footer-left p + p{ margin-top: 8px; }
}

.footer-right a{ position: relative; display: inline-block; color: #fff; transition: opacity .3s ease; }
.footer-right a:hover{ opacity: .7; }

#footer-copy{ text-align: left; padding-left: 40px; padding-right: 40px; }
@media (max-width: 768px){ #footer-copy{ text-align: center; padding: 0; } }

@media (max-width: 768px) {#block-9,#block-12 {font-size: clamp(13px, 3.5vw, 22px);line-height: 1.4;}}

/* Footer BUSINESS (PC, single line) */
.site-footer .footer-right .footer-business > .wp-block-group__inner-container{
  display: flex; align-items: baseline; gap: .6em; flex-wrap: nowrap;
}
.site-footer .footer-right .footer-business p,
.site-footer .footer-right .footer-business details{ margin: 0; flex: 0 0 auto; }
.site-footer .footer-right .footer-business details > summary{
  list-style: none; cursor: pointer; padding: 0; margin: 0; font-weight: 700;
}
.site-footer .footer-right .footer-business details > summary::-webkit-details-marker{ display: none; }
.site-footer .footer-right .footer-business details > summary::after{ content: '＋'; }
.site-footer .footer-right .footer-business details[open] > summary::after{ content: '－'; }
.site-footer .footer-right .footer-business details > *:not(summary){
  max-height: 0; opacity: 0; transition: max-height .3s ease, opacity .2s ease;
}
.site-footer .footer-right .footer-business details[open] > *:not(summary){
  max-height: 240px; opacity: 1;
}
.site-footer .footer-right .footer-business .wp-block-list{
  list-style: none; padding-left: 0; margin: .5em 0 0;
  font-size: clamp(16px, 2vw, 20px); line-height: 1.6; text-transform: none;
}
.site-footer .footer-right .footer-business .wp-block-list li + li{ margin-top: .3em; }
.footer-right p + .footer-business,
.footer-right .footer-business + p{ margin-top: 16px !important; }

@media (max-width: 768px){
  .site-footer .footer-right .footer-business > .wp-block-group__inner-container{
    flex-wrap: wrap; column-gap: .6em; row-gap: .2em;
  }
  .footer-right p + .footer-business,
  .footer-right .footer-business + p{ margin-top: 12px !important; }
}

/* Global content spacing */
.site-content{ margin-top: 0; margin-bottom: 0; }
.page .entry-content{ margin-top: 0; margin-bottom: 0; }
.archive__page-title{ display: none; }

/* ==========================================================================
   04. Components
   ========================================================================== */

/* 04-1. Section Head */
.section-head{
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "title  action"
    "lead   action";
  column-gap: clamp(18px,3vw,36px);
  align-items: start;
}
.section-head__title{ grid-area: title; }
.section-head__lead{  grid-area: lead; }
.section-head__action{ grid-area: action; }

@media (max-width:768px){
  .section-head{
    grid-template-columns: 1fr;
    grid-template-areas: "title" "lead" "action";
    row-gap: 16px;
  }
  .section-head__action{ justify-self: start; }
}

/* View more button */
.section-head__action{
  --btn-size: 44px; --btn-border: 1.5px; --hover-fill: var(--ink);
  position: relative; display: inline-block; align-self: start;
  padding-right: calc(var(--btn-size) + 8px);
  text-decoration: none; text-transform: uppercase; letter-spacing: .12em;
  font-size: 13px; line-height: 1; color: var(--ink); padding-top: 30px;
}
.section-head__action::after{
  content: ""; position: absolute; right: 0; top: .05em;
  width: var(--btn-size); height: var(--btn-size); border-radius: 50%;
  border: var(--btn-border) solid var(--hover-fill); background: transparent;
  z-index: 1; transition: transform .25s ease, background-color .25s ease, border-color .25s ease;
}
.section-head__action::before{
  content: "→"; position: absolute;
  right: calc(var(--btn-size)/2 - 1px);
  top: calc(.05em + var(--btn-size)/2);
  transform: translate(50%,-50%); font-size: 16px; color: var(--ink);
  z-index: 2; transition: transform .25s ease, color .25s ease;
}
.section-head__action:hover{ color: var(--ink) !important; }
.section-head__action:hover::after{ background-color: var(--hover-fill); border-color: var(--hover-fill); transform: translateX(4px); }
.section-head__action:hover::before{ color: #fff; transform: translate(calc(50% + 4px), -50%); }
.section-head__action:active::after{ background-color: var(--hover-fill); border-color: var(--hover-fill); transform: translateX(2px); }
.section-head__action:active::before{ color: #fff; transform: translate(calc(50% + 2px), -50%); }
.section-head__action-wrap{ display: flex; justify-content: flex-end; }

/* 04-2. CTA Box */
.cta-box.size-s{
  --pad-y: clamp(14px, 2.2vw, 24px);
  --pad-x: clamp(14px, 3vw, 32px);
}
.cta-box.size-m{ /* 既定 */ }

.cta-box.size-l{
  --pad-y: clamp(24px, 5vw, 56px);
  --pad-x: clamp(20px, 6vw, 72px);
}

.cta-box.size-xl{
  --pad-y: clamp(32px, 6vw, 80px);
  --pad-x: clamp(24px, 8vw, 96px);
}

.cta-box.size-s .cta-arrow{ --btn-size: 40px; }
.cta-box.size-xl .cta-arrow{ --btn-size: 52px; }

.cta-box{
  --pad-y: clamp(18px, 3vw, 36px);
  --pad-x: clamp(16px, 4vw, 48px);
  --bg: #eaeaea;
  --gap: clamp(12px, 3vw, 24px);

  display: flex; justify-content: space-between; align-items: center;
  gap: var(--gap); width: 100%; padding: var(--pad-y) var(--pad-x);
  background: var(--bg); text-decoration: none; color: inherit;
  margin-top: clamp(16px, 5vw, 40px); margin-bottom: 0;
}
.cta-box__text{ flex: 1 1 auto; text-align: center; }
.cta-box.is-left .cta-box__text{ text-align: left; }
.cta-box.is-center .cta-box__text{ text-align: center; }

.entry-content .cta-box__title{
  margin: 0 0 8px; color: var(--ink);
  font-size: clamp(20px, 2.8vw, 40px); line-height: 1.25; letter-spacing: .02em;
}
.entry-content .cta-box__lead{
  margin: 0; color: var(--ink);
  font-size: clamp(14px, 1.4vw, 24px); line-height: 1.6;
}

/* CTA arrow */
.cta-arrow{
  --btn-size: 44px; --btn-border: 1.5px; --fill: var(--ink);
  position: relative; display: inline-block; width: var(--btn-size); height: var(--btn-size);
  flex: 0 0 var(--btn-size);
}
.cta-arrow::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  border: var(--btn-border) solid var(--fill); background: transparent;
  transition: transform .25s ease, background-color .25s ease, border-color .25s ease;
}
.cta-arrow::before{
  content:"→"; position:absolute; left:50%; top:50%;
  transform: translate(-45%, -50%); font-size:16px; line-height:1; color: var(--fill);
  transition: transform .25s ease, color .25s ease; z-index:1;
}

.cta-box:hover{
  background: #e0e0e0; box-shadow: 0 2px 6px rgba(0,0,0,.06);
  transform: translateY(-1px); transition: all .25s ease;
}
.cta-box:hover .cta-arrow::after,
.cta-box:active .cta-arrow::after{ background-color: var(--fill); border-color: var(--fill); transform: translateX(2px); }
.cta-box:hover .cta-arrow::before,
.cta-box:active .cta-arrow::before{ color:#fff; transform: translate(calc(-45% + 2px), -50%); }

.cta-arrow:hover::after,
.cta-arrow:active::after{ background-color: var(--fill); border-color: var(--fill); transform: translateX(2px); }
.cta-arrow:hover::before,
.cta-arrow:active::before{ color:#fff; transform: translate(calc(-45% + 2px), -50%); }

@media (max-width: 560px){
  .cta-box{ --btn-size: 40px; }
  .cta-box__title{ font-size: clamp(20px, 6vw, 32px); }
}

/* 04-3. CTA Box (3 Columns) */
.cta-box--col3{
  --pad-y: clamp(16px, 3vw, 36px);
  --pad-x: clamp(12px, 2.2vw, 24px);
  --gap:   clamp(8px, 1.6vw, 16px);

  position: relative; display: flex; flex-direction: column; align-items: center;
  justify-content: flex-start; flex: 1; text-align: center; gap: var(--gap);
  padding: var(--pad-y) var(--pad-x); padding-bottom: clamp(40px, 6vw, 56px);
  margin-top: 0; box-shadow: none; transform: none; transition: background-color .25s ease;
  border-radius: 0 !important;
}
.entry-content .cta-box--col3 .cta-box__title{
  margin: 16px 0 8px; font-size: clamp(18px, 2.2vw, 23px);
  line-height: 1.35; letter-spacing: .02em; color: var(--ink);
}
.entry-content .cta-box--col3 .cta-box__lead{
  margin: 0 0 16px; font-size: clamp(13px, 1.3vw, 16px); line-height: 1.6; color: var(--ink);
}
.cta-box--col3 .cta-box__text{ flex: 1 1 auto; }

/* arrow bottom-right */
.cta-box--col3 .cta-arrow{
  --btn-size: 36px; --btn-border: 1.5px; --fill: var(--ink);
  position: absolute; right: clamp(12px, 2vw, 20px); bottom: clamp(12px, 2vw, 20px);
  width: var(--btn-size); height: var(--btn-size); flex: 0 0 var(--btn-size); margin: 0;
}
.cta-box--col3 .cta-arrow::before{ font-size: 13px; }

@media (max-width: 560px){
  .cta-box--col3{
    --pad-y: 16px; --pad-x: 16px; --gap: 12px;
  }
  .cta-box--col3 .cta-arrow{ --btn-size: 34px; }
  .cta-box--col3 .cta-box__title{ font-size: clamp(16px, 4vw, 24px); }
  .cta-box--col3 .cta-box__lead { font-size: clamp(13px, 2.2vw, 18px); }

  .has-2-columns .cta-box--col3 .cta-box__title{ font-size: clamp(14px, 3.5vw, 22px); }
  .has-2-columns .cta-box--col3 .cta-box__lead { font-size: clamp(11px, 2vw, 15px); }
}


/* hover group */
.ystdb-column{ display: flex; flex-direction: column; }
.cta-group:has(.cta-hit:hover) .cta-box--col3,
.cta-group:has(.cta-box--col3:hover) .cta-box--col3,
.cta-group:has(.ystdb-column__link:hover) .cta-box--col3{ background: #e0e0e0; }
.cta-group:has(.cta-hit:hover) .cta-box--col3 .cta-arrow::after,
.cta-group:has(.cta-box--col3:hover) .cta-box--col3 .cta-arrow::after,
.cta-group:has(.ystdb-column__link:hover) .cta-box--col3 .cta-arrow::after{
  background-color: var(--fill); border-color: var(--fill); transform: translateX(2px);
}
.cta-group:has(.cta-hit:hover) .cta-box--col3 .cta-arrow::before,
.cta-group:has(.cta-box--col3:hover) .cta-box--col3 .cta-arrow::before,
.cta-group:has(.ystdb-column__link:hover) .cta-box--col3 .cta-arrow::before{
  color: #fff; transform: translate(calc(-45% + 2px), -50%);
}

/* ==== CTA Box：幕アニメーション ==== */
.cta-box {
  position: relative;
  overflow: hidden;
  --curtain-bg: rgba(255, 255, 255, 0.85);
  --curtain-dur: .55s;
  --curtain-edge: 15%;
}

.cta-box::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--curtain-bg);
  transform: translateX(0);
  pointer-events: none;
  -webkit-mask-image: linear-gradient(
    90deg,
    #000 0,
    #000 calc(100% - var(--curtain-edge)),
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    #000 0,
    #000 calc(100% - var(--curtain-edge)),
    transparent 100%
  );
}

.cta-box.is-inview::before {
  animation: curtain-left var(--curtain-dur) cubic-bezier(.8, 0, .2, 1) forwards;
}

.cta-box .cta-arrow {
  opacity: 0;
}
.cta-box.is-inview .cta-arrow {
  animation: cta-arrow-in .28s ease-out .35s forwards;
}

@keyframes curtain-left {
  to { transform: translateX(-102%); }
}
@keyframes cta-arrow-in {
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .cta-box::before { display: none !important; }
  .cta-box .cta-arrow { opacity: 1 !important; }
}

/* 04-4. Page Hero */
/* star */
.page-hero{
  --star-right: -4vw;
  --star-bottom: -15%;
  --star-width: min(50vw, 880px);
  --star-url: url("/wp-content/uploads/2025/09/page-hero.svg");
}

.page-hero::after{
  content:"";
  position:absolute;
  right: var(--star-right);
  bottom: var(--star-bottom);
  width: var(--star-width);
  aspect-ratio: 1.4 / 1;
  background: var(--star-url) no-repeat center/contain;
  pointer-events:none;
  z-index: 0;
}

@media (max-width:768px){
  .page-hero{ --star-right: -16vw; --star-bottom: -12%; --star-width: min(82vw, 640px); }
  .page-hero::after{ opacity: .5; }
}

.page-hero{
  --hero-h: clamp(180px, 22vw, 380px);
  --pad-x: clamp(16px, 6vw, 80px);
  --pad-y: clamp(20px, 4vw, 48px);

  position: relative; display: flex; align-items: center; justify-content: flex-start;
  min-height: var(--hero-h); padding: var(--pad-y) var(--pad-x);
  overflow: hidden; background: #fff;
}
.page-hero__inner{ display: block; width: 100%; text-align: left; }
.page-hero__title,
.page-hero h1.section-head__title{
  margin: 0; font-family: "Noto Serif JP", serif; font-weight: bold;
  color: var(--ink); line-height: 1.1; font-size: clamp(32px, 6.5vw, 80px);
  letter-spacing: inherit;
}
.page-hero__subtitle{
  margin-top: 8px; font-size: clamp(14px, 2vw, 24px); color: var(--ink); font-weight: 400;
}

/* optional border variant */
.page-hero--border{ border-bottom: 1px solid #2B2B2B; }

/* full-bleed helper */
.alignfull.page-hero.no-pad,
.alignfull.page-hero.no-pad .ystdb-section__inner,
.alignfull.page-hero.no-pad .container{ padding-left: 0 !important; padding-right: 0 !important; }
.page-hero + .site-content,
.page-hero + .container,
.page-hero + .container .site-content{ margin-top: 0 !important; }

@media (max-width:768px){
  .alignfull.page-hero.no-pad{
    padding-left: clamp(24px, 8vw, 36px) !important;
    padding-right: clamp(24px, 8vw, 36px) !important;
  }
}

/* 04-5. Main Visual (Top) */
.main-visual__title{
  font-size: clamp(32px, 6vw, 80px); line-height: 1.2;
  font-family: "Times New Roman", "Noto Serif JP", serif;
}
.main-visual__logo img{ width: clamp(160px, 24vw, 420px); height: auto; }
.main-visual__inner{ position: relative; top: 160px; }

@media (max-width: 768px){
  .main-visual__title{
    font-size: clamp(28px, 6vw, 40px); line-height: 1.25;
    padding: 0 12px; margin-top: 56px !important;
  }
  .main-visual__logo img{
    width: 85vw; max-width: 360px; height: auto; object-fit: contain; margin-bottom: 28px;
  }
  .main-visual__inner{
    position: static; top: auto; display: flex; flex-direction: column; align-items: center;
    justify-content: flex-start; gap: 20px; padding: 48px 0 40px;
  }
  .main-visual.alignfull{ margin: 0 !important; padding: 0 !important; }
  .main-visual__logo img{ max-width: 65vw; }
}

/* MV screen height on mobile */
@media (max-width: 768px){
  .mv, .mv.is-screen-height{ height: auto !important; min-height: 90svh !important; }
  @supports (height: 90dvh){ .mv, .mv.is-screen-height{ min-height: 90dvh !important; } }
  .mv .ystdb-section__inner{ min-height: inherit !important; padding-top: 0 !important; padding-bottom: 0 !important; }
}

/* Fade-in on load */
.main-visual__title, .logo{
  opacity: 0; transform: translateY(8px); transition: opacity .5s ease, transform .5s ease;
}
body.is-loaded .main-visual__title, body.is-loaded .logo{
  opacity: 1 !important; transform: none !important;
}

/* 04-6. Background Grain */
.mv{ position: relative; overflow: hidden; isolation: isolate; }
.mv > *{ position: relative; z-index: 11; }
.mv .ystdb-section__bg{ position: absolute; z-index: 0 !important; }

.mv.mv--grain{ --grain-alpha: .20; --grain-mode: multiply; --grain-mask: none; }
@media (max-width:599px){
  .mv.mv--grain{ --grain-alpha: .16; --grain-mode: soft-light; }
}

/* layers */
body.front-page .mv.mv--grain::before,
body.home       .mv.mv--grain::before,
body.front-page .mv.mv--grain::after,
body.home       .mv.mv--grain::after{
  content:""; position:absolute; inset:-3%; z-index:10; pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='1'/%3E%3C/filter%3E%3Crect width='64' height='64' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: var(--grain-mode); opacity: var(--grain-alpha);
  -webkit-mask-image: var(--grain-mask); mask-image: var(--grain-mask);
}
/* stop outside viewport */
body.front-page .mv.mv--grain:not(.is-anim)::before,
body.home       .mv.mv--grain:not(.is-anim)::before,
body.front-page .mv.mv--grain:not(.is-anim)::after,
body.home       .mv.mv--grain:not(.is-anim)::after{ animation: none !important; }

/* motion */
@keyframes grainLoopA{ 0%{transform:translate3d(-28px,22px,0) rotate(-.6deg);} 50%{transform:translate3d(36px,-30px,0) rotate(.8deg);} 100%{transform:translate3d(-28px,22px,0) rotate(-.6deg);} }
@keyframes grainLoopB{ 0%{transform:translate3d(32px,-24px,0) rotate(.5deg);} 50%{transform:translate3d(-40px,34px,0) rotate(-.7deg);} 100%{transform:translate3d(32px,-24px,0) rotate(.5deg);} }

body.front-page .mv.mv--grain.is-anim::before,
body.home       .mv.mv--grain.is-anim::before{ background-size:96px 96px; animation: grainLoopA 9s ease-in-out infinite; }
body.front-page .mv.mv--grain.is-anim::after,
body.home       .mv.mv--grain.is-anim::after{ background-size:144px 144px; animation: grainLoopB 12s ease-in-out infinite; }

/* 04-7. About / Link Section */
.entry-content .about-title{
  font-family: "Noto Serif JP", serif; font-weight: bold;
  font-size: clamp(24px, 3vw, 46px); line-height: 1.25; letter-spacing: .02em;
  margin-bottom: 56px;
}
.entry-content .about-text{
  font-size: clamp(15px, 1.8vw, 24px); line-height: 1.9; letter-spacing: .02em;
}
@media (max-width:768px){ .entry-content .about-title{ margin-bottom: 25px; } }

.my-cover .wp-block-cover__background{
  opacity: 0; transition: opacity .3s ease; background-color: #000; pointer-events: none;
}
.ystdb-column:has(.my-cover:hover) .my-cover .wp-block-cover__background,
.ystdb-column:has(.ystdb-column__link:hover) .my-cover .wp-block-cover__background,
.ystdb-column:hover .my-cover .wp-block-cover__background{ opacity: .1 !important; }

/* Link section visual */
.my-cover{
  background-image: url("your-image.jpg");
  background-size: cover; background-position: center; height: 60vh;
}

/* 04-8. Animations (Wipe / Parallax) */
.wipe-reveal{
  position: relative; overflow: hidden; --wipe-bg: #2B2B2B; --wipe-dur: 1s;
}
.wipe-reveal::before{
  content:""; position:absolute; inset:0; z-index:2; background: var(--wipe-bg);
  transform: translateY(0);
  transition: transform var(--wipe-dur) cubic-bezier(.22,.61,.36,1);
  pointer-events:none;
}
.wipe-reveal.is-revealed::before{ transform: translateY(-100%); }
.wipe-reveal > *{ position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce){
  .wipe-reveal::before{ transition: none; transform: translateY(-100%); }
}

.parallax-slow{
  position: relative; z-index: 1; will-change: transform;
  transform: translate3d(0, var(--py, 0px), 0);
}
.stack-over{ position: relative; z-index: 2; background: #fff; }

/* motion safety */
@media (prefers-reduced-motion: reduce){
  .parallax-slow{ transform: none !important; }
}
/* stop on mobile */
@media (hover: none) and (pointer: coarse), (max-width: 768px){
  .parallax-slow{ transform: none !important; translate: none !important; will-change: auto !important; }
}

/* 04-9. Thumbnail img */
body.home .ys-posts {
  --ystd-posts-thumbnail-width: 88px !important;
}

/* ==========================================================================
   05. Pages
   ========================================================================== */

/* 05-1. Archive */
.is-archive--list .page-hero,
.is-archive--card .page-hero{ margin-bottom: clamp(40px, 8vw, 80px) !important; }
body.single-post .site-content .container{ margin-top: clamp(16px, 2vw, 64px); }

@media (min-width: 769px) {
  .archive__main {
    margin-bottom: calc(var(--ystd-layout-gap) * 2.4);
  }
}

/* 05-2. Company */
@media (min-width:1025px){
  hr.wp-block-separator.alignfull.no-bleed{
    width:auto !important; margin-inline:auto; max-width:var(--ystd-container-width,1200px);
    padding:0 !important; height:auto; border:0; border-top:1px solid var(--separator-color, #E0E0E0);
    background:transparent !important; opacity:1;
  }
  hr.wp-block-separator.alignfull.no-bleed.has-background,
  hr.wp-block-separator.alignfull.no-bleed[class*="has-"][class*="-background-color"]{
    background:transparent !important;
  }
}

/* CEO block */
.ceo-block{ --gap: clamp(14px, 2vw, 20px); --gap-lg: clamp(18px, 3vw, 28px); --ink: var(--ink); }
.ceo-figure{ margin: 0; }
.ceo-figure img{ display:block; width:100%; height:auto; border-radius: 2px; }
.entry-content .ceo-meta__line{
  margin: 0; font-size: clamp(14px, 1.4vw, 16px); line-height: 1.8; letter-spacing: .02em;
}
.ceo-sign{ width: clamp(140px, 22vw, 220px); height:auto; opacity:.95; transform: translateY(-18px); }
.ceo-sign-wrap{ display:flex; flex-direction:column; align-items:flex-end; margin-top: clamp(8px, 1.8vw, 20px); }
.entry-content .ceo-furigana{
  margin: 0 0 6px; font-size: clamp(12px, 1.2vw, 14px); line-height: 1.6; letter-spacing: .06em;
  color: var(--ink); opacity:.8; text-align:center;
}
@media (min-width: 900px){
  .ceo-sign-wrap{ margin-top: clamp(8px, 2vw, 16px); }
  .ceo-furigana{ margin-bottom: 8px; }
}

/* Google Map */
.map-wrap .wp-embed-aspect-4-3.wp-has-aspect-ratio{
  position: relative; padding-top: 0 !important; height: 400px;
}
.map-wrap .wp-embed-aspect-4-3 .wp-block-embed__wrapper{ position: static; height: 100%; }
.map-wrap iframe{ width: 100% !important; height: 100% !important; border: 0; display: block; }
@media (max-width: 768px){ .map-wrap .wp-embed-aspect-4-3.wp-has-aspect-ratio{ height: 400px; } }

/* 05-3. Contact */
body.page-id-36 .content__main,
body.page-id-38 .content__main,
body.page-id-483 .content__main{
  margin-bottom: 0 !important; padding-bottom: 0 !important;
}
.required{ color: #e60033; font-size: .9em; white-space: nowrap; margin-left: 4px; }
label{ display: block; margin-bottom: 1em; }

.privacy-wrap{ margin: 1.2em 0; font-size: .95em; line-height: 1.6; }
.privacy-row{ display: flex; align-items: center; gap: 8px; margin-bottom: .3em; }
.privacy-row .wpcf7-list-item{ margin: 0 !important; }
.privacy-row .wpcf7-list-item label{ display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.privacy-link{ margin-top: 0; font-size: .9em; }
.privacy-link a{ color: #555; text-decoration: underline; }

/* Form fields */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea{
  width: 100%; padding: 14px 12px; font-size: 1rem; border: 1px solid #ccc; border-radius: 6px; box-sizing: border-box;
}

/* Submit button */
.wpcf7 input[type="submit"]{
  display: inline-block; background: var(--ink); color: #fff;
  font-size: clamp(1rem, 2.5vw, 1.2rem);
  padding: clamp(14px, 3.5vw, 18px) clamp(32px, 6vw, 48px);
  border: none; border-radius: 9999px; cursor: pointer; margin-top: 1.5em;
  transition: background .3s ease, transform .2s ease; text-align: center;
}
.wpcf7 input[type="submit"]:hover{ background: #1a252f; }
.wpcf7 input[type="submit"]:active{ transform: translateY(1px); }
@media (max-width: 768px){
  .wpcf7 input[type="submit"]{
    display: block; margin: 2em auto 0; min-width: 70%; padding: 18px 40px; font-size: 1.1rem;
  }
}

/* ==========================================================================
   06. Plugins
   ========================================================================== */

/* 06-1. Back to Top */
#back-to-top{
  opacity: 0; visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
#back-to-top.is-visible{ opacity: 1; visibility: visible; }

/* 06-2. TranslatePress */
.trp-flag-image{ display: none !important; }

.trp-floating-switcher{
  --font-size: 12px; --switcher-width: auto !important; --switcher-padding: 4px 6px;
  width: auto !important; opacity: 1; visibility: visible;
  transition: opacity .3s ease, visibility .3s ease;
}
.trp-floating-switcher:not(.is-visible){
  opacity: 0; visibility: hidden; pointer-events: none;
}
.trp-switcher-dropdown-list{ min-width: unset; width: auto; }
.trp-language-item-name{ font-weight: 500; letter-spacing: .02em; }
.trp-language-item{ gap: 4px; padding: 2px 16px; min-height: 16px; }

@media (max-width: 1024px){
  .trp-language-switcher.trp-floating-switcher{
    right: auto !important; left: auto !important; inset-inline-end: 60px !important;
  }
}
@media (max-width: 768px){
  body.home, body.front-page{ padding-top: 0 !important; margin-top: 0 !important; }
  .trp-language-switcher.trp-floating-switcher{
    position: fixed !important; top: 0 !important; bottom: auto !important;
    inset-block-end: auto !important; margin-top: 0 !important;
  }
}
