/* Interactive variation. The original page and styles remain the shared base. */
html{scroll-padding-top:90px}
.header{position:sticky;top:0;z-index:20;transition:box-shadow .25s,background .25s;background:rgba(255,255,255,.97);backdrop-filter:blur(14px)}
.header.scrolled{box-shadow:0 5px 24px #00000014}
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:30;pointer-events:none}
.hero{isolation:isolate}
.hero:before{display:none}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}
.hero-video-overlay{position:absolute;inset:0;background:rgba(0,0,0,.4);z-index:1;pointer-events:none}
.hero-copy,.hero-side,.hero-note,.service-strip{z-index:2}
.video-toggle{position:absolute;right:4.5%;bottom:calc(165 * var(--u));z-index:3;border:1px solid #ffffff70;border-radius:25px;padding:10px 15px;display:flex;align-items:center;gap:9px;color:#fff;background:#0003;font-size:15px;backdrop-filter:blur(8px)}
.video-toggle span{font-size:10px;letter-spacing:1.5px}.video-toggle:hover{background:#ffffff25}
.factory-video{display:block;width:100%;max-height:65vh;background:#050505;border-radius:7px;margin-top:20px}
.main-nav a{position:relative;transition:color .2s}.main-nav a:after{content:'';position:absolute;left:0;bottom:-9px;width:100%;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s}.main-nav a.active{color:var(--red)}.main-nav a.active:after,.main-nav a:hover:after{transform:scaleX(1)}
.motion-ready .reveal{opacity:0;transform:translateY(25px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.visible{opacity:1;transform:translateY(0)}
.hero-copy h1,.hero-copy>p,.hero-copy .play-link{animation:hero-enter .85s both}.hero-copy>p{animation-delay:.15s}.hero-copy .play-link{animation-delay:.3s}
@keyframes hero-enter{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
.button{transition:transform .25s,box-shadow .25s,background .25s}.button:hover{transform:translateY(-3px);box-shadow:0 8px 22px #0002}.button:active{transform:translateY(0)}
.service-strip a svg{transition:transform .3s}.service-strip a:hover svg{transform:translateY(-5px)}
.video-image img,.material-grid img{transition:transform .45s,filter .45s}.video-card:hover img{transform:scale(1.06)}.material-grid button:hover img{transform:translateY(-6px);filter:drop-shadow(0 10px 8px #0002)}
.project{transition:border-color .25s,box-shadow .25s}.project.active{border-color:#fff;box-shadow:0 0 0 1px #fff8}.project:focus-visible{outline-offset:-5px}
.process-grid li{transition:transform .25s}.process-grid li:hover{transform:translateY(-6px)}
.review-grid article{transition:transform .3s,box-shadow .3s}.review-grid article:hover{transform:translateY(-5px);box-shadow:0 12px 30px #0000000c}
.portfolio-backdrop.switching{animation:project-enter .5s ease}@keyframes project-enter{from{opacity:.4;scale:1.025}to{opacity:1;scale:1}}
.stats strong{font-variant-numeric:tabular-nums}
@media(max-width:600px){html{scroll-padding-top:80px}.video-toggle{bottom:193px;right:6%;padding:8px 12px}.hero-video{object-position:60% center}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal{opacity:1;transform:none}.hero-copy h1,.hero-copy>p,.hero-copy .play-link,.portfolio-backdrop.switching{animation:none}.button:hover,.review-grid article:hover,.process-grid li:hover,.material-grid button:hover img{transform:none}}
/* 실제 매장 정보가 늘어난 공통 푸터 */
footer{height:auto;min-height:260px}.footer-top{height:auto;min-height:185px;padding-bottom:55px}.footer-address{white-space:normal;line-height:1.6;max-width:360px}.footer-address p{font-size:13px}.footer-contact{gap:7px}.footer-contact a{white-space:nowrap}.footer-hours{white-space:normal;max-width:220px}.legal{top:auto;bottom:22px}.footer-top .socials a{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid #73777a}.footer-top .socials a svg{margin:0}
@media(max-width:800px){.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-bottom:58px}.footer-address{padding-top:0}.footer-contact,.footer-hours{font-size:12px}.legal{bottom:12px}}
@media(max-width:600px){.footer-top{grid-template-columns:1fr 1fr}.footer-address p{font-size:11px}.footer-contact a{white-space:normal}}

:root{--board-accent:#e50922;--board-ink:#151719}
:root{--board-hero-image:url('assets/images/workshop.webp')}
.board-hero-request{--board-hero-image:url('assets/images/consult.webp')}
.board-hero-portfolio{--board-hero-image:url('assets/images/block-v2.webp')}
.board-hero-video{--board-hero-image:url('assets/images/uv.webp')}
.board-hero-review{--board-hero-image:url('assets/images/about-v2.webp')}
/* 메인 카드 데이터 탐색: 기존 카드 그리드와 섹션 높이는 유지 */
.home-arrows{display:flex;align-items:center;gap:8px;margin-top:10px}.home-arrows button{border:1px solid #b8bdc3;border-radius:3px;min-width:32px;height:30px;padding:0 9px;font-size:15px;color:#454b50}.home-arrows button:hover{border-color:var(--red);color:var(--red)}.process-item{display:block;text-align:inherit;width:100%}.process-item img{width:100%}.process-item h3,.process-item p{white-space:normal}.modal-navigation{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;border-top:1px solid #e3e5e7;padding-top:16px}.modal-navigation button{padding:10px 17px;border:1px solid #b8bdc3;border-radius:3px;font-weight:700}.modal-navigation button:hover{border-color:var(--red);color:var(--red)}.modal-navigation span{color:#848990;font-size:14px}.modal-media{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:6px;margin-bottom:22px}#dialog-content .factory-video{margin-bottom:22px}.video-card,.process-item,.material-grid button,.project{cursor:pointer}
@media(max-width:600px){.home-arrows{margin-top:12px}.home-arrows button{height:30px;min-width:30px;font-size:14px}.process-grid .process-item h3{font-size:12px}.process-grid .process-item p{font-size:11px}.modal-navigation{gap:6px}.modal-navigation button{padding:8px 10px;font-size:13px}}

/* 영상 카드의 탐색 버튼은 목록 양끝에서 이미지 높이의 중앙에 배치 */
.videos .video-carousel{position:relative;flex:1;min-width:0}
.videos .video-grid{width:100%}
.video-carousel-arrow{position:absolute;z-index:3;top:calc(102.5 * var(--u));transform:translateY(-50%);display:grid;place-items:center;width:calc(38 * var(--u));height:calc(38 * var(--u));border:1px solid #d8dce0;border-radius:50%;background:#fff;color:#333;font-size:calc(20 * var(--u));box-shadow:0 3px 12px #0002}
.video-carousel-arrow.previous{left:calc(-19 * var(--u))}
.video-carousel-arrow.next{right:calc(-19 * var(--u))}
.video-carousel-arrow:hover{border-color:var(--red);color:var(--red)}
@media(max-width:600px){.video-carousel-arrow{top:80px;width:30px;height:30px;font-size:16px}.video-carousel-arrow.previous{left:-15px}.video-carousel-arrow.next{right:-15px}}

/* 관리자 로그인은 남은 화면의 중앙에 두고 푸터를 화면 아래로 보낸다. */
.login-page{min-height:100vh;display:flex;flex-direction:column}
.login-page .header{flex-shrink:0}
.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:60px 20px}
.login-main .fam-board.board-auth{width:100%;max-width:330px;margin:0;padding:0}
.login-main .fam-board.board-auth h1{font-size:32px;line-height:1.25;margin-bottom:24px}
.login-main .fam-board.board-auth label{margin-top:16px}
.login-main .fam-board.board-auth button[type=submit]{width:100%;margin-top:24px}
.login-main .fam-board.board-auth .manager-link{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;margin-top:24px;border-radius:3px;background:var(--red);color:#fff;font-weight:700}
.login-main .fam-board.board-auth .logout-button{background:#eef0f2;color:#272b2e}
.login-page footer{flex-shrink:0;width:100%}
@media(max-width:600px){.login-main{padding:70px 24px}.login-main .fam-board.board-auth{max-width:330px}}
.reviews .review-grid blockquote{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.reviews .review-carousel{position:relative;flex:1;min-width:0}
.reviews .review-grid{width:100%;min-width:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.reviews .review-grid article{min-width:0;overflow:hidden}
.reviews .review-grid blockquote{white-space:normal;overflow-wrap:anywhere}
.review-carousel-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:38px;height:38px;border:1px solid #d8dce0;border-radius:50%;background:#fff;color:#333;font-size:20px;box-shadow:0 3px 12px #0002}
.review-carousel-arrow.previous{left:-19px}
.review-carousel-arrow.next{right:-19px}
.review-carousel-arrow:hover{border-color:var(--red);color:var(--red)}
@media(max-width:600px){.reviews .review-grid{grid-template-columns:1fr}.review-carousel-arrow{width:30px;height:30px;font-size:16px}.review-carousel-arrow.previous{left:-15px}.review-carousel-arrow.next{right:-15px}}
#dialog-content .board-review-stars{color:#f18a00;font-size:22px;letter-spacing:3px;margin:8px 0 16px}
.process-grid .process-item{cursor:default}
.process-grid li:hover{transform:none}
.quote-file-trigger{display:flex;flex:1;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:13px;color:inherit;text-align:center}
.quote-file-trigger svg{width:65px;height:65px;stroke-width:1.35}
.quote-file-trigger p{font-size:17px;line-height:1.5}
.upload-zone>a{font-size:14px;color:#c8cbd0;text-decoration:underline;margin-bottom:12px}
#quote-dialog{max-width:560px}
#quote-dialog h2{font-size:28px;margin-bottom:8px}
#quote-dialog p{font-size:14px;color:#656b72;margin-bottom:18px}
#quote-dialog label{display:block;font-size:14px;font-weight:650;margin:12px 0}
#quote-dialog input,#quote-dialog textarea{display:block;width:100%;font:inherit;font-weight:400;border:1px solid #c4c9ce;border-radius:3px;padding:10px;margin-top:6px}
#quote-dialog input[type=file]{padding:9px}
#quote-dialog small{display:block;color:#676d74;overflow-wrap:anywhere}
#quote-dialog .button{width:100%;margin-top:16px}
@media(max-width:600px){.quote-file-trigger svg{width:53px;height:53px}.quote-file-trigger p{font-size:14px}}
