:root{
    --background:#f5f1e7;
    --foreground:#1c1810;
    --accent:#b5573c;
    --muted-foreground:#8c8474;
    --border:#e3dccb;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html,body{background:var(--background);color:var(--foreground);font-family:"Noto Sans KR",sans-serif;}
  a,button{background:none;border:none;cursor:pointer;font-family:inherit;color:inherit;text-decoration:none;}

  header{
    position:fixed;top:0;left:0;right:0;z-index:50;
    background:rgba(245,241,231,0.95);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--border);
  }
  .nav-wrap{
    max-width:1280px;margin:0 auto;padding:0 24px;
    display:flex;align-items:center;justify-content:space-between;height:100px;
  }
  .brand{display:flex;align-items:center;}
  .brand img{height:70px;width:auto;display:block;}
  nav{
    display:flex;align-items:center;gap:44px;
    overflow:visible;
    white-space:nowrap;padding-right:6px;
  }
  nav button{flex-shrink:0;}
  .lang-switch{
    display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex-shrink:0;
    margin-left:8px;padding-left:16px;border-left:1px solid var(--border);
    font-size:12px;letter-spacing:0.05em;white-space:nowrap;
  }
  .lang-switch a{color:var(--muted-foreground);transition:color .2s;white-space:nowrap;}
  .lang-switch a.active{color:var(--foreground);font-weight:700;pointer-events:none;}
  .lang-switch a:not(.active):hover{color:var(--foreground);}
  .lang-switch .sep{display:none;}

  /* ---------- 로그인 영역 (화면 우측 하단 고정) ---------- */
  .auth-float{
    position:fixed;bottom:24px;right:24px;top:auto;transform:none;z-index:90;
    background:none;border:none;box-shadow:none;
    padding:0;display:flex;flex-direction:column;align-items:flex-end;gap:8px;
    min-width:0;
  }
  .login-btn{
    display:flex;align-items:center;gap:8px;
    font-size:15px;font-weight:500;letter-spacing:0.02em;color:#fff;
    background:#034421;border:none;padding:13px 22px;border-radius:999px;
    box-shadow:0 10px 24px -10px rgba(3,68,33,0.55);
    transition:background .2s,transform .2s;white-space:nowrap;
  }
  .login-btn::before{
    content:"";width:18px;height:18px;flex-shrink:0;
    background:#fff;
    -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>') center/contain no-repeat;
    mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>') center/contain no-repeat;
  }
  .login-btn:hover{background:#023318;transform:translateY(-1px);}
  .user-box{width:42px;height:42px;border-radius:50%;display:block;margin-bottom:2px;}
  .user-name{font-size:13px;color:var(--foreground);white-space:nowrap;font-weight:600;text-align:center;}
  .user-role{
    font-size:10px;letter-spacing:0.05em;color:var(--accent);
    border:1px solid var(--accent);border-radius:10px;padding:1px 8px;white-space:nowrap;
  }
  .logout-btn{font-size:11px;color:var(--muted-foreground);text-decoration:underline;white-space:nowrap;margin-top:2px;}
  .logout-btn:hover{color:var(--foreground);}
  @media (max-width:1000px){
    .auth-float{bottom:18px;right:14px;}
    .login-btn{padding:11px 18px;font-size:14px;}
  }

  /* ---------- 게시판 ---------- */
  .board-toolbar{display:flex;justify-content:flex-end;align-items:center;margin-bottom:24px;gap:10px;}
  .board-write-btn{
    font-size:14px;color:#fff;background:#034421;
    padding:9px 20px;border-radius:2px;letter-spacing:0.03em;
    transition:opacity .2s;
  }
  .board-write-btn:hover{opacity:.85;}
  .board-write-btn.board-edit-btn{background:#a67c3d;}
  .board-write-btn.board-delete-btn{background:#8a3324;}
  .board-list{display:flex;flex-direction:column;border-top:1px solid var(--foreground);}
  .board-row{border-bottom:1px solid var(--border);}
  .board-row-summary{
    display:flex;align-items:baseline;gap:18px;padding:16px 4px;cursor:pointer;
  }
  .board-row-summary .b-date{font-size:13px;color:var(--muted-foreground);flex-shrink:0;width:90px;}
  .board-row-summary .b-title{font-size:17px;font-weight:400;flex:1;min-width:0;}
  .board-row.expanded .board-row-summary .b-title{font-weight:600;}
  .board-row-summary .b-toggle{font-size:11px;color:var(--muted-foreground);flex-shrink:0;transition:transform .2s ease;}
  .board-row.expanded .board-row-summary .b-toggle{transform:rotate(180deg);}
  .board-row-detail{display:none;padding:0 4px 20px 108px;}
  .board-row--no-date .board-row-detail{padding-left:4px;}
  .board-row.expanded .board-row-detail{display:block;}
  .board-row-detail-actions{display:flex;justify-content:flex-end;gap:8px;margin-bottom:14px;}
  .board-row-detail-actions .board-write-btn{font-size:12px;padding:6px 14px;}
  .board-row-detail .b-sub{font-size:17px;color:var(--muted-foreground);margin-bottom:8px;line-height:1.7;white-space:pre-wrap;}
  .board-row-detail .b-link{font-size:13px;color:var(--accent);}
  .b-image{margin-top:4px;}
  .b-image img{display:block;max-width:100%;max-height:360px;border-radius:4px;object-fit:contain;}
  .b-pdf{margin-top:4px;}
  .b-pdf iframe{display:block;width:100%;height:480px;border:1px solid var(--border);border-radius:4px;}
  .b-pdf .b-link{display:inline-block;margin-top:8px;}
  @media (max-width:1000px){
    .board-row-detail{padding-left:4px;}
  }
  .board-empty{padding:48px 0;text-align:center;color:var(--muted-foreground);}
  .board-loading{padding:48px 0;text-align:center;color:var(--muted-foreground);}
  .form-modal-overlay{
    position:fixed;inset:0;background:rgba(28,24,16,0.6);z-index:200;
    display:flex;align-items:center;justify-content:center;padding:24px;
  }
  .form-modal{
    background:var(--background);width:100%;max-width:680px;max-height:90vh;
    border-radius:4px;overflow:hidden;display:flex;flex-direction:column;
  }
  .form-modal-head{
    display:flex;justify-content:space-between;align-items:center;
    padding:16px 20px;border-bottom:1px solid var(--border);
  }
  .form-modal-head button{font-size:22px;line-height:1;color:var(--muted-foreground);}
  .form-modal iframe{width:100%;height:75vh;border:0;}
  .yt-embed{width:90%;margin:14px auto 0;}
  .yt-embed-inner{position:relative;width:100%;padding-top:56.25%;border-radius:4px;overflow:hidden;background:#000;}
  .yt-embed-inner iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
  @media (max-width:1000px){
    .yt-embed{width:100%;}
  }

  .write-modal-body{padding:20px 24px;overflow-y:auto;}
  .write-field{margin-bottom:18px;}
  .write-field label{display:block;font-size:13px;color:var(--muted-foreground);margin-bottom:6px;letter-spacing:0.03em;}
  .write-field input[type="text"],
  .write-field input[type="date"],
  .write-field input[type="url"],
  .write-field select,
  .write-field textarea{
    width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:2px;
    font-family:inherit;font-size:14px;color:var(--foreground);background:#fff;
  }
  .write-field textarea{min-height:140px;resize:vertical;line-height:1.6;}
  .write-field input[type="file"]{font-size:13px;}
  .write-file-preview{margin-top:10px;}
  .write-file-preview-img{
    display:block;max-width:100%;max-height:220px;border-radius:4px;
    border:1px solid var(--border);object-fit:contain;
  }
  .write-gallery-preview{
    display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;
  }
  .write-gallery-thumb{position:relative;aspect-ratio:1;border-radius:4px;overflow:hidden;border:1px solid var(--border);background:#eee;}
  .write-gallery-remove{
    position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;
    background:rgba(0,0,0,0.65);color:#fff;font-size:15px;line-height:1;
    display:flex;align-items:center;justify-content:center;transition:background .2s;
  }
  .write-gallery-remove:hover{background:#a8362a;}
  .write-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
  .write-gallery-thumb.write-gallery-file{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    background:#efe8d9;padding:6px;text-align:center;
  }
  .write-gallery-file-icon{font-size:22px;line-height:1;}
  .write-gallery-file-name{font-size:10px;color:var(--muted-foreground);word-break:break-all;line-height:1.3;max-height:2.6em;overflow:hidden;}
  .write-submit-btn{
    width:100%;padding:12px;font-size:14px;color:#fff;background:var(--accent);
    border-radius:2px;letter-spacing:0.03em;transition:opacity .2s;
  }
  .write-submit-btn:hover{opacity:.85;}
  .write-submit-btn:disabled{opacity:.5;cursor:default;}
  .write-error{color:#b5573c;font-size:13px;margin-bottom:14px;}

  .board-featured{
    position:relative;
    border:1px solid var(--border);border-radius:4px;padding:28px 26px;margin-bottom:32px;
    background:#efe8d9;
  }
  .board-featured .bf-badge{
    display:inline-block;font-size:11px;letter-spacing:0.08em;color:#fff;
    background:var(--accent);padding:2px 10px;border-radius:10px;margin-bottom:10px;
  }
  .board-featured .bf-date{font-size:13px;color:var(--muted-foreground);margin-bottom:6px;}
  .board-featured .bf-author{font-size:12px;color:var(--muted-foreground);margin-bottom:10px;}
  .board-row-detail .b-author{font-size:12px;color:var(--muted-foreground);margin-bottom:10px;}
  .board-featured .bf-title{font-size:26px;font-weight:700;margin-bottom:10px;line-height:1.4;}
  .board-featured .bf-sub{font-size:17px;color:var(--muted-foreground);margin-bottom:14px;line-height:1.7;white-space:pre-wrap;}
  .content-link{color:var(--accent);text-decoration:underline;word-break:break-all;}
  .field-label{color:inherit;font-weight:400;}
  .board-featured .bf-link{
    display:inline-block;font-size:14px;color:var(--accent);font-weight:600;
  }
  .bf-image{margin-top:6px;}
  .bf-image img{display:block;max-width:100%;max-height:420px;border-radius:4px;object-fit:contain;}
  .bf-pdf{margin-top:6px;}
  .bf-pdf iframe{display:block;width:100%;height:520px;border:1px solid var(--border);border-radius:4px;}
  .bf-pdf .bf-link{display:inline-block;margin-top:10px;}

  .gallery-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;
  }
  .gallery-thumb{aspect-ratio:1;border-radius:4px;overflow:hidden;cursor:pointer;background:#eee;}
  .gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .2s;}
  .gallery-thumb:hover img{opacity:.85;}

  .board-file-block{margin-top:14px;}
  .board-file-name{font-size:14px;font-weight:600;color:var(--foreground);margin-bottom:6px;}
  .board-file-block iframe{display:block;width:100%;height:480px;border:1px solid var(--border);border-radius:4px;}
  .board-file-link{display:inline-block;margin-top:8px;font-size:13px;color:var(--accent);font-weight:600;}

  .image-lightbox{position:relative;width:100%;max-width:800px;}
  .image-lightbox img{width:100%;max-width:800px;display:block;border-radius:4px;}
  .image-lightbox-close{
    position:absolute;top:-42px;right:0;width:36px;height:36px;border-radius:50%;
    background:rgba(28,24,16,0.65);color:#fff;font-size:20px;line-height:1;
    display:flex;align-items:center;justify-content:center;
  }
  .image-lightbox-close:hover{background:var(--accent);}
  .image-lightbox-nav{
    position:absolute;top:50%;transform:translateY(-50%);
    width:44px;height:44px;border-radius:50%;
    background:rgba(28,24,16,0.55);color:#fff;font-size:18px;line-height:1;
    display:flex;align-items:center;justify-content:center;
    transition:background .2s;z-index:2;
  }
  .image-lightbox-nav:hover{background:var(--accent);}
  .image-lightbox-prev{left:12px;}
  .image-lightbox-next{right:12px;}
  .image-lightbox-counter{
    position:absolute;bottom:-32px;left:50%;transform:translateX(-50%);
    font-size:13px;color:#fff;background:rgba(28,24,16,0.55);
    padding:4px 12px;border-radius:999px;letter-spacing:0.03em;
  }
  @media (max-width:1000px){
    .image-lightbox-nav{width:38px;height:38px;font-size:15px;}
    .image-lightbox-prev{left:6px;}
    .image-lightbox-next{right:6px;}
  }
  .video-lightbox{position:relative;width:100%;max-width:960px;}
  .video-lightbox-inner{position:relative;width:100%;padding-top:56.25%;border-radius:4px;overflow:hidden;background:#000;}
  .video-lightbox-inner iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
  .live-worship-closed{position:relative;width:100%;max-width:440px;background:#fdfaf3;border-radius:8px;padding:52px 36px;text-align:center;}
  .live-worship-closed .lwc-title{font-family:"Noto Serif KR",serif;font-weight:700;font-size:19px;margin-bottom:16px;color:var(--foreground);}
  .live-worship-closed .lwc-desc{font-size:15px;color:var(--muted-foreground);line-height:1.8;}
  .live-worship-closed .lwc-jp{font-family:"Noto Sans JP",sans-serif;}
  .live-worship-closed .lwc-title.lwc-jp{margin-top:22px;}
  .board-list-heading{font-size:13px;color:var(--muted-foreground);letter-spacing:0.05em;margin-bottom:8px;}

  .board-audio{margin-top:10px;}
  .board-audio audio{width:100%;height:40px;border-radius:999px;background:transparent;}
  .board-featured .board-audio{margin-top:14px;margin-bottom:14px;}

  .dawn-embed{text-align:left;padding-top:32px;}
  .dawn-btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 22px;
    border-radius:999px;
    background:var(--background);
    border:1px solid rgba(28,24,16,0.15);
    color:var(--foreground);
    font-size:17px;font-weight:500;letter-spacing:0.01em;
    margin-bottom:10px;
    transition:background .25s ease,color .25s ease,border-color .25s ease,transform .2s ease;
  }
  .dawn-btn-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .dawn-btn-icon svg{display:block;}
  .dawn-btn-label{display:flex;flex-direction:column;line-height:1.3;}
  .dawn-btn-kr{font-family:"Noto Sans KR",sans-serif;font-size:17px;font-weight:500;}
  .dawn-btn-jp{font-family:"Noto Sans JP",sans-serif;font-size:13px;color:var(--muted-foreground);margin-top:2px;transition:color .25s ease;}
  .dawn-btn-arrow{display:flex;align-items:center;margin-left:2px;flex-shrink:0;transition:transform .25s ease;}
  .dawn-btn:hover{background:#034421;border-color:#034421;color:#fff;transform:translateY(-1px);}
  .dawn-btn:hover .dawn-btn-jp{color:#fff;}
  .dawn-btn:hover .dawn-btn-arrow{transform:translateX(3px);}
  .dawn-embed-board{max-width:1232px;margin:0 auto;text-align:left;}
  .dawn-home-list{display:flex;flex-direction:column;}
  .dawn-home-item{padding:18px 0;border-bottom:1px solid var(--border);}
  .dawn-home-item:first-child{padding-top:0;}
  .dawn-home-item:last-child{border-bottom:none;}
  .dawn-home-meta{font-size:15px;color:var(--muted-foreground);margin-bottom:10px;}
  .dawn-home-meta .dawn-home-date{margin-left:6px;}
  .dawn-home-item audio{width:100%;height:40px;border-radius:999px;display:block;background:transparent;}

  /* ---------- 홈 화면 알림 섹션 (오시는 길과 함께 2단 배치) ---------- */
  .merge-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;padding-top:64px;}
  .notice-embed{text-align:left;}
  .notice-embed-board{text-align:left;margin-top:40px;}
  .notice-col-head{display:flex;align-items:center;flex-wrap:wrap;gap:18px;}
  .notice-tagline{
    font-family:"Noto Serif KR",serif;
    font-size:clamp(21px,2.6vw,26px);line-height:1.3;color:var(--foreground);white-space:nowrap;
  }
  .notice-tagline .t1{font-weight:400;}
  .notice-tagline .t2{font-weight:900;}
  .notice-home-list{display:flex;flex-direction:column;}
  .notice-home-item{
    display:flex;align-items:baseline;justify-content:space-between;gap:18px;
    min-height:20px;
    padding:16px 0;border-bottom:1px solid var(--border);
    color:var(--foreground);transition:color .2s ease;
  }
  .notice-home-item:first-child{padding-top:0;}
  .notice-home-item:last-child{border-bottom:none;}
  .notice-home-item:hover{color:#034421;}
  .notice-home-title{font-size:14px;flex:1;}
  .notice-home-date{font-family:"SF Mono","Courier New",monospace;font-size:14px;color:var(--muted-foreground);flex-shrink:0;}

  /* 오시는 길 버튼(dawn-btn 재사용) + 버튼과 한 줄로 나란히 놓이는 타이틀 */
  .visit-col{text-align:left;}
  .visit-col-head{display:flex;align-items:center;flex-wrap:wrap;gap:18px;}
  .visit-col-head .access-btn{margin-bottom:0;}
  .notice-col-head .dawn-btn{margin-bottom:0;}
  .visit-tagline{
    font-family:"Noto Serif KR",serif;
    font-size:clamp(21px,2.6vw,26px);line-height:1.3;color:var(--foreground);white-space:nowrap;
  }
  .visit-tagline .t1{font-weight:400;}
  .visit-tagline .t2{font-weight:900;}

  /* ---------- 홈 화면 예배실황 섹션 ---------- */
  .worship-embed{text-align:left;padding-top:56px;}
  .worship-embed-board{max-width:1232px;margin:0 auto;text-align:left;}
  .worship-info-row{
    display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;
    padding:24px 0 28px;border-bottom:1px solid var(--border);margin-bottom:24px;
  }
  .worship-info-text p{font-size:16px;color:var(--foreground);line-height:1.7;}
  .worship-info-text p.jp{font-family:"Noto Sans JP",sans-serif;font-size:12px;color:var(--muted-foreground);margin-top:6px;}
  .worship-channel-actions{display:flex;flex-wrap:wrap;gap:12px;}
  .worship-channel-btn,.worship-subscribe-btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:13px 26px;border-radius:4px;font-size:15px;font-weight:600;letter-spacing:0.02em;
    transition:opacity .2s,background .2s;white-space:nowrap;
  }
  .worship-channel-btn{background:#f3eee7;color:var(--foreground);border:1px solid var(--border);}
  .worship-channel-btn:hover{background:#e7dec9;}
  .worship-subscribe-btn{background:#FF0000;color:#fff;}
  .worship-subscribe-btn:hover{opacity:.85;}
  .subscribe-img-link{display:inline-flex;align-items:center;transition:opacity .2s;}
  .subscribe-img-link:hover{opacity:.85;}
  .subscribe-img-link img{height:40px;width:auto;display:block;}

  .worship-home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px;}
  .worship-home-thumb{position:relative;border-radius:6px;overflow:hidden;cursor:pointer;aspect-ratio:16/9;background:#111;}
  .worship-home-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease,opacity .3s ease;}
  .worship-home-thumb:hover img{transform:scale(1.04);opacity:.85;}
  .worship-home-play{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:52px;height:52px;border-radius:50%;background:rgba(28,24,16,0.65);
    color:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s;
  }
  .worship-home-thumb:hover .worship-home-play{background:var(--accent);}
  .worship-home-caption{
    position:absolute;left:0;right:0;bottom:0;padding:24px 12px 10px;
    background:linear-gradient(to top, rgba(0,0,0,0.75), rgba(0,0,0,0));
    color:#fff;font-size:13px;font-weight:500;line-height:1.4;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .worship-loadmore-btn{
    display:block;margin:0 auto 56px;padding:13px 40px;border-radius:999px;
    background:var(--background);border:1px solid rgba(28,24,16,0.15);
    font-size:15px;font-weight:500;color:var(--foreground);letter-spacing:0.02em;
    transition:background .25s ease,color .25s ease,border-color .25s ease;
  }
  .worship-loadmore-btn:hover{background:#034421;border-color:#034421;color:#fff;}
  @media (max-width:1000px){
    .worship-home-grid{grid-template-columns:1fr;gap:16px;}
    .worship-info-row{flex-direction:column;align-items:flex-start;}
  }

  /* ---------- 드롭다운 하위메뉴 ---------- */
  .nav-item{position:relative;flex-shrink:0;}
  .nav-item .submenu{
    position:absolute;top:100%;left:50%;transform:translate(-50%,4px);
    background:var(--background);border:1px solid var(--border);
    padding:12px 0;min-width:190px;border-radius:2px;
    box-shadow:0 20px 36px -18px rgba(28,24,16,0.28);
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .2s, transform .2s;
    z-index:80;
  }
  .nav-item:hover .submenu,
  .nav-item:focus-within .submenu{
    opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);
  }
  .submenu a{
    display:block;padding:8px 20px;font-size:15px;color:var(--muted-foreground);
    white-space:nowrap;text-transform:none;letter-spacing:0;transition:color .15s,background .15s;
  }
  .submenu a:hover{color:var(--foreground);background:rgba(28,24,16,0.045);}
  .submenu .sub-head{
    display:block;padding:8px 20px;font-size:15px;letter-spacing:0;
    color:var(--accent);font-weight:700;margin-top:8px;text-transform:none;
    transition:color .15s,background .15s;
  }
  .submenu .sub-head:hover{background:rgba(28,24,16,0.045);}
  .submenu .sub-head:first-child{margin-top:0;}
  .submenu .nested a{padding-left:34px;font-size:14px;}
  .submenu .divider{height:1px;background:var(--border);margin:8px 0;}
  nav button{
    font-size:17px;letter-spacing:0.1em;text-transform:uppercase;
    color:var(--muted-foreground);transition:color .25s;
  }
  nav button:hover{color:var(--foreground);}

  /* ---------- 모바일 햄버거 메뉴 토글 (데스크탑에서는 숨김) ---------- */
  .nav-toggle{
    display:none;flex-direction:column;justify-content:center;align-items:center;
    gap:5px;width:44px;height:44px;flex-shrink:0;
  }
  .nav-toggle span{
    display:block;width:22px;height:2px;background:var(--foreground);
    border-radius:2px;transition:transform .25s ease,opacity .2s ease;
  }
  .nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.active span:nth-child(2){opacity:0;}
  .nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  .nav-item-row{display:flex;align-items:center;}
  .submenu-toggle{display:none;}
  .submenu-toggle .caret{
    display:block;width:8px;height:8px;
    border-right:2px solid var(--muted-foreground);border-bottom:2px solid var(--muted-foreground);
    transform:rotate(45deg);transition:transform .2s ease;
  }

  .hero{
    position:relative;min-height:100vh;
    display:flex;flex-direction:column;justify-content:flex-end;
    overflow:hidden;
  }
  .hero-bg{
    position:absolute;inset:0;
  }
  .hero-bg picture{display:block;width:100%;height:100%;}
  .hero-bg img{
    width:100%;height:100%;object-fit:cover;object-position:center top;opacity:1;
  }
  .hero-bg .gradient{
    position:absolute;inset:0;
    background:none;
  }
  .watermark{
    display:none;
  }
  .hero-content{
    position:relative;max-width:1280px;margin:0 auto;width:100%;
    padding:172px 24px 92px;
  }
  .eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:40px;transform:translateY(calc(-1 * clamp(20px, min(7vw, 9vh), 92px)));}
  .eyebrow .line{display:block;width:40px;height:1px;background:var(--accent);flex-shrink:0;}
  .eyebrow span{
    font-family:"Libre Baskerville",serif;
    font-size:clamp(11px,2.8vw,16px);letter-spacing:0.35em;text-transform:uppercase;color:var(--accent);
    min-width:0;
  }
  .hero h1{
    font-family:"Noto Serif KR",serif;
    font-weight:900;
    font-size:clamp(38px, min(7vw, 9vh), 92px);
    letter-spacing:-0.02em;
    line-height:1.18;
    margin-bottom:32px;
    transform:translateY(calc(-1 * clamp(20px, min(7vw, 9vh), 92px)));
    -webkit-text-stroke:2px #fff;
    paint-order:stroke fill;
  }
  .hero h1 .outline{
    color:var(--foreground);
    -webkit-text-fill-color:var(--foreground);
  }
  .hero h1 .accent-green{color:#034421;}
  .hero h1 .accent-cross{color:#824c26;}
  .hero h1 .mobile-br{display:none;}
  .hero-bottom{
    display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  }
  .subcopy{
    font-family:"Noto Sans KR",sans-serif;font-weight:300;
    font-size:clamp(14.5px,3.9vw,19px);line-height:1.8;color:#5a5548;max-width:430px;
    transform:translateY(calc(-1 * clamp(20px, min(7vw, 9vh), 92px)));
  }
  .ctas{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(10px, min(3vw, 3.9vh), 21px);margin-top:36px;margin-bottom:36px;transform:translateY(calc(-1 * clamp(20px, min(7vw, 9vh), 92px)));}
  .cta-btn{
    display:flex;align-items:center;gap:10px;
    padding:clamp(10px, min(3vw, 3.9vh), 14px) clamp(16px, min(5vw, 6.4vh), 26px);
    border-radius:999px;
    background:var(--background);
    border:1px solid rgba(3,68,33,0.3);
    color:#034421;
    font-size:clamp(12.5px, min(3.1vw, 4vh), 15px);font-weight:500;letter-spacing:0.01em;
    transition:background .25s ease,color .25s ease,border-color .25s ease,transform .2s ease;
  }
  .cta-btn .cta-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .cta-btn .cta-icon svg{display:block;stroke:currentColor;width:clamp(16px, min(4.2vw, 5.4vh), 24px);height:clamp(16px, min(4.2vw, 5.4vh), 24px);}
  .cta-btn .cta-icon svg [fill]:not([fill="none"]){fill:currentColor;}
  .cta-btn .cta-arrow{display:flex;align-items:center;margin-left:2px;flex-shrink:0;transition:transform .25s ease;}
  .cta-btn .cta-arrow svg{width:clamp(14px, min(3.6vw, 4.6vh), 21px);height:clamp(14px, min(3.6vw, 4.6vh), 21px);}
  .cta-btn:hover{background:#034421;border-color:#034421;color:#fff;transform:translateY(-1px);}
  .cta-btn:hover .cta-arrow{transform:translateX(3px);}

  .service-bar{position:relative;z-index:5;max-width:calc(100% - 160px);margin:-64px auto 0;background:rgba(255,255,255,.94);border:1px solid rgba(40,58,45,.12);border-radius:8px;box-shadow:0 18px 45px rgba(23,31,28,.12);backdrop-filter:blur(14px);}
  .service-grid{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;max-width:100%;margin:0 auto;padding:18px 22px;
  }
  .service-item{display:flex;align-items:center;gap:18px;padding:8px 30px;border-right:1px solid rgba(40,58,45,.14);}
  .service-item:last-child{border-right:none;}
  .service-icon{flex:0 0 56px;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#f3eee7;color:var(--accent);}
  .service-copy{min-width:0;}
  .service-item .jp-label{
    margin:0 0 6px;font-family:"Noto Sans JP",sans-serif;font-size:12px;font-weight:500;color:var(--muted-foreground);letter-spacing:0;
  }
  .service-item .row{display:flex;flex-direction:column;align-items:flex-start;gap:4px;}
  .service-item .kr-name{font-family:"Noto Serif KR",serif;font-size:15px;font-weight:700;line-height:1.2;color:var(--foreground);}
  .service-item .time{
    font-family:"Noto Serif KR",serif;font-size:15px;font-weight:700;line-height:1.2;color:var(--accent);letter-spacing:.08em;white-space:nowrap;
  }

  .section{max-width:1280px;margin:0 auto;padding:0 24px;}
  .sermon-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:64px;align-items:start;}
  .sermon-feature .verse-tag{
    display:inline-block;font-size:11px;font-weight:600;letter-spacing:0.05em;
    color:var(--accent);background:rgba(181,87,60,0.08);
    padding:5px 12px;border-radius:2px;margin-right:12px;
  }
  .sermon-feature .date{
    font-family:"SF Mono","Courier New",monospace;font-size:11px;color:var(--muted-foreground);
  }
  .sermon-feature h3{
    font-family:"Noto Serif KR",serif;font-weight:700;
    font-size:clamp(28px,3.4vw,40px);line-height:1.3;margin:24px 0 32px;letter-spacing:-0.01em;
  }
  .sermon-feature .photo{
    width:100%;aspect-ratio:16/9;border-radius:4px;overflow:hidden;margin-bottom:32px;
    box-shadow:0 18px 40px -20px rgba(28,24,16,0.35);
  }
  .sermon-feature .photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .play-row{display:flex;align-items:center;gap:16px;}
  .play-btn{
    width:44px;height:44px;border-radius:50%;border:1px solid rgba(28,24,16,0.25);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
    transition:all .25s;
  }
  .play-btn:hover{background:var(--foreground);border-color:var(--foreground);}
  .play-btn:hover svg{stroke:var(--background);fill:var(--background);}
  .play-row .label-col .t{font-size:13px;color:var(--foreground);}
  .play-row .label-col .d{font-size:11px;color:var(--muted-foreground);margin-top:2px;}

  .sermon-list{background:#efe8d9;border:1px solid var(--border);border-radius:4px;overflow:hidden;}
  .sermon-list .item{
    padding:20px 24px;border-bottom:1px solid var(--border);position:relative;
    transition:background .2s;cursor:pointer;
  }
  .sermon-list .item:last-child{border-bottom:none;}
  .sermon-list .item:hover{background:rgba(28,24,16,0.03);}
  .sermon-list .item.active{background:#e7dec9;}
  .sermon-list .item .meta{
    font-family:"SF Mono","Courier New",monospace;font-size:11px;color:var(--muted-foreground);
    margin-bottom:6px;display:flex;align-items:center;gap:10px;
  }
  .sermon-list .item .dot-new{
    width:6px;height:6px;border-radius:50%;background:var(--accent);
    position:absolute;top:22px;right:22px;
  }
  .sermon-list .item .title{
    font-family:"Noto Serif KR",serif;font-size:16px;font-weight:500;
  }

  /* ---------- 말씀 인용 섹션 ---------- */
  .quote-section{
    position:relative;overflow:hidden;
    padding:120px 24px;
  }
  .quote-section .qbg{position:absolute;inset:0;}
  .quote-section .qbg img{width:100%;height:100%;object-fit:cover;filter:grayscale(0.15);}
  .quote-section .qbg::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(28,24,16,0.82), rgba(28,24,16,0.78));
  }
  .quote-inner{position:relative;max-width:880px;margin:0 auto;text-align:left;}
  .quote-inner .verse-ref{
    font-family:"Libre Baskerville",serif;font-style:italic;
    font-size:15px;letter-spacing:0.05em;color:rgba(244,238,225,0.65);margin-bottom:28px;
  }
  .quote-inner blockquote{
    font-family:"Noto Serif KR",serif;font-weight:700;
    font-size:clamp(24px,4vw,45px);line-height:1.35;color:#f5f1e7;letter-spacing:-0.01em;
  }
  .quote-inner .jp-line{
    margin-top:28px;font-family:"Noto Sans JP",sans-serif;font-weight:300;
    font-size:15px;letter-spacing:0.04em;color:rgba(244,238,225,0.55);
  }

  /* ---------- 알림 / 예배시간 섹션 ---------- */
  .notice-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;}
  .notice-list .item{
    display:flex;align-items:baseline;gap:18px;padding:18px 0;border-bottom:1px solid var(--border);
  }
  .notice-list .item .date{
    font-family:"SF Mono","Courier New",monospace;font-size:11px;color:var(--muted-foreground);flex-shrink:0;
  }
  .notice-list .item .title{font-size:14px;color:var(--foreground);flex:1;}
  .notice-list .item svg{flex-shrink:0;color:var(--muted-foreground);}
  .worship-list .item{
    display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--border);
  }
  .worship-list .item .names .kr{font-family:"Noto Serif KR",serif;font-size:15px;font-weight:500;}
  .worship-list .item .names .jp{font-family:"Noto Sans JP",sans-serif;font-size:11px;color:var(--muted-foreground);margin-top:2px;}
  .worship-list .item .time{font-family:"SF Mono","Courier New",monospace;font-size:12px;color:var(--muted-foreground);}

  .worship-info{
    margin-top:24px;padding-left:18px;border-left:2px solid var(--accent);
  }
  .worship-info p{font-size:12px;color:var(--muted-foreground);line-height:1.8;}
  .worship-info b{color:var(--foreground);font-weight:500;}

  /* ---------- 끊김 없는 텍스처 띠 (CSS 패턴, 시임 없음) ---------- */
  .texture-band{
    position:relative;height:160px;overflow:hidden;
    background-color:#ece5d3;
    background-image:
      repeating-linear-gradient(
        90deg,
        rgba(28,24,16,0.05) 0px,
        rgba(28,24,16,0.05) 2px,
        transparent 2px,
        transparent 46px
      );
    border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  }
  .texture-band::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(ellipse at center, transparent 30%, #ece5d3 95%);
  }

  /* ---------- 오시는 길 섹션 ---------- */
  .visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
  .visit-heading .line1{
    font-family:"Noto Serif KR",serif;font-weight:400;
    font-size:clamp(34px,5vw,64px);line-height:1.15;color:var(--foreground);
  }
  .visit-heading .line2{
    font-family:"Noto Serif KR",serif;font-weight:900;
    font-size:clamp(34px,5vw,64px);line-height:1.15;color:var(--foreground);
  }
  .visit-info{margin-top:40px;}
  .visit-info .row{display:flex;gap:18px;padding:16px 0;border-bottom:1px solid var(--border);}
  .visit-info .row:last-child{border-bottom:none;}
  .visit-info .row .k{
    font-family:"Noto Serif KR",serif;font-weight:700;font-size:14px;flex-shrink:0;width:48px;
  }
  .visit-info .row .sep{color:var(--muted-foreground);flex-shrink:0;}
  .visit-info .row .v{font-size:14px;color:var(--foreground);line-height:1.8;}
  .visit-info .row .v b{color:var(--foreground);font-weight:500;}

  /* ---------- 푸터 ---------- */
  footer{border-top:1px solid var(--border);padding:56px 24px 32px;}
  .footer-inner{
    max-width:1280px;margin:0 auto;
    display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:24px;
  }
  .footer-brand .kr{font-family:"Noto Serif KR",serif;font-weight:700;font-size:16px;}
  .footer-brand .sub{font-family:"Noto Sans JP",sans-serif;font-size:12px;color:var(--muted-foreground);margin-top:4px;}
  .footer-nav{display:flex;gap:32px;flex-wrap:wrap;}
  .footer-nav a{font-size:12px;letter-spacing:0.05em;color:var(--muted-foreground);transition:color .25s;}
  .footer-nav a:hover{color:var(--foreground);}
  .footer-bottom{
    max-width:1280px;margin:32px auto 0;padding-top:24px;border-top:1px solid var(--border);
  }
  .footer-bottom p{font-size:11px;color:var(--muted-foreground);letter-spacing:0.03em;}

  @media (max-width:1000px){
    .merge-grid{grid-template-columns:1fr;gap:48px;}
    .footer-inner{flex-direction:column;}
    .notice-col-head{gap:10px;}
    .notice-tagline{font-size:clamp(20px,4vw,23px);}
  }

  @media (max-width:1000px){
    .sermon-grid{grid-template-columns:1fr;gap:40px;}
    .section{padding:0 20px;}
    .quote-section{padding:40px 20px;}

    /* ── 헤더: 로고 + 햄버거 버튼만 한 줄, 메뉴는 드롭다운 패널 ── */
    .nav-wrap{height:auto;padding:12px 20px;flex-wrap:nowrap;justify-content:space-between;}
    .brand img{height:52px;}
    .nav-toggle{display:flex;}

    nav#mainNav{
      display:none;flex-direction:column;align-items:stretch;
      position:absolute;top:100%;left:0;right:0;
      background:var(--background);border-top:1px solid var(--border);
      box-shadow:0 24px 40px -20px rgba(28,24,16,0.32);
      max-height:calc(100vh - 84px);overflow-y:auto;
      padding:4px 20px 20px;gap:0;width:auto;white-space:normal;
    }
    nav#mainNav.mobile-open{display:flex;}
    nav#mainNav::-webkit-scrollbar{display:none;}

    .nav-item{position:static;width:100%;border-bottom:1px solid var(--border);}
    .nav-item:last-of-type{border-bottom:none;}
    .nav-item-row{width:100%;justify-content:space-between;}
    .nav-item-row > button:first-child{
      flex:1;text-align:left;padding:16px 4px;
      font-size:15px;letter-spacing:0.02em;text-transform:none;
    }
    .submenu-toggle{display:flex;}
    .nav-item.open > .nav-item-row .submenu-toggle .caret{transform:rotate(-135deg);}

    .nav-item .submenu{
      position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
      display:none;box-shadow:none;border:none;width:auto;min-width:0;
      padding:0 0 12px 8px;
    }
    .nav-item.open .submenu{display:block;}
    /* PC용 hover/focus-within 규칙이 모바일에서 서브메뉴를 옆으로 밀어버리는 것 방지 */
    .nav-item:hover .submenu,
    .nav-item:focus-within .submenu{transform:none;}
    .submenu a,.submenu .sub-head{padding:9px 10px;font-size:14px;}

    .lang-switch{
      flex-direction:row;align-items:center;gap:10px;width:100%;
      padding:14px 4px 4px;margin-left:0;border-left:none;border-top:1px solid var(--border);
      margin-top:4px;font-size:12px;
    }
    .lang-switch .sep{display:inline;color:var(--border);}

    .service-bar{max-width:calc(100% - 32px);margin:-40px auto 0;}
    .service-grid{grid-template-columns:repeat(2,1fr);padding:12px;}
    .service-item:nth-child(2){border-right:none;}
    .service-item{padding:12px;gap:12px;}
    .service-icon{width:46px;height:46px;flex-basis:46px;}
    .service-item .kr-name,.service-item .time{font-size:13px;}

    /* ── 히어로: 100vh 고정 대신 내용에 맞춰 자연스러운 높이로 → 로그인 버튼과 안 겹침 ── */
    .hero{height:auto;min-height:0;}
    .hero-content{padding-top:132px;padding-bottom:48px;}
    .eyebrow{margin-bottom:20px;}
    .hero h1{margin-bottom:20px;}
    .hero h1 .mobile-br{display:inline;}
    .hero-bottom{gap:16px;}
    .subcopy-hl{
      background:rgba(245,241,231,0.55);
      box-decoration-break:clone;
      -webkit-box-decoration-break:clone;
      padding:0.12em 0.32em;
      border-radius:3px;
    }

    .auth-float{bottom:16px;right:16px;}
    .login-btn{padding:10px 16px;font-size:13px;}
  }


/* ── SPA 공통 ── */
.page-banner{padding:190px 24px 56px;max-width:1280px;margin:0 auto;}
@media (max-width:1000px){
  .page-banner{padding-top:104px;padding-bottom:40px;}
}
.page-banner .crumbs{font-size:12px;color:var(--muted-foreground);letter-spacing:.05em;margin:0 0 18px;}
.page-banner .crumbs a,.page-banner .crumbs span{color:var(--muted-foreground);}
.page-banner .crumbs a:hover{color:var(--foreground);cursor:pointer;}
.page-banner h1{font-family:"Noto Serif KR",serif;font-weight:900;font-size:clamp(34px,5vw,56px);letter-spacing:-.01em;margin:0 0 12px;}
.page-banner .jp-sub{font-family:"Noto Sans JP",sans-serif;font-size:14px;color:var(--muted-foreground);margin-top:10px;}
.page-content{max-width:880px;margin:0 auto;padding:0 24px 120px;}
.page-content.access-content{max-width:1280px;}
.page-content h2{font-family:"Noto Serif KR",serif;font-weight:700;font-size:22px;margin:48px 0 20px;letter-spacing:-.01em;border-bottom:1px solid var(--border);padding-bottom:10px;}
.page-content h2:first-child{margin-top:0;}
.page-content p{font-size:17px;line-height:1.9;color:#3a3530;margin-bottom:14px;}
.page-content p.muted{color:var(--muted-foreground);font-size:15px;}
.page-content .verse-box{background:#efe8d9;border-left:3px solid var(--accent);padding:20px 24px;margin:24px 0;font-family:"Noto Serif KR",serif;font-size:17px;line-height:1.9;}
.page-content .verse-box .ref{display:block;margin-top:10px;font-size:14px;color:var(--muted-foreground);}
.page-content ul{margin:0 0 20px;padding-left:0;list-style:none;}
.page-content ul li{font-size:17px;line-height:1.8;color:#3a3530;padding:10px 0;border-bottom:1px solid var(--border);}
.page-content ul li:last-child{border-bottom:none;}

/* ── 심방신청 안내 카드 ── */
.visit-info-card{background:#efe8d9;border-left:3px solid var(--accent);padding:26px 28px;margin:8px 0 36px;border-radius:4px;}
.visit-info-intro{font-size:17px;font-weight:600;margin-bottom:16px;color:var(--foreground);}
.visit-info-title{font-size:15px;margin-bottom:10px;color:var(--foreground);}
.visit-info-list{margin:0;padding-left:0;list-style:none;}
.page-content .visit-info-list li{position:relative;padding:6px 0 6px 18px;font-size:15px;line-height:1.7;color:#3a3530;border-bottom:none;}
.page-content .visit-info-list li::before{content:"•";position:absolute;left:0;top:6px;color:var(--accent);}
.req-star{color:#c0392b;font-weight:700;}

#content-area{opacity:1;transition:opacity .18s ease;}
#content-area.fading{opacity:0;}

/* ── 교회철학 ── */
.policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0 40px;}
.policy-card{background:#efe8d9;padding:24px 22px;border-radius:4px;}
.policy-num{font-family:"Libre Baskerville",serif;font-size:11px;letter-spacing:.3em;color:var(--accent);margin-bottom:10px;}
.policy-title{font-family:"Noto Serif KR",serif;font-weight:700;font-size:17px;margin-bottom:12px;}
.policy-verse{font-size:15px;line-height:1.8;color:#3a3530;margin-bottom:10px;}
.policy-ref{font-size:13px;color:var(--muted-foreground);letter-spacing:.05em;}
.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0;}
.practice-block{border-top:2px solid var(--accent);padding-top:16px;}
.practice-title{font-family:"Noto Serif KR",serif;font-weight:700;font-size:17px;margin-bottom:14px;color:var(--foreground);}

/* ── 섬기는 사람 ── */
.pastor-card{display:flex;gap:36px;align-items:flex-start;margin:24px 0 48px;background:#efe8d9;padding:28px;border-radius:4px;}
.pastor-card-tight{padding-bottom:0;}
.pastor-photo img{width:360px;height:auto;border-radius:4px;display:block;object-fit:cover;}
.pastor-photo{flex-shrink:0;}
.pastor-photo-sm{width:360px;display:flex;justify-content:center;}
.pastor-photo-sm img{width:180px;}
.pastor-name{font-family:"Noto Serif KR",serif;font-weight:900;font-size:22px;margin-bottom:4px;}
.pastor-title{font-size:15px;color:var(--muted-foreground);margin-bottom:16px;letter-spacing:.03em;}
.pastor-info ul{list-style:none;padding:0;}
.pastor-info ul li{font-size:16px;line-height:1.8;color:#3a3530;padding:3px 0;border-bottom:none;}
.staff-section{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:20px 0;}
.staff-group{background:#efe8d9;padding:20px 22px;border-radius:4px;}
.staff-group-title{font-family:"Noto Serif KR",serif;font-weight:700;font-size:14px;color:var(--accent);margin-bottom:12px;letter-spacing:.05em;}
.staff-names{font-size:16px;line-height:2;color:#3a3530;}
.honor{font-size:11px;color:var(--muted-foreground);margin-left:4px;}

/* ── 사역조직 ── */
.org-table-wrap{overflow-x:auto;margin:20px 0;}
.org-table{width:100%;border-collapse:collapse;font-size:13px;}
.org-table th{background:#1c1810;color:#f5f1e7;padding:10px 14px;text-align:left;font-family:"Noto Serif KR",serif;font-weight:600;font-size:14px;letter-spacing:.05em;}
.org-table td{border:1px solid var(--border);padding:9px 14px;color:#3a3530;line-height:1.6;vertical-align:top;font-size:15px;}
.org-table .dept{background:#efe8d9;font-family:"Noto Serif KR",serif;font-weight:700;font-size:13px;text-align:center;vertical-align:middle;}
.org-table tr:hover td{background:rgba(28,24,16,.03);}

/* ── 예배안내 ── */
.worship-schedule{margin:20px 0 40px;border:1px solid var(--border);border-radius:4px;overflow:hidden;}
.ws-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:24px;padding:16px 24px;border-bottom:1px solid var(--border);}
.ws-row:last-child{border-bottom:none;}
.ws-row:hover{background:rgba(28,24,16,.025);}
.ws-name .kr{font-family:"Noto Serif KR",serif;font-weight:600;font-size:17px;}
.ws-name .jp{font-family:"Noto Sans JP",sans-serif;font-size:11px;color:var(--muted-foreground);margin-top:2px;}
.ws-time{font-size:15px;color:var(--foreground);white-space:nowrap;}
.ws-time strong{font-size:18px;}
.ws-place{font-size:12px;color:var(--muted-foreground);white-space:nowrap;min-width:80px;text-align:right;}

/* ── 오시는 길 ── */
.access-grid{display:grid;grid-template-columns:0.9fr 1fr 1fr;gap:32px;margin:24px 0;align-items:stretch;}
.access-info{margin-bottom:8px;}
.access-row{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--border);}
.access-row:last-child{border-bottom:none;}
.access-k{font-family:"Noto Serif KR",serif;font-weight:600;font-size:13px;color:var(--accent);min-width:52px;flex-shrink:0;padding-top:2px;}
.access-v{font-size:16px;line-height:1.8;color:#3a3530;}
.map-wrap{border-radius:4px;overflow:hidden;border:1px solid var(--border);height:100%;min-height:380px;}
.access-photo{border-radius:4px;overflow:hidden;border:1px solid var(--border);height:100%;min-height:380px;}

@media(max-width:1000px){
  .policy-grid,.practice-grid{grid-template-columns:1fr;}
  .pastor-card{flex-direction:column;}
  .pastor-photo{width:100%;display:flex;justify-content:center;}
  .pastor-photo img{width:100%;max-width:240px;margin:0 auto;}
  .pastor-photo-sm{width:100%;}
  .pastor-photo-sm img{width:140px;}
  .staff-section{grid-template-columns:1fr;}
  .ws-row{grid-template-columns:1fr auto;gap:8px;}
  .ws-place{display:none;}
  .access-grid{grid-template-columns:1fr;}
}


.facility-table td:first-child{text-align:center;font-family:"SF Mono","Courier New",monospace;font-weight:700;color:var(--accent);}
.facility-table tbody tr:nth-child(even) td{background:rgba(181,87,60,0.06);}




.hero-glow-overlay {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0.4;
  pointer-events: none;
  z-index: 1;
  animation: crossGlowPulse 4s ease-in-out infinite;
}
@keyframes crossGlowPulse {
  0%, 100% {
    opacity: 0.35;
    filter: blur(1px) brightness(1) sepia(0.25) hue-rotate(-8deg) saturate(1.2);
  }
  50% {
    opacity: 1;
    filter: blur(7px) brightness(1.35) sepia(0.55) hue-rotate(-15deg) saturate(1.7);
  }
}

.practice-edit-mode li[contenteditable="true"] {
  outline: 1px dashed var(--accent);
  background: rgba(181,87,60,0.04);
  cursor: text;
}
.practice-edit-mode li[contenteditable="true"]:focus {
  outline: 2px solid var(--accent);
  background: rgba(181,87,60,0.08);
}

/* Marquee restore */
.marquee-section{
  position:relative;
  z-index:1;
  width:100%;
  overflow:hidden;
  white-space:nowrap;
  background: transparent;
  color: var(--foreground);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:18px 0;
  line-height:1;
}
.marquee-track{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  width:max-content;
  min-width:max-content;
  white-space:nowrap;
  animation:marquee-scroll 34s linear infinite;
  will-change:transform;
}
.marquee-track span{
  flex:0 0 auto;
  white-space:nowrap;
}
.marquee-track .unit{
  font-family:"Libre Baskerville",serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.marquee-track .kr-unit{
  font-family:"Noto Serif KR",serif;
  letter-spacing:.04em;
}
.marquee-track .dot{
  margin:0 22px;
  color: var(--foreground);
  font-size:18px;
}
@keyframes marquee-scroll{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}

/* Minimal marquee fix */
.marquee-section {
  overflow: hidden !important;
  white-space: nowrap !important;
}

.marquee-track {
  display: flex !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  width: max-content !important;
  animation: marquee-scroll 34s linear infinite !important;
}

.marquee-track span {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Service bar color fix */
.service-item:nth-child(1) .service-icon,
.service-item:nth-child(2) .service-icon,
.service-item:nth-child(1) .time,
.service-item:nth-child(2) .time{
  color:var(--accent);
}
.service-item:nth-child(3) .service-icon,
.service-item:nth-child(4) .service-icon,
.service-item:nth-child(3) .time,
.service-item:nth-child(4) .time{
  color:#034421;
}

/* Service bar layout fix */
.service-bar{
  max-width:1232px;
  width:calc(100% - 48px);
  background:#fbf8f1;
  border-color:rgba(227,220,203,.9);
}
.service-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  padding:18px 34px;
}
.service-item{
  justify-content:center;
  min-width:0;
  padding:8px 36px;
}
.service-copy{
  width:128px;
  flex:0 0 128px;
}
.service-item .row{
  width:100%;
}
@media (max-width:1000px){
  .service-bar{max-width:calc(100% - 24px);width:calc(100% - 24px);}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;}
  .service-item{justify-content:flex-start;padding:12px;}
  .service-copy{width:auto;flex:1 1 auto;}
}

/* ===== 일본어 모드 전용 보조 스타일 =====
   한국어 화면(.dawn-btn-kr / .kr-name 등)은 그대로 두고, 일본어 화면에서
   한국어 텍스트 없이 일본어 라벨 하나만 쓸 때 시각적 비중이 작아지지 않도록 보정함. */
.dawn-btn-jp-solo{font-size:17px;font-weight:500;color:var(--foreground);margin-top:0;}
.dawn-btn:hover .dawn-btn-jp-solo{color:#fff;}
.service-item .jp-label-primary{
  margin:0 0 4px;font-family:"Noto Sans JP",sans-serif;font-size:15px;font-weight:700;color:var(--foreground);letter-spacing:0;
}

/* 일본어 모드(html lang="ja")에서만: 쉼표(、) 등 전각 문장부호 뒤에 남는 여백을
   비례폭으로 좁혀줌(OpenType "palt" 기능). 한국어 화면(.hero h1)은 이 규칙의
   영향을 받지 않음 — html[lang="ko"]일 땐 적용 안 됨. */
html[lang="ja"] .hero h1{
  font-feature-settings:"palt" 1;
  -webkit-font-feature-settings:"palt" 1;
}
html[lang="ja"] .hero h1 .jp-tight-comma{
  display:inline-block;
  margin-right:-0.5em;
}
