/* Work cases, customer reviews and KakaoTalk channel links. Loaded on every page after site.css. */
:root{--kakao:#fee500;--kakao-ink:#191919;--star:#d4962a;--star-off:#d5ddd8}

/* KakaoTalk */
.kakao-icon{width:22px;height:22px;flex:none;fill:currentColor}
.kakao-float{position:fixed;right:28px;bottom:28px;z-index:44;display:flex;align-items:center;gap:10px;min-height:56px;padding:0 22px 0 18px;border-radius:28px;background:var(--kakao);color:var(--kakao-ink);font-size:15px;font-weight:600;box-shadow:0 10px 26px #0a2e3626;transition:transform .2s,box-shadow .2s}
.kakao-float:hover{transform:translateY(-2px);box-shadow:0 14px 30px #0a2e3633}
@media(min-width:641px){body:has(.kakao-float) .site-footer{padding-bottom:100px}}
.button-kakao{background:var(--kakao);color:var(--kakao-ink);justify-content:center;gap:12px}
.button-kakao:hover{background:#f5dc00}
.contact-actions .button-kakao{margin-top:12px}
.contact-kakao strong{display:inline-flex;align-items:center;gap:8px}
.contact-kakao .kakao-icon{width:20px;height:20px;padding:2px;border-radius:50%;background:var(--kakao);fill:var(--kakao-ink)}
.mobile-contact.has-kakao>a{width:calc(100% / 3);gap:8px}
.mobile-contact>a.mobile-kakao{background:var(--kakao);color:var(--kakao-ink);font-weight:600}
.mobile-contact>a.mobile-kakao span{font-size:inherit}
.mobile-contact .kakao-icon{width:20px;height:20px}

/* Shared list states. Component display rules (flex/grid) must not override the hidden attribute. */
[data-board] [hidden]{display:none!important}
.board-fallback{border-top:1px solid var(--line);padding-top:35px}
.board-note{color:var(--muted);font-size:16px;padding:30px 0}
.board-more{display:flex;margin:10px auto 0;min-width:240px}
[data-board][aria-busy="true"] [data-board-list]{opacity:.55;transition:opacity .2s}
.stars{color:var(--star);letter-spacing:2px;white-space:nowrap}
.stars-off{color:var(--star-off)}
/* Average rating: gold stars clipped to --rating (e.g. 90% for 4.5) over grey stars */
.star-meter{position:relative;display:inline-block;color:var(--star-off);letter-spacing:2px;white-space:nowrap}
.star-meter::before{content:"★★★★★";position:absolute;inset:0 auto 0 0;width:var(--rating,0%);overflow:hidden;color:var(--star)}

/* Home: recent work */
.recent-work{background:var(--sand)}
.work-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.work-card{display:flex;flex-direction:column}
.work-card-photo{position:relative;display:grid;grid-template-columns:1fr;gap:3px;aspect-ratio:4/3;overflow:hidden;background:#dfe5df}
.work-card-photo.is-pair{grid-template-columns:1fr 1fr}
.work-card-photo>span{position:relative;overflow:hidden}
.work-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.work-card-photo:hover img{transform:scale(1.04)}
.work-card-photo em{position:absolute;left:10px;bottom:10px;padding:3px 10px;background:#07354bd9;color:#fff;font-style:normal;font-size:12px;letter-spacing:.5px}
.work-card .small-label{margin:20px 0 8px}
.work-card h3{font-size:21px;font-weight:600;line-height:1.45;letter-spacing:-.4px}
.work-card-note{margin-top:8px;font-size:15px;line-height:1.75;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Work page */
.before-after.is-single{grid-template-columns:minmax(0,760px)}
.work-list .real-case:first-child{margin-top:0}
.real-case+.real-case{border-top:1px solid var(--line);padding-top:55px}

/* Reviews */
.heading-actions{display:flex;align-items:center;gap:28px}
.review-summary{display:flex;align-items:baseline;gap:8px;font-size:15px;color:var(--muted)}
.review-summary strong{font-size:30px;font-weight:600;color:var(--ink);letter-spacing:-.5px}
.review-summary.is-large strong{font-size:46px}
.review-summary.is-large .star-meter{font-size:22px}
.review-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.review-list{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.review-card{display:flex;flex-direction:column;gap:16px;padding:30px;background:#fff;border:1px solid var(--line)}
.review-card-head{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:17px}
.review-date{font-size:13px;color:var(--muted)}
.review-content{font-size:16px;line-height:1.85;white-space:pre-line;overflow-wrap:anywhere}
.review-cards .review-content{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.review-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.review-photos a{display:block;aspect-ratio:1;overflow:hidden;background:var(--sand)}
.review-photos img{width:100%;height:100%;object-fit:cover}
.review-author{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.review-author strong{color:var(--ink);font-weight:600}
.review-board-top{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:40px}
.review-board-top .button{margin:0 0 0 auto}
.review-write{background:var(--sand)}

/* Star rating input: radios are in 5→1 order and displayed 1→5 */
.review-rating{border:0;padding:0;margin:0 0 26px;display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px}
.review-rating legend{width:100%;font-size:15px;font-weight:600;margin-bottom:8px;padding:0}
.star-input{display:inline-flex;flex-direction:row-reverse;gap:2px}
.star-input input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.star-input label{font-size:34px;line-height:1;color:var(--star-off);cursor:pointer;padding:2px;transition:color .15s,transform .15s}
.star-input input:checked~label,.star-input label:hover,.star-input label:hover~label{color:var(--star)}
.star-input input:focus-visible+label{outline:3px solid #4384aa;outline-offset:2px}
.review-rating-text{font-size:15px;color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:1150px){
  .work-cards,.review-cards{gap:18px}
  .review-card{padding:24px}
}
@media(max-width:900px){
  .work-cards,.review-cards{grid-template-columns:1fr 1fr}
  .work-cards>:nth-child(3),.review-cards>:nth-child(3){display:none}
  .review-list{grid-template-columns:1fr}
  .heading-actions{flex-direction:column;align-items:flex-start;gap:6px}
}
@media(max-width:640px){
  .kakao-float{display:none}
  .work-cards,.review-cards{grid-template-columns:1fr;gap:30px}
  .work-cards>:nth-child(3),.review-cards>:nth-child(3){display:flex}
  .work-card h3{font-size:19px}
  .review-card{padding:22px}
  .review-board-top{flex-direction:column;align-items:stretch;gap:20px}
  .review-board-top .button{margin:0}
  .review-summary.is-large strong{font-size:38px}
  .board-more{width:100%;min-width:0}
}
@media(prefers-reduced-motion:reduce){.kakao-float,.work-card-photo img,.star-input label{transition:none}}
