/* 庭綴工務店 — design casaの編集的構成を参照した架空サイト */
.is-builder-sample .header,
.is-builder-sample .footer,
.is-builder-sample .pagetop { display: none !important; }
.is-builder-sample { background: #fff; }
.builder-showcase.lower-page { padding-top: 0; }
.builder-showcase *, .builder-showcase *::before, .builder-showcase *::after { box-sizing: border-box; }
.builder-showcase figure, .builder-showcase p, .builder-showcase h1, .builder-showcase h2, .builder-showcase h3 { margin: 0; }
.builder-showcase img { display: block; max-width: 100%; }
.builder-showcase picture { display: block; width: 100%; height: 100%; }
.builder-showcase a { text-decoration: none; }
.builder-site {
  --ink: #20252a;
  --muted: #6f7478;
  --line: #d9dbdc;
  --accent: #eb542f;
  color: var(--ink);
  background: #fff;
  font-family: "Zen Maru Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: .055em;
}
.builder-site h1, .builder-site h2, .builder-site h3 {
  font-family: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 500;
}
.builder-disabled-link { cursor: default !important; pointer-events: none !important; }
.builder-shell { width: min(calc(100% - 6rem), 114rem); margin-inline: auto; }
.builder-samplebar {
  display: none;
  min-height: 4.4rem;
  align-items: center;
  justify-content: space-between;
  padding: .8rem max(2rem, calc((100% - 132rem) / 2));
  color: #e9ecee;
  background: #1e2428;
  font: 500 1rem/1.4 "Zen Maru Gothic", sans-serif;
  letter-spacing: .09em;
}
.builder-samplebar p { display: flex; align-items: center; gap: 1rem; }
.builder-samplebar p span { color: #a9b4ba; font: 600 .86rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .18em; }
.builder-samplebar > span { color: #aeb6bb; font-size: .9rem; }

/* local header */
.builder-local-header {
  position: fixed;
  z-index: 10;
  top: 0;
  right: 0;
  left: 0;
  display: flex;
  min-height: 9rem;
  align-items: center;
  justify-content: space-between;
  padding: 0 4rem;
  color: #fff;
  border-bottom: 0;
  background: transparent;
  transition: color .25s ease, background .25s ease, box-shadow .25s ease;
}
.builder-local-header.is-scrolled { color: #171a1c; background: rgba(245,245,243,.96); box-shadow: 0 1px 0 rgba(28,31,33,.08); backdrop-filter: blur(10px); }
.builder-brand { display: inline-flex; align-items: center; gap: 1rem; color: #fff; }
.builder-brand__mark { position: relative; display: block; width: 3.8rem; height: 3.8rem; }
.builder-brand__mark i { position: absolute; bottom: .3rem; width: .9rem; background: #fff; transform: skewY(-28deg); }
.builder-brand__mark i:nth-child(1) { left: .2rem; height: 2.4rem; }
.builder-brand__mark i:nth-child(2) { left: 1.4rem; height: 3.2rem; }
.builder-brand__mark i:nth-child(3) { left: 2.6rem; height: 1.9rem; }
.builder-brand strong, .builder-brand small { display: block; }
.builder-brand strong { font: 700 2.4rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: -.02em; }
.builder-brand small { margin-top: .45rem; color: rgba(255,255,255,.72); font: 500 .65rem/1 "Zen Maru Gothic", sans-serif; letter-spacing: .2em; }
.builder-local-header nav { display: flex; align-items: center; gap: clamp(1.8rem, 2.3vw, 3.5rem); }
.builder-local-header nav a, .builder-local-header__cta { color: #fff; font-size: 1.2rem; font-weight: 500; letter-spacing: .04em; }
.builder-local-header nav a { padding: 3.2rem 0; }
.builder-local-header__cta { display: grid; min-height: 3.4rem; place-items: center; padding: 0 2rem; border-radius: 999px; color: #fff; background: #0e0f10; }
.builder-menu { display: grid; width: 3.4rem; gap: .8rem; margin-left: -.5rem; }
.builder-menu i { width: 100%; height: 1px; background: #fff; }
.builder-local-header.is-scrolled .builder-brand,
.builder-local-header.is-scrolled nav a { color: #171a1c; }
.builder-local-header.is-scrolled .builder-brand small { color: #5c6164; }
.builder-local-header.is-scrolled .builder-menu i { background: #171a1c; }

/* hero */
.builder-hero { position: relative; isolation: isolate; min-height: 100svh; overflow: hidden; color: #fff; background: #273038; }
.builder-hero__slides, .builder-hero__slides figure { position: absolute; inset: 0; }
.builder-hero__slides figure { opacity: 0; animation: builderFade 24s infinite; }
.builder-hero__slides figure:nth-child(1) { opacity: 1; animation-delay: 0s; }
.builder-hero__slides figure:nth-child(2) { animation-delay: 6s; }
.builder-hero__slides figure:nth-child(3) { animation-delay: 12s; }
.builder-hero__slides figure:nth-child(4) { animation-delay: 18s; }
.builder-hero__slides img { width: 100%; height: 100%; object-fit: cover; animation: builderZoom 24s infinite; }
.builder-hero__slides figure:nth-child(1) img { object-position: center 52%; }
.builder-hero__slides figure:nth-child(2) img { object-position: center 58%; animation-delay: 6s; }
.builder-hero__slides figure:nth-child(3) img { object-position: center 56%; animation-delay: 12s; }
.builder-hero__slides figure:nth-child(4) img { object-position: center 48%; animation-delay: 18s; }
@keyframes builderFade { 0%,23%{opacity:1} 27%,100%{opacity:0} }
@keyframes builderZoom { from{transform:scale(1.02)} 25%,to{transform:scale(1.075)} }
.builder-hero__shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,rgba(18,25,29,.06),rgba(18,25,29,0) 55%,rgba(12,17,20,.42)); }
.builder-hero__captions { position: absolute; z-index: 2; inset: 0; pointer-events: none; }
.builder-hero__pickup { position: absolute; bottom: 5.5rem; left: 5.8rem; width: min(55rem, calc(100% - 11.6rem)); opacity: 0; animation: builderCaption 24s infinite; pointer-events: auto; }
.builder-hero__pickup:nth-child(1) { opacity: 1; animation-delay: 0s; }
.builder-hero__pickup:nth-child(2) { animation-delay: 6s; }
.builder-hero__pickup:nth-child(3) { animation-delay: 12s; }
.builder-hero__pickup:nth-child(4) { animation-delay: 18s; }
@keyframes builderCaption {
  0% { opacity: 0; transform: translateY(1.8rem); }
  3%, 22% { opacity: 1; transform: translateY(0); }
  25%, 100% { opacity: 0; transform: translateY(-1rem); }
}
.builder-hero__pickup::after { display: block; width: 100%; height: 1px; margin-top: 1rem; background: rgba(255,255,255,.72); content: ""; }
.builder-hero__pickup > p { display: flex; align-items: center; gap: 1rem; font: 600 1rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .08em; }
.builder-hero__pickup > p i { width: 1px; height: 1.4rem; background: rgba(255,255,255,.7); }
.builder-hero h1, .builder-hero__pickup h2 { margin-top: 1rem; font-size: 2.6rem; line-height: 1.5; letter-spacing: .1em; text-shadow: 0 2px 12px rgba(0,0,0,.18); }
.builder-hero__pickup > a { position: absolute; right: 0; bottom: .8rem; display: inline-flex; align-items: center; gap: 1.5rem; color: #fff; font: 600 .85rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .13em; }
.builder-hero__dots { display: none; }
.builder-hero__dots i { width: .55rem; height: .55rem; border: 1px solid #fff; border-radius: 50%; animation: builderDot 24s infinite; }
.builder-hero__dots i:nth-child(2){animation-delay:6s}.builder-hero__dots i:nth-child(3){animation-delay:12s}.builder-hero__dots i:nth-child(4){animation-delay:18s}
@keyframes builderDot { 0%,24%{background:#fff;box-shadow:0 0 0 .5rem rgba(255,255,255,.16)} 25%,100%{background:transparent;box-shadow:none} }
.builder-hero__scroll { position: absolute; z-index: 2; right: 3rem; bottom: 3rem; display: flex; align-items: center; gap: 1rem; font: 500 .7rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .18em; writing-mode: vertical-rl; }
.builder-hero__scroll i { width: 1px; height: 4rem; background: rgba(255,255,255,.7); }

/* shared headings */
.builder-short-line { display: block; width: 2.4rem; height: 1px; background: var(--accent); }
.builder-section-head { margin-bottom: 7rem; }
.builder-section-head h2 { margin-top: 1.3rem; font-family: "Helvetica Neue", Arial, sans-serif; font-size: 2.8rem; font-weight: 700; line-height: 1.2; letter-spacing: 0; }
.builder-section-head p { margin-top: 1rem; font-size: 1.25rem; }
.builder-view-all, .builder-inline-link { display: inline-flex; align-items: center; justify-content: space-between; width: 25rem; padding: 1.6rem .4rem; border-bottom: 1px solid #313638; font-size: 1.15rem; }
.builder-view-all b, .builder-inline-link b { font-size: 1.6rem; font-weight: 400; }

/* concept */
.builder-concept { min-height: 91.9rem; padding: 12rem 0 11rem; background: #efefef; }
.builder-concept__grid { display: grid; grid-template-columns: 43% 1fr; gap: 13%; }
.builder-wordmark { margin-top: 2.5rem; color: #111416; font: 700 2.2rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: -.02em; }
.builder-concept__visual h2 { margin-top: 2.5rem; font-size: clamp(2.7rem, 2.65vw, 3.7rem); line-height: 1.62; letter-spacing: .09em; }
.builder-concept__visual h2 span { display: block; }
.builder-concept__en { margin-top: 2rem; color: #858b8f; font: 500 1rem/1.7 "Helvetica Neue", Arial, sans-serif; letter-spacing: .04em; }
.builder-concept__visual figure { width: 36rem; margin-top: 4rem; }
.builder-concept__visual img { width: 100%; height: auto; object-fit: contain; }
.builder-concept__body { padding-top: 9rem; color: #4e565a; font-size: 1.45rem; line-height: 2.25; }
.builder-concept__body p + p { margin-top: 3.5rem; }
.builder-concept__body small { display: block; margin-bottom: 1.5rem; color: #20262a; font-size: 1.15rem; font-weight: 700; letter-spacing: .12em; }
.builder-concept__body b { color: #20262a; font-weight: 500; }
.builder-inline-link { margin-top: 5rem; }
.builder-inline-link i { font-family: "Helvetica Neue", Arial, sans-serif; font-style: normal; font-weight: 600; }

/* study */
.builder-study { padding: 8rem 0 13rem; overflow: hidden; background: #efefef; }
.builder-study .builder-shell { width: auto; margin-right: 0; margin-left: max(3rem, calc((100vw - 114rem) / 2)); }
.builder-study .builder-section-head { margin-right: max(3rem, calc((100vw - 114rem) / 2)); }
.builder-study__drag { display: flex; align-items: center; gap: 1.4rem; margin: -4rem max(3rem, calc((100vw - 114rem) / 2)) 2.5rem auto; color: #7a8083; font: 600 .85rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .12em; }
.builder-study__drag span { color: var(--accent); font-size: 1.5rem; }
.builder-study__grid { display: grid; grid-auto-columns: min(42rem, 34vw); grid-auto-flow: column; gap: 3.2rem; padding: 0 max(3rem, calc((100vw - 114rem) / 2)) 3rem 0; overflow-x: auto; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-snap-type: inline mandatory; scrollbar-width: thin; scrollbar-color: #9ca0a2 transparent; cursor: grab; user-select: none; }
.builder-study__grid.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.builder-study-card { scroll-snap-align: start; }
.builder-study-card figure { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: #d8dbdc; }
.builder-study-card figure::after { position: absolute; right: 1.6rem; bottom: 1.6rem; width: 1rem; height: 1rem; border-right: 1px solid #fff; border-bottom: 1px solid #fff; opacity: 0; content: ""; transform: translate(-1rem,-1rem); transition: opacity .35s ease, transform .35s ease; }
.builder-study-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8) contrast(.96); transform: translate3d(var(--move-x,0),var(--move-y,0),0) scale(1.035); transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.builder-study-card:hover img { filter: saturate(.95) contrast(1); transform: translate3d(var(--move-x,0),var(--move-y,0),0) scale(1.075); }
.builder-study-card:hover figure::after { opacity: 1; transform: translate(0,0); }
.builder-study-card:nth-child(2) img, .builder-study-card:nth-child(5) img { object-position: 78% center; }
.builder-study-card:nth-child(3) img, .builder-study-card:nth-child(6) img { object-position: center 65%; }
.builder-study-card h3 { margin-top: 1.5rem; font-family: "Zen Maru Gothic", sans-serif; font-size: 1.65rem; letter-spacing: .08em; }
.builder-study-card__meta { display: flex; margin-top: .9rem; color: #555d61; font-size: 1rem; }
.builder-study-card__meta span + span { margin-left: 1rem; padding-left: 1rem; border-left: 1px solid #b8bcbf; }
.builder-study-card__tags { margin-top: .6rem; color: #92979a; font-size: .95rem; letter-spacing: .04em; }
.builder-study-card__tags::first-letter { color: var(--accent); }
.builder-study .builder-view-all { margin-top: 5rem; }

/* craftspeople */
.builder-craft { padding-bottom: 8rem; overflow: hidden; background: #fff; }
.builder-craft__hero { position: relative; display: grid; height: 46rem; place-items: center; color: #fff; background: linear-gradient(rgba(25,31,33,.42),rgba(25,31,33,.42)), var(--builder-craft-image) center 56%/cover; }
.builder-craft__hero > div { text-align: center; }
.builder-craft__hero h2 { font-family: "Helvetica Neue", Arial, sans-serif; font-size: 2.8rem; font-weight: 700; letter-spacing: 0; }
.builder-craft__hero h3 { margin-top: 1.5rem; font-size: 2.7rem; letter-spacing: .16em; }
.builder-craft__hero p { margin-top: .8rem; font: 500 1rem/1.5 "Helvetica Neue", Arial, sans-serif; letter-spacing: .05em; }
.builder-craft__disciplines { display: grid; width: min(calc(100% - 6rem), 114rem); grid-template-columns: repeat(3,1fr); margin: 0 auto; border-right: 1px solid #d4d6d7; }
.builder-craft__disciplines article { min-height: 24rem; padding: 5rem 5.5rem; border-left: 1px solid #d4d6d7; }
.builder-craft__disciplines small { color: #8a8f92; font: 600 .9rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .12em; }
.builder-craft__disciplines h4 { margin: 2rem 0 0; font-family: "Shippori Mincho", "Yu Mincho", serif; font-size: 2.7rem; font-weight: 500; letter-spacing: .18em; }
.builder-craft__disciplines p { margin-top: 2rem; color: #6f7578; font-size: 1.15rem; line-height: 2; }

/* films / social */
.builder-films { padding: 11rem 0 13rem; background: #fff; }
.builder-films__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 4rem; }
.builder-film small { display: block; margin-bottom: 1rem; font: 600 .95rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .07em; }
.builder-film figure { position: relative; overflow: hidden; aspect-ratio: 16/9; }
.builder-film img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78); transform: translate3d(var(--move-x,0),var(--move-y,0),0) scale(1.035); transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.builder-film:hover img { filter: saturate(.95); transform: translate3d(var(--move-x,0),var(--move-y,0),0) scale(1.085); }
.builder-film figure i { transition: transform .4s ease, background .4s ease; }
.builder-film:hover figure i { background: rgba(235,84,47,.72); transform: translate(-50%,-50%) scale(1.1); }
.builder-film figure i { position: absolute; top: 50%; left: 50%; display: grid; width: 7rem; height: 7rem; place-items: center; padding-left: .4rem; color: #fff; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; background: rgba(25,31,33,.28); font-style: normal; transform: translate(-50%,-50%); }
.builder-film h3 { margin-top: 1.6rem; font-family: "Zen Maru Gothic", sans-serif; font-size: 1.45rem; }
.builder-social { padding: 10rem 0 13rem; background: #efefef; }
.builder-social__grid { display: grid; grid-template-columns: repeat(5,1fr); gap: .8rem; }
.builder-social__grid figure { overflow: hidden; aspect-ratio: 1; }
.builder-social__grid img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.74); transform: translate3d(var(--move-x,0),var(--move-y,0),0) scale(1.04); transition: transform .6s ease, filter .4s ease; }
.builder-social__grid figure:hover img { filter: saturate(.95); transform: translate3d(var(--move-x,0),var(--move-y,0),0) scale(1.09); }
.builder-social__grid figure:nth-child(2) img { object-position: 78% center; }

/* news / request */
.builder-news { padding: 9rem 0 12rem; }
.builder-news__list { border-top: 1px solid var(--line); }
.builder-news__list p { display: grid; min-height: 7.6rem; grid-template-columns: 12rem 1fr 8rem; align-items: center; gap: 2rem; padding: 0 1.5rem; border-bottom: 1px solid var(--line); }
.builder-news__list time { color: #7f8588; font: 500 1rem/1 "Helvetica Neue", Arial, sans-serif; }
.builder-news__list span { font-size: 1.25rem; }
.builder-news__list small { color: #777e82; font-size: .95rem; text-align: right; }
.builder-news .builder-view-all { margin-top: 5rem; }
.builder-request { position: relative; display: grid; min-height: 30.5rem; place-items: center; padding: 5rem 3rem; color: #fff; background: linear-gradient(rgba(20,23,24,.62),rgba(20,23,24,.62)), var(--builder-request-image) center 55%/cover; }
.builder-request__inner { display: grid; width: min(100%, 114rem); grid-template-columns: 18rem 1fr 25rem; align-items: center; gap: 5rem; margin: 0 auto; }
.builder-request h2 { font-size: 2.6rem; letter-spacing: .12em; }
.builder-request h2 + small { display: block; margin-top: .6rem; font: 500 1rem/1 "Helvetica Neue", Arial, sans-serif; }
.builder-request p { color: rgba(255,255,255,.9); font-size: 1.3rem; line-height: 2.1; }
.builder-request__button { display: flex; min-height: 5.8rem; align-items: center; justify-content: space-between; padding: 0 2.6rem; color: #fff; border: 1px solid rgba(255,255,255,.9); border-radius: 999px; font: 600 1.1rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .08em; }
.builder-request__button b { font-size: 1rem; font-weight: 400; }
.builder-footer { display: grid; min-height: 14rem; grid-template-columns: 1fr auto; align-items: center; gap: 1rem 4rem; padding: 3rem 4rem; background: #efefef; }
.builder-footer__brand { display: flex; align-items: center; gap: 2.2rem; }
.builder-footer__brand strong { font: 700 2.4rem/1 "Helvetica Neue", Arial, sans-serif; }
.builder-footer__brand span { font-size: 1.8rem; }
.builder-footer p { font-size: 1.05rem; }
.builder-footer > small { grid-column: 2; color: #777d80; font: 500 .9rem/1 "Helvetica Neue", Arial, sans-serif; text-align: right; }

/* section reveal motion — enabled by JS only */
.has-motion .builder-reveal { opacity: 0; transform: translateY(4rem); transition: opacity .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms), transform .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms); }
.has-motion .builder-reveal.is-visible { opacity: 1; transform: translateY(0); }
.has-motion .builder-concept__title-line.builder-reveal { opacity: 1; transform: none; transition: none; }
.has-motion .builder-concept__title-line > span { opacity: 0; transform: translateY(112%); transition: opacity 1.05s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms), transform 1.05s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms); }
.has-motion .builder-concept__title-line.is-visible > span { opacity: 1; transform: translateY(0); }
.has-motion .builder-concept__copy .builder-reveal { transform: translateY(2.2rem); }
.has-motion .builder-concept__copy .builder-reveal.is-visible { transform: translateY(0); }

@media (max-width: 960px) {
  .builder-local-header nav a:nth-of-type(n+3) { display: none; }
  .builder-concept__grid { gap: 7%; }
  .builder-study__grid { grid-auto-columns: min(42rem, 46vw); gap-inline: 2.4rem; }
  .builder-craft__disciplines article { padding-inline: 3rem; }
}

@media (max-width: 700px) {
  .builder-shell { width: min(calc(100% - 4rem), 114rem); }
  .builder-local-header { top: 0; min-height: 7rem; padding-inline: 2rem; }
  .builder-brand strong { font-size: 1.8rem; }
  .builder-brand small { display: none; }
  .builder-local-header nav { gap: 1.2rem; }
  .builder-local-header nav a { display: none !important; }
  .builder-local-header__cta { min-height: 3.2rem; padding-inline: 1.4rem; font-size: .9rem; }
  .builder-menu { width: 2.8rem; margin-left: 0; }
  .builder-hero { min-height: 100svh; }
  .builder-hero__slides figure:nth-child(1) img { object-position: 58% center; }
  .builder-hero__slides figure:nth-child(2) img { object-position: 70% center; }
  .builder-hero__slides figure:nth-child(3) img { object-position: 43% center; }
  .builder-hero__pickup { right: 2rem; bottom: 4rem; left: 2rem; width: auto; }
  .builder-hero h1, .builder-hero__pickup h2 { padding-right: 0; font-size: 2.2rem; }
  .builder-hero__pickup > a { position: static; margin-top: 1.5rem; }
  .builder-hero__pickup::after { margin-top: .8rem; }
  .builder-hero__scroll { display: none; }
  .builder-concept { min-height: 0; padding: 9rem 0; }
  .builder-concept__grid { grid-template-columns: 1fr; gap: 5rem; }
  .builder-concept__visual h2 { font-size: 2.9rem; }
  .builder-concept__visual figure { width: 100%; margin-top: 3rem; }
  .builder-concept__body { padding-top: 0; font-size: 1.3rem; line-height: 2.1; }
  .builder-study { padding: 7rem 0 9rem; }
  .builder-section-head { margin-bottom: 4.5rem; }
  .builder-section-head h2 { font-size: 2.5rem; }
  .builder-study .builder-shell { margin-left: 2rem; }
  .builder-study .builder-section-head { margin-right: 2rem; }
  .builder-study__drag { margin-right: 2rem; }
  .builder-study__grid { grid-auto-columns: 82vw; gap: 2rem; padding-right: 2rem; }
  .builder-study-card h3 { font-size: 1.55rem; }
  .builder-craft__hero { height: 38rem; }
  .builder-craft__hero h3 { font-size: 2.2rem; }
  .builder-craft__disciplines { width: calc(100% - 4rem); grid-template-columns: 1fr; border-right: 0; }
  .builder-craft__disciplines article { min-height: 0; padding: 3.5rem 1rem; border-bottom: 1px solid #d4d6d7; border-left: 0; }
  .builder-craft__disciplines h4 { font-size: 2.4rem; }
  .builder-films, .builder-social { padding: 8rem 0 9rem; }
  .builder-films__grid { grid-template-columns: 1fr; gap: 5rem; }
  .builder-film figure i { width: 6rem; height: 6rem; }
  .builder-social__grid { grid-template-columns: repeat(2,1fr); }
  .builder-social__grid figure:last-child { display: none; }
  .builder-news { padding: 7rem 0 9rem; }
  .builder-news__list p { min-height: 9rem; grid-template-columns: 8rem 1fr; gap: .7rem 1rem; padding: 1.5rem .5rem; }
  .builder-news__list span { font-size: 1.15rem; }
  .builder-news__list small { grid-column: 2; text-align: left; }
  .builder-request { min-height: 42rem; padding: 6rem 2rem; }
  .builder-request__inner { grid-template-columns: 1fr; gap: 2.5rem; text-align: left; }
  .builder-request h2 { font-size: 2.7rem; }
  .builder-request__button { min-height: 5.4rem; padding-inline: 2rem; font-size: .95rem; }
  .builder-footer { grid-template-columns: 1fr; padding: 4rem 2rem; }
  .builder-footer p { line-height: 2; }
  .builder-footer > small { grid-column: 1; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .builder-hero__slides figure, .builder-hero__slides img, .builder-hero__dots i { animation: none !important; }
  .builder-hero__slides figure { opacity: 0; }
  .builder-hero__slides figure:first-child { opacity: 1; }
  .builder-hero__pickup { opacity: 0; animation: none !important; transform: none; }
  .builder-hero__pickup:first-child { opacity: 1; }
  .builder-study-card img, .builder-film img, .builder-social__grid img { transition: none !important; transform: none !important; }
  .builder-concept::before, .builder-concept__signature strong { transform: none !important; }
  .builder-concept__signature::before { transform: scaleX(1); transition: none; }
}

/* ==========================================================
 * Section-source rebuild
 * Hero: R+house / Concept: HOME POSITION / Team: Tokyo Neue
 * Movies: Detail Home / Scenes: reco.
 * ========================================================== */

/* R+house-inspired split hero */
.builder-local-header nav a { display: none; }
.builder-hero--split { color: #fff; background: #14191b; }
.builder-hero__split { position: absolute; inset: 0; display: grid; grid-template-columns: 1fr 1fr; }
.builder-hero__panel { position: relative; overflow: hidden; }
.builder-hero__panel + .builder-hero__panel { border-left: 1px solid rgba(255,255,255,.5); }
.builder-hero__panel figure { position: absolute; inset: 0; opacity: 0; animation: builderSplitFade 16s infinite; }
.builder-hero__panel figure:first-child { opacity: 1; }
.builder-hero__panel figure:nth-child(2) { animation-delay: 8s; }
.builder-hero__panel img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); animation: builderSplitZoom 16s infinite; }
.builder-hero__panel figure:nth-child(2) img { animation-delay: 8s; }
.builder-hero__panel--left img { object-position: center; }
.builder-hero__panel--right img { object-position: 70% center; }
@keyframes builderSplitFade { 0%,46%{opacity:1} 51%,100%{opacity:0} }
@keyframes builderSplitZoom { 0%{transform:scale(1.04)} 50%,100%{transform:scale(1.1)} }
.builder-hero--split .builder-hero__shade { background: linear-gradient(180deg,rgba(7,11,12,.1),rgba(7,11,12,.02) 45%,rgba(7,11,12,.5)); }
.builder-hero__identity { position: absolute; z-index: 2; top: 50%; left: 50%; width: min(70rem, 88vw); text-align: center; transform: translate(-50%,-50%); }
.builder-hero__identity p { font: 600 1rem/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .28em; }
.builder-hero__identity h1 { margin-top: 1.4rem; font-family: "Helvetica Neue", Arial, sans-serif; font-size: clamp(4.2rem,6.2vw,8.8rem); font-weight: 500; line-height: .92; letter-spacing: .02em; text-transform: lowercase; }
.builder-hero__identity span { display: block; margin-top: 2.2rem; font-size: 1.25rem; letter-spacing: .12em; }
.builder-hero__statement { position: absolute; z-index: 2; bottom: 5.2rem; left: 5rem; font-family: "Shippori Mincho", serif; font-size: 2.1rem; line-height: 1.8; letter-spacing: .08em; }
.builder-hero--split .builder-hero__scroll { right: auto; bottom: 3rem; left: 50%; transform: translateX(-50%); }

/* LIF-inspired text-only concept section */
.builder-concept { position: relative; min-height: 0; padding: 14rem 0 20rem; overflow: hidden; color: #272823; background: #d8d3c8; }
.builder-concept::before { position: absolute; inset: -8rem 0; opacity: .42; background: radial-gradient(circle at 15% 22%,rgba(255,255,255,.38),transparent 30%), radial-gradient(circle at 78% 66%,rgba(86,78,64,.1),transparent 34%); content: ""; pointer-events: none; transform: translate3d(0,var(--concept-bg-shift,0),0) scale(1.04); will-change: transform; }
.builder-concept::after { position: absolute; right: -2%; bottom: -1px; left: -2%; height: 10rem; background: #efefef; clip-path: polygon(100% 0,100% 100%,0 100%); content: ""; pointer-events: none; }
.builder-concept__inner { position: relative; z-index: 1; text-align: center; }
.builder-concept__eyebrow { color: #77736a; font: 500 1rem/1 "Helvetica Neue",Arial,sans-serif; letter-spacing: .26em; }
.builder-concept h2 { margin-top: 3.2rem; font-family: "Shippori Mincho",serif; font-size: clamp(3.5rem,4.25vw,5.8rem); font-weight: 500; line-height: 1.55; letter-spacing: .11em; }
.builder-concept__title-line { display: block; overflow: hidden; }
.builder-concept__title-line > span { display: block; }
.builder-concept__copy { width: min(68rem,100%); margin: 6rem auto 0; font-size: 1.32rem; line-height: 2.35; letter-spacing: .08em; }
.builder-concept__copy p + p { margin-top: 2.5rem; }
.builder-concept__signature { position: relative; width: min(38rem,72vw); margin: 10rem auto 0; padding-top: 2.4rem; text-align: left; }
.builder-concept__signature::before { position: absolute; top: 0; right: 0; left: 0; height: 1px; background: rgba(39,40,35,.34); content: ""; transform: scaleX(0); transform-origin: left center; transition: transform 1.3s cubic-bezier(.22,.7,.18,1) .18s; }
.builder-concept__signature.is-visible::before { transform: scaleX(1); }
.builder-concept__signature span { display: block; margin-bottom: 1.6rem; font-size: 1.05rem; letter-spacing: .3em; }
.builder-concept__signature strong { display: block; font: 400 clamp(4.9rem,6.2vw,8.2rem)/.79 "Helvetica Neue",Arial,sans-serif; letter-spacing: .13em; transform: translate3d(0,var(--concept-signature-shift,0),0); transition: transform .18s linear; will-change: transform; }
.builder-concept__signature small { display: block; margin-top: 2.2rem; font: 500 .95rem/1 "Helvetica Neue",Arial,sans-serif; letter-spacing: .13em; }

/* Tokyo Neue-inspired unified team story */
.builder-craft--team { padding: 13rem 0; color: #231f1d; background: #c96a4a; }
.builder-craft__team-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 9rem; }
.builder-craft__illustration { position: relative; min-height: 54rem; }
.builder-craft__illustration > span { position: absolute; top: -2rem; left: -4rem; color: rgba(255,244,232,.22); font: 700 clamp(7rem,11vw,15rem)/.8 "Helvetica Neue",Arial,sans-serif; letter-spacing: -.08em; writing-mode: vertical-rl; }
.builder-craft__illustration img { position: relative; z-index: 1; width: 110%; margin: 6rem 0 0 -8%; animation: builderTeamFloat 7s ease-in-out infinite; }
@keyframes builderTeamFloat { 0%,100%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-1.4rem) rotate(.5deg)} }
.builder-craft__message small { font: 600 1rem/1 "Helvetica Neue",Arial,sans-serif; letter-spacing: .2em; }
.builder-craft__message h2 { margin-top: 3rem; font-size: clamp(3.6rem,3.8vw,5.2rem); line-height: 1.5; letter-spacing: .065em; }
.builder-craft__message h2 span { display: block; white-space: nowrap; }
.builder-craft__message > p { margin-top: 3rem; font-size: 1.35rem; line-height: 2.2; }
.builder-craft__message .builder-inline-link { margin-top: 5rem; border-color: #231f1d; }

/* Detail Home-inspired movie feature */
.builder-films { padding: 12rem 0 14rem; color: #f5f4f0; background: #171b1c; }
.builder-films .builder-short-line { background: #d96d4c; }
.builder-films .builder-section-head p { color: #a9afb1; }
.builder-films__feature { display: grid; grid-template-columns: 1.6fr .75fr; gap: 5rem; }
.builder-film--main figure { aspect-ratio: 16/10; }
.builder-film--main figure small { position: absolute; z-index: 2; top: 2rem; left: 2rem; margin: 0; color: #fff; }
.builder-film--main h3 { margin-top: 2.3rem; color: #fff; font-family: "Shippori Mincho",serif; font-size: 2.4rem; }
.builder-films__list { border-top: 1px solid rgba(255,255,255,.24); }
.builder-films__list .builder-film { display: grid; grid-template-columns: 3rem 14rem 1fr; align-items: center; gap: 2rem; padding: 3rem 0; border-bottom: 1px solid rgba(255,255,255,.24); }
.builder-films__list .builder-film > span { color: #d96d4c; font: 600 1rem/1 "Helvetica Neue",Arial,sans-serif; }
.builder-films__list .builder-film figure { aspect-ratio: 4/3; }
.builder-films__list .builder-film h3 { margin-top: .8rem; color: #fff; font-size: 1.35rem; line-height: 1.6; }
.builder-films__list .builder-film small { color: #92999c; font-size: .78rem; }

/* reco.-inspired image mosaic */
.builder-social--scenes { padding: 12rem 0 15rem; background: #f7f6f2; }
.builder-social--scenes .builder-section-head h2 { font-size: 4rem; font-weight: 500; }
.builder-social__grid { display: grid; grid-template-columns: repeat(12,1fr); grid-template-rows: 22rem 22rem; gap: 1.2rem; }
.builder-social__grid figure { position: relative; overflow: hidden; aspect-ratio: auto; }
.builder-social__grid figure:nth-child(1) { grid-column: 1 / 7; grid-row: 1 / 3; }
.builder-social__grid figure:nth-child(2) { grid-column: 7 / 10; grid-row: 1; }
.builder-social__grid figure:nth-child(3) { grid-column: 10 / 13; grid-row: 1; }
.builder-social__grid figure:nth-child(4) { grid-column: 7 / 9; grid-row: 2; }
.builder-social__grid figure:nth-child(5) { display: block; grid-column: 9 / 13; grid-row: 2; }
.builder-social__grid figure > span { position: absolute; z-index: 2; right: 1.2rem; bottom: 1rem; color: #fff; font: 600 .9rem/1 "Helvetica Neue",Arial,sans-serif; letter-spacing: .08em; }

@media (max-width: 700px) {
  .builder-local-header nav a { display: none !important; }
  .builder-hero__split { grid-template-columns: 42% 58%; }
  .builder-hero__identity { top: 47%; text-align: left; }
  .builder-hero__identity h1 { font-size: 4.5rem; line-height: .95; }
  .builder-hero__identity span { font-size: 1rem; }
  .builder-hero__statement { right: 2rem; bottom: 4rem; left: 2rem; font-size: 1.6rem; }
  .builder-hero--split .builder-hero__scroll { display: none; }
  .builder-concept { padding: 10rem 0 15rem; }
  .builder-concept::after { height: 6rem; }
  .builder-concept h2 { margin-top: 2.5rem; font-size: clamp(2.8rem,8vw,3.5rem); line-height: 1.65; letter-spacing: .08em; }
  .builder-concept__copy { margin-top: 4.5rem; font-size: 1.18rem; line-height: 2.25; text-align: left; }
  .builder-concept__copy p + p { margin-top: 2.2rem; }
  .builder-concept__signature { width: 78%; margin-top: 7rem; }
  .builder-concept__signature strong { font-size: clamp(4.5rem,15vw,6rem); }
  .builder-concept__signature small { font-size: .78rem; }
  .builder-pc { display: none; }
  .builder-craft--team { padding: 8rem 0; }
  .builder-craft__team-grid { grid-template-columns: 1fr; gap: 3rem; }
  .builder-craft__illustration { min-height: 33rem; }
  .builder-craft__illustration > span { top: 0; left: -1rem; font-size: 8rem; writing-mode: horizontal-tb; }
  .builder-craft__illustration img { width: 112%; margin: 5rem 0 0 -6%; }
  .builder-craft__message h2 { font-size: clamp(2.9rem,8.5vw,3.4rem); letter-spacing: .035em; }
  .builder-films { padding: 8rem 0 9rem; }
  .builder-films__feature { grid-template-columns: 1fr; gap: 5rem; }
  .builder-film--main h3 { font-size: 2rem; }
  .builder-films__list .builder-film { grid-template-columns: 2rem 10rem 1fr; gap: 1.2rem; padding: 2rem 0; }
  .builder-social--scenes { padding: 8rem 0 10rem; }
  .builder-social__grid { grid-template-rows: 28rem 14rem 14rem; gap: .7rem; }
  .builder-social__grid figure:nth-child(1) { grid-column: 1 / 13; grid-row: 1; }
  .builder-social__grid figure:nth-child(2) { grid-column: 1 / 7; grid-row: 2; }
  .builder-social__grid figure:nth-child(3) { grid-column: 7 / 13; grid-row: 2; }
  .builder-social__grid figure:nth-child(4) { grid-column: 1 / 6; grid-row: 3; }
  .builder-social__grid figure:nth-child(5) { grid-column: 6 / 13; grid-row: 3; }
}

@media (prefers-reduced-motion: reduce) {
  .builder-hero__panel figure, .builder-hero__panel img, .builder-craft__illustration img { animation: none !important; }
  .builder-hero__panel figure { opacity: 0; }
  .builder-hero__panel figure:first-child { opacity: 1; }
}
