/**
 * 파일명: bugo-template.css
 * 파일경로: /home/freebugocokr/public_html/css/bugo-template.css
 * 기능: 부고장 템플릿 선택 화면 전용 스타일 정의
 * 작성일: 2026-05-09
 * 수정일: 2026-05-09
 */

.template-page{
    max-width:1180px;
    margin:0 auto;
    padding:32px 18px 48px;
}

.template-header{
    text-align:center;
    margin-bottom:22px;
}

.template-header h1{
    font-size:30px;
    margin:0;
}

.template-layout{
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
    align-items:start;
}

.template-picker{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
}

.picker-card,
.preview-card{
    background:#fff;
    border:1px solid var(--color-border);
    border-radius:18px;
    padding:18px;
    box-shadow:0 8px 24px rgba(0,0,0,.06);
}

.picker-card h2{
    font-size:17px;
    margin:0 0 14px;
}

.compact-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)); /* [템플릿 선택] 프로필/텍스트 이미지를 한 줄에 4개씩 표시 */
    gap:10px;
}

.compact-grid .select-card{
    padding:8px;
    border-color:transparent;
    background:#fff;
}

.compact-grid .title,
.compact-grid .check{
    display:none;
}

.compact-grid .thumb{
    border:0;
    background:#fff;
}

.compact-grid .select-card:hover{
    border-color:var(--color-primary);
    transform:none;
}

.compact-grid .select-card.is-selected{
    border-color:var(--color-primary);
    background:var(--color-primary-soft);
    box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 14%, transparent);
}

.preview-panel{
    position:relative;
}

.preview-card{
    position:sticky;
    top:20px;
}

.preview-label{
    margin:0 0 18px;
    color:var(--color-primary);
    font-weight:900;
}

.bugo-preview{
    min-height:520px; /* [템플릿 선택] 미리보기 영역을 크게 보여주기 위해 높이 확대 */
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    border:1px solid var(--color-border-light);
    border-radius:18px;
    background:#fff;
    padding:44px 24px;
}

.preview-symbols{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:30px; /* [템플릿 선택] 프로필 이미지와 텍스트 이미지 사이 간격 확대 */
    margin-bottom:34px;
}

.preview-profile{
    max-width:170px; /* [템플릿 선택] 프로필 이미지 미리보기 크기 확대 */
    max-height:170px;
    object-fit:contain;
}

.preview-text{
    max-width:250px; /* [템플릿 선택] 부고/근조 텍스트 이미지 크기 확대 */
    max-height:140px;
    object-fit:contain;
}

.preview-copy{
    font-size:17px; /* [템플릿 선택] 미리보기 문구 가독성 확대 */
    line-height:1.9;
}

.sample-name{
    font-weight:900;
    font-size:18px; /* [템플릿 선택] 고인명 예시 강조 */
}

.next-button{
    width:100%;
    height:52px;
    margin-top:16px;
    border:1.5px solid var(--bugo-btn-border);
    border-radius:14px;
    background:var(--bugo-btn-bg);
    color:var(--bugo-btn-color);
    font-size:16px;
    font-weight:600;
    cursor:pointer;
}
.next-button:hover{background:var(--bugo-btn-bg-hover)}

@media (min-width:900px){
    .template-layout{
        grid-template-columns:520px 1fr;
        /* 두 칸이 같은 행 높이를 갖도록 — 기본값 start 를 덮는다 */
        align-items:stretch;
    }

    .template-picker{
        grid-template-columns:1fr;
    }

    .preview-panel{
        display:flex;
    }

    /**
     * 미리보기 카드를 왼쪽 칸 높이에 맞춘다.
     *
     * 다만 화면 높이를 넘기면 카드가 화면 밖으로 나가 sticky 가 무의미해지므로
     * min() 으로 둘 중 작은 값을 쓴다. 화면이 넉넉하면 좌우 높이가 딱 맞고,
     * 화면이 짧으면 원래 높이를 유지하며 sticky 로 따라다닌다.
     */
    .preview-card{
        display:flex;
        flex-direction:column;
        width:100%;
        align-self:flex-start;
        /* border-box 가 아니면 패딩·테두리(38px)만큼 좌측보다 커진다 */
        box-sizing:border-box;
        min-height:min(100%, calc(100vh - 40px));
    }

    /* 남는 높이는 미리보기 영역이 흡수한다 (내용은 이미 가운데 정렬돼 있다) */
    .preview-card .bugo-preview{
        flex:1;
    }
}


/**
 * [템플릿 선택] 모바일에서는 이미지 선택 카드가 너무 작아지지 않도록 3열/2열로 조정
 */
@media (max-width: 719px){
    .compact-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media (max-width: 420px){
    .compact-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

/**
 * [템플릿 선택] 모바일에서는 미리보기 영역이 과도하게 길어지지 않도록 보정
 */
@media (max-width:719px){
    .bugo-preview{
        min-height:460px;
        padding:36px 18px;
    }

    .preview-profile{
        max-width:140px;
        max-height:140px;
    }

    .preview-text{
        max-width:220px;
        max-height:120px;
    }

    .preview-copy{
        font-size:16px;
    }
}
/* ── [영정사진] STEP 1 업로드 카드 ─────────────────────────────────────────── */
.picker-optional{
    margin-left:6px;
    padding:2px 8px;
    border:1px solid var(--color-primary-soft-border);
    border-radius:50px;
    background:var(--color-primary-soft);
    color:var(--color-primary);
    font-size:11px;
    font-weight:700;
    vertical-align:middle;
}

.tpl-photo{
    display:flex;
    align-items:flex-start;
    gap:16px;
}

/* 실제 저장 비율(증명사진 3:4)과 같게 두어 어디가 잘리는지 미리 보이게 한다 */
.tpl-photo__thumb{
    position:relative;
    flex:none;
    width:90px;
    height:120px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px dashed var(--color-border);
    border-radius:8px;
    background:#fff;
    overflow:hidden;
}

.tpl-photo__thumb img{ width:100%; height:100%; object-fit:cover; }
.tpl-photo__thumb span{ position:absolute; color:var(--color-text-light); font-size:12px; }
.tpl-photo__thumb[data-empty="0"] span{ display:none; }
.tpl-photo__thumb[data-empty="1"] img{ display:none; }

.tpl-photo__control{ flex:1; min-width:0; }
.tpl-photo__control input[type="file"]{ width:100%; max-width:100%; font-size:13px; }

.tpl-photo__help,
.tpl-photo__note{
    margin:8px 0 0;
    color:var(--color-text-light);
    font-size:12.5px;
    line-height:1.6;
}

.tpl-photo__help b{ color:var(--color-primary); }

.tpl-photo__note{
    padding-left:10px;
    border-left:2px solid var(--color-primary-soft-border);
}

.tpl-photo__status{
    margin:10px 0 0;
    padding:8px 10px;
    border-radius:6px;
    background:var(--color-primary-soft);
    color:var(--color-primary);
    font-size:12.5px;
    line-height:1.55;
}

.tpl-photo__status[data-error="1"]{ background:#f8d7da; color:#721c24; }

.tpl-photo__remove{
    margin-top:10px;
    padding:6px 12px;
    border:1px solid var(--color-border);
    border-radius:6px;
    background:#fff;
    color:var(--color-text-light);
    font-size:12.5px;
    cursor:pointer;
}

.tpl-photo__remove:hover{ border-color:var(--color-danger); color:var(--color-danger); }

/* 미리보기 패널의 영정사진 — 실제 부고장과 똑같은 화환 액자.
   위치 %값의 근거는 bugo-public.css 의 .public-bugo-portrait 주석 참고. */
.preview-portrait{
    position:relative;
    margin:0;
    width:260px;
    max-width:100%;
    aspect-ratio:1 / 1;
    background:url('/assets/images/goin_frame_01.webp') center / contain no-repeat;
    /* 프레임 배경 사각형이 드러나지 않도록 바깥을 부드럽게 지운다 */
    -webkit-mask-image:radial-gradient(closest-side, #000 88%, transparent 100%);
    mask-image:radial-gradient(closest-side, #000 88%, transparent 100%);
}

.preview-portrait img{
    position:absolute;
    left:49.6%;
    top:42.5%;
    width:45%;
    height:60%;
    transform:translate(-50%,-50%);
    border-radius:50%;
    object-fit:cover;
}

@media (max-width:560px){
    .tpl-photo{ flex-direction:column; align-items:center; text-align:center; }
    .tpl-photo__note{ text-align:left; }
}
