/**
 * 인천송도교회 공용 디자인 토큰 + 웹폰트 (CDN)
 *
 * icsd-homepage, icsd-sermon-archive, icsd-boards 세 플러그인의 모든 화면이
 * 이 파일 하나를 공유합니다. 색을 바꾸고 싶으면 아래 :root 값만 고치면
 * 전체 사이트에 반영됩니다.
 *
 * 배색은 사랑의교회(sarang.org) 스타일을 참고한 화이트·블루 계열입니다.
 */

/* Pretendard - jsdelivr CDN */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css');
/* Noto Sans KR — biz2(레퍼런스 Biz Theme 2) 메뉴 글씨체가 이 폰트라 실측 후 추가.
   icsd_hp_inline_font_choices()의 '노토 산스' 선택지가 실제로 로드되도록. */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700&display=swap');
/* Roboto — biz1(레퍼런스 Biz Theme 1) 히어로 타이틀 글씨체가 이 폰트라 실측 후 추가.
   icsd_hp_inline_font_choices()의 'Roboto' 선택지가 실제로 로드되도록. */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');

:root{
	--sm-bg:#F6F7F9;
	--sm-card:#FFFFFF;
	--sm-border:#E5E8EC;
	--sm-text:#1A1D21;
	--sm-text-sub:#6B7280;
	--sm-accent:#1E6FEB;
	--sm-accent-on:#FFFFFF;

	/* ---- 히어로 전용 (실제 설교 썸네일 위 오버레이) ---- */
	--hero-dark:#0B1220;
}

/* -------------------------------------------------
 * 공용 사이트 헤더/푸터
 * icsd_site_header() / icsd_site_footer() 헬퍼(icsd-homepage.php,
 * icsd-sermon-archive.php, icsd-boards.php에 동일하게 정의됨)가 출력하는
 * 마크업과 짝을 이루는 스타일입니다. 모든 페이지가 이 파일을 불러오므로
 * 설교/교제/앨범 게시판을 포함한 사이트 전체에 같은 상단 메뉴가 나옵니다.
 * ------------------------------------------------- */
*{box-sizing:border-box}
.icsd-wrap{max-width:1100px;margin:0 auto;padding:0 24px}

.icsd-header{position:sticky;top:0;z-index:20;background:var(--menu-bar-bg,rgba(255,255,255,.92));backdrop-filter:blur(6px);border-bottom:.5px solid var(--sm-border);font-family:'Pretendard',sans-serif;transition:box-shadow .25s ease}
.icsd-header-static{position:static}
/* 사진 배너 위에 곧바로 얹히는 오버레이 헤더(icsd_site_header(true), 레퍼런스 서브페이지
   구조를 실측해서 재현) — 문서 흐름에서 빼서(fixed) 배너가 그 자리를 그대로 차지하게 하고,
   배경은 완전 투명, 로고는 사진 위에서도 잘 보이도록 밝은 필터를 씀. */
.icsd-header-overlay{position:fixed;left:0;right:0;background:transparent!important;backdrop-filter:none;border-bottom:none;box-shadow:none;transition:background .25s ease}
.icsd-header-overlay .icsd-logo img{filter:brightness(0) invert(1)}
/* 사진/여러 색이 섞인 로고로 바꾸면 위 강제 흰색 필터 때문에 흰 사각형처럼 뭉개져
   보여서 "로고를 바꿨는데 안 바뀐다"는 착시가 남 — 관리자가 이 강제 변환을 끄면
   이 클래스가 붙어 원래 로고 색 그대로 나옵니다(icsd_hp_menu_logo_invert). */
.icsd-header-overlay .icsd-logo img.icsd-logo-no-invert{filter:none}
/* 레퍼런스는 히어로/배너를 벗어나면(is-scrolled, 기존 스크롤 축소 JS가 이미 토글하던
   클래스 재사용) 투명하던 헤더가 불투명 어두운 배경으로 바뀜(getComputedStyle로 부모
   래퍼가 rgba(0,0,0,.8)인 것 확인) — 흰 글자는 그대로라 밝은 배경 섹션 위에서도 계속
   읽힘. 서브메뉴도 오버레이 모드에선 원래 투명인데, 밝은 섹션 위로 열릴 수도 있어서
   방문자 가독성을 위해 항상 어두운 반투명 배경을 줌(레퍼런스보다 더 안전한 절충).
   예전엔 이 배경색을 !important로 고정 하드코딩해서 관리자가 서브메뉴 배경/투명도를
   실시간 편집기로 아무리 바꿔도 오버레이 페이지(예: biz2 서브페이지)에서는 화면에
   전혀 반영되지 않는 버그가 있었음(92번 이후 사용자가 "투명도 조절해도 적용 안 된다"고
   재확인해서 발견) — 이제 --menu-submenu-bg-overlay 변수(overlay_submenu_bg_color/opacity,
   icsd_hp_nav_menu_link_attributes()가 오버레이일 때 이 필드를 가리키도록 분기)로 대체해
   실제로 조절되게 하고, !important 없이 `.icsd-nav`를 셀렉터에 추가해 자연스러운 상세도로
   아래(약 75번째 줄) 일반 `.icsd-nav .sub-menu` 규칙을 이깁니다(선언 순서가 아니라 상세도로
   이기게 해서 향후 파일 순서가 바뀌어도 깨지지 않도록). */
.icsd-header-overlay.is-scrolled{background:rgba(0,0,0,.8)!important}
.icsd-header-overlay .icsd-nav .sub-menu{background:var(--menu-submenu-bg-overlay,rgba(20,20,24,.94));border-color:rgba(255,255,255,.12)}
.icsd-header-overlay .sub-menu a{color:#fff!important}
.icsd-header-shadow{box-shadow:0 2px 12px rgba(16,24,40,.08)}
/* 스크롤 축소 효과 — sticky/static 여부·그림자 고정 옵션과 무관하게 항상 켜져 있습니다(2udesign
   레퍼런스 사이트의 헤더 축소 효과를 재현, 예전 백로그 "메뉴 효과" 항목). icsd_site_header()의
   인라인 스크립트가 일정 스크롤 이후 .icsd-header에 .is-scrolled를 붙입니다. */
.icsd-header.is-scrolled{box-shadow:0 2px 12px rgba(16,24,40,.08)}
.icsd-header .icsd-wrap{position:relative;display:flex;align-items:center;justify-content:var(--menu-align,space-between);gap:32px;height:var(--menu-bar-height,64px);transition:height .25s ease}
.icsd-header.is-scrolled .icsd-wrap{height:max(48px,calc(var(--menu-bar-height,64px) - 12px))}
.icsd-logo{font-family:'Pretendard',sans-serif;font-weight:700;font-size:18px;text-decoration:none;color:var(--sm-text);display:flex;align-items:center;transition:transform .25s ease}
.icsd-header.is-scrolled .icsd-logo{transform:scale(.9);transform-origin:left center}
.icsd-logo img{height:var(--menu-logo-height,32px);width:auto;display:block}
.icsd-nav{display:flex;gap:var(--menu-item-gap,24px);list-style:none;margin:0;padding:0;align-items:center}
.icsd-nav li{position:relative}
.icsd-nav a{font-size:var(--menu-item-font-size,14px);font-family:var(--menu-item-font,inherit);text-decoration:none;color:var(--menu-item-color,var(--sm-text-sub))}
.icsd-nav a:hover{color:var(--menu-item-hover-color,var(--sm-accent))}
.icsd-nav-toggle{display:none;background:none;border:none;padding:8px;margin:-8px;cursor:pointer;color:var(--sm-text)}
.icsd-nav-toggle svg{width:24px;height:24px;display:block}

/* ---- 서브메뉴(드롭다운) — 기본은 호버로 열림(별도 JS 불필요). data-submenu-trigger="click"이면
   호버로는 안 열리고(아래 :not() 규칙), icsd_site_header()의 인라인 스크립트가 클릭으로
   .is-submenu-open 클래스를 토글합니다(호버가 없는 터치 기기 대응 겸 선택 옵션). ---- */
.icsd-nav .sub-menu{display:none;position:absolute;top:100%;left:0;min-width:180px;list-style:none;margin:0;padding:6px 0;background:var(--menu-submenu-bg,#fff);border:var(--menu-submenu-border-width,1px) solid var(--menu-submenu-border-color,var(--sm-border));border-radius:var(--menu-submenu-radius,8px);box-shadow:0 8px 16px rgba(16,24,40,.08);z-index:30}
.icsd-nav:not([data-submenu-trigger="click"]) li:hover > .sub-menu{display:block}
.icsd-nav[data-submenu-trigger="click"] li.is-submenu-open > .sub-menu{display:block}
/* 실시간 편집 모드에서는 trigger 설정과 무관하게 항상 호버로 서브메뉴를 볼 수 있어야
   톱니로 스타일을 만질 수 있습니다(방문자 경험은 위 규칙이 그대로 담당). */
body.icsd-edit-mode .icsd-nav li:hover > .sub-menu{display:block}
/* 서브메뉴 항목의 톱니를 누르러 마우스를 옮기는 동안 li:hover가 풀려 서브메뉴가
   먼저 사라져버리는 문제 — 톱니/스타일 패널이 그 항목을 위해 떠 있는 동안은
   inline-editor.js가 이 클래스를 붙여 강제로 열린 상태를 유지시킵니다. */
body.icsd-edit-mode .icsd-nav li.icsd-ie-pin-open > .sub-menu{display:block}
.icsd-nav .sub-menu li{width:100%}
.icsd-nav .sub-menu li+li{margin-top:var(--menu-submenu-gap,0px)}
.icsd-nav .sub-menu a{font-size:var(--menu-submenu-font-size,14px);font-family:var(--menu-submenu-font,inherit);color:var(--menu-submenu-color,var(--sm-text));padding:8px 16px;display:block}
.icsd-nav .sub-menu a:hover{color:var(--menu-item-hover-color,var(--sm-accent))}

.icsd-footer{background:#080D18;color:rgba(255,255,255,.55);text-align:center;font-size:12px;padding:24px;font-family:'Pretendard',sans-serif}
.icsd-footer-company{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.12)}
.icsd-footer-company span{white-space:nowrap}
.icsd-footer-company b{color:rgba(255,255,255,.75);font-weight:600;margin-right:4px}

/* ---- 맨 위로 버튼 — icsd_site_header()가 헤더 뒤에 같이 출력하고, 인라인 스크립트가
   스크롤량에 따라 .is-visible을 토글합니다(2udesign 레퍼런스의 우하단 원형 버튼 재현). ---- */
.icsd-back-to-top{position:fixed;right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;background:var(--sm-accent);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(16,24,40,.2);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:19}
.icsd-back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.icsd-back-to-top:hover{background:var(--menu-item-hover-color,var(--sm-accent))}
.icsd-back-to-top svg{width:20px;height:20px}
@media (max-width:760px){
	.icsd-back-to-top{right:16px;bottom:16px;width:40px;height:40px}
}

@media (max-width:760px){
	.icsd-nav-toggle{display:block}
	.icsd-nav{display:none;flex-direction:column;gap:0;list-style:none;margin:0;padding:8px 0;position:absolute;top:100%;left:0;right:0;background:var(--menu-mobile-bg,var(--sm-card));border-bottom:.5px solid var(--sm-border);box-shadow:0 8px 16px rgba(16,24,40,.08)}
	.icsd-nav.is-open{display:flex}
	.icsd-nav li{width:100%}
	.icsd-nav a{display:block;padding:14px 24px;border-bottom:.5px solid var(--sm-border)}
	/* 모바일엔 호버가 없어서, 절대 위치 드롭다운 대신 부모 아래 항상 펼쳐서 보여줍니다 */
	.icsd-nav .sub-menu{display:block;position:static;box-shadow:none;border:none;border-radius:0;background:var(--sm-bg)}
	.icsd-nav .sub-menu a{padding-left:40px}
}

/* -------------------------------------------------
 * 공용 섹션 블록 스타일 — front-page.php(통합 섹션)와 page.php(서브페이지, "기업 테마 1"의
 * 실제 서브페이지 15개가 대표적) 양쪽 모두에서 icsd/feature-grid, icsd/image-cta,
 * icsd/video-section, icsd/portfolio-grid, icsd/contact-form, icsd/media-text-row,
 * icsd/timeline, icsd/faq-accordion 블록을 재사용할 수 있도록 여기(모든 화면이 공유하는
 * brand.css)로 옮겨왔습니다 — front-page.php 전용이었을 땐 인라인 <style>에만 있었는데,
 * page.php는 그 인라인 스타일을 안 불러와서 서브페이지에서 이 블록들을 쓰면 스타일이
 * 하나도 안 먹는 문제가 있었습니다.
 * ------------------------------------------------- */
.icsd-section{padding:72px 24px}
.icsd-section-head{text-align:center;max-width:560px;margin:0 auto 40px}
.icsd-eyebrow{font-size:12px;letter-spacing:.1em;color:var(--sm-accent);margin:0 0 10px;font-weight:600}
.icsd-section h2{font-family:'Pretendard',sans-serif;font-weight:700;font-size:26px;margin:0 0 12px}
.icsd-section-sub{font-size:14px;color:var(--sm-text-sub);line-height:1.7;margin:0}

/* ---- 배경 사진(+패럴랙스+오버레이) 섹션 공용 (icsd_hp_section_bg() 참고) ---- */
.icsd-bg-photo{position:relative;background-repeat:no-repeat}
.icsd-bg-photo::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,var(--icsd-bg-overlay,0));pointer-events:none}
.icsd-bg-photo>.icsd-wrap{position:relative;z-index:1}
.icsd-text-light .icsd-section-head h2,.icsd-text-light .icsd-eyebrow,.icsd-text-light .icsd-section-sub{color:#fff}

/* ---- 퀵메뉴 섹션(icsd/quicklinks, 아이콘+라벨 가로 나열) ---- */
.icsd-quicklinks-section .icsd-quick{background:transparent;border-bottom:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.icsd-quicklinks-section .icsd-quick-item{min-width:100px}
.icsd-text-light .icsd-quick-item{color:#fff}
.icsd-text-light .icsd-quick-item:hover{background:rgba(255,255,255,.1)}

/* ---- 포트폴리오 그리드 ---- */

/* ---- 포트폴리오 그리드 ---- */
.icsd-portfolio-filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 28px}
.icsd-portfolio-filter{padding:7px 16px;border-radius:999px;border:1px solid var(--sm-border);background:var(--sm-card);color:var(--sm-text-sub);font-size:13px;cursor:pointer;transition:background .15s ease,color .15s ease}
.icsd-portfolio-filter.is-active{background:var(--sm-accent);border-color:var(--sm-accent);color:#fff}
/* feature-grid와 같은 이유로 grid→flex(항목 수가 columns보다 적을 때 정렬/확대 선택). */
.icsd-portfolio-grid{display:flex;flex-wrap:wrap;gap:16px;--icsd-fg-cols:4}
.icsd-portfolio-grid.icsd-align-left{justify-content:flex-start}
.icsd-portfolio-grid.icsd-align-center{justify-content:center}
.icsd-portfolio-grid.icsd-align-right{justify-content:flex-end}
/* feature-grid와 같은 이유(max-width+flex-basis 동시 calc()가 폭을 찌그러뜨리는 버그)로
   max-width는 안 씀. */
.icsd-portfolio-item{flex:0 0 calc((100% - (var(--icsd-fg-cols) - 1)*16px)/var(--icsd-fg-cols))}
.icsd-portfolio-grid.icsd-fill .icsd-portfolio-item{flex:1 1 0}
/* 레이아웃 옵션 — 열 개수 */
.icsd-portfolio-grid.icsd-cols-2{--icsd-fg-cols:2}
.icsd-portfolio-grid.icsd-cols-3{--icsd-fg-cols:3}
.icsd-portfolio-grid.icsd-cols-4{--icsd-fg-cols:4}
@media (max-width:760px){.icsd-portfolio-grid.icsd-cols-2,.icsd-portfolio-grid.icsd-cols-3,.icsd-portfolio-grid.icsd-cols-4{--icsd-fg-cols:2}}
@media (max-width:520px){.icsd-portfolio-grid.icsd-cols-2,.icsd-portfolio-grid.icsd-cols-3,.icsd-portfolio-grid.icsd-cols-4{--icsd-fg-cols:1}}
.icsd-portfolio-item{margin:0;background:var(--sm-card)}
.icsd-portfolio-media{position:relative;border-radius:10px;overflow:hidden}
.icsd-portfolio-item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
/* 레이아웃 옵션 — 사진 비율 */
.icsd-portfolio-grid.icsd-ratio-square .icsd-portfolio-item img{aspect-ratio:1/1}
.icsd-portfolio-grid.icsd-ratio-landscape .icsd-portfolio-item img{aspect-ratio:4/3}
.icsd-portfolio-grid.icsd-ratio-portrait .icsd-portfolio-item img{aspect-ratio:3/4}
.icsd-portfolio-grid.icsd-fit-contain .icsd-portfolio-media{background:#fff}
.icsd-portfolio-grid.icsd-fit-contain .icsd-portfolio-item img{aspect-ratio:auto;height:auto;padding:20px;box-sizing:border-box;object-fit:contain}
/* 레이아웃 옵션 — 제목/카테고리 위치: 사진 위 오버레이(기본) */
.icsd-portfolio-media figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;background:linear-gradient(180deg,rgba(11,18,32,0),rgba(11,18,32,.75));color:#fff;display:flex;flex-direction:column;gap:2px}
.icsd-portfolio-media figcaption .icsd-portfolio-title{font-size:13px;font-weight:600}
.icsd-portfolio-media figcaption .icsd-portfolio-cat{font-size:11px;color:rgba(255,255,255,.75)}
/* 레이아웃 옵션 — 제목/카테고리 위치: 사진 아래 */
.icsd-portfolio-body{margin:10px 2px 0;display:flex;flex-direction:column;gap:2px}
.icsd-portfolio-body .icsd-portfolio-title{font-size:14px;font-weight:600;color:var(--sm-text)}
.icsd-portfolio-body .icsd-portfolio-cat{font-size:11px;color:var(--sm-text-sub)}
.icsd-portfolio-summary{margin:8px 2px 0;font-size:12.5px;color:var(--sm-text-sub);line-height:1.6}
.icsd-portfolio-body .icsd-portfolio-summary{margin:2px 0 0}
.icsd-portfolio-more{text-align:center;margin:28px 0 0}
.icsd-portfolio-more-btn{display:inline-block;padding:12px 30px;border-radius:var(--icsd-btn-radius,999px);background:var(--icsd-btn-bg,var(--sm-text));color:var(--icsd-btn-color,var(--sm-card));text-decoration:none;font-size:var(--icsd-btn-font-size,14px);font-weight:700;transition:opacity .15s ease,background .15s ease,color .15s ease}
.icsd-portfolio-more-btn:hover{background:var(--icsd-btn-hover-bg,var(--icsd-btn-bg,var(--sm-text)));color:var(--icsd-btn-hover-color,var(--icsd-btn-color,var(--sm-card)));opacity:.85}

/* ---- 서비스 소개 카드(feature-grid) ---- */
/* grid→flex로 바꿔서 항목 수가 columns보다 적을 때(예: 4칸인데 사진 3장·2장·1장)
   그룹을 왼쪽/가운데/오른쪽 중 골라 정렬할 수 있게 함(icsd-align-*, 기본 가운데) —
   grid-template-columns:repeat(N,1fr)는 항목이 모자라도 트랙 자체는 N개만큼 폭을
   차지해서 오른쪽에 빈 칸이 남는 문제가 있었음(실제로 겪은 뒤 flex로 교체).
   icsd-fill을 추가로 붙이면 반대로 모자란 개수만큼 사진을 더 넓게 확대해서 항상 꽉
   채움(정렬 대신 확대) — 앞으로 만드는 모든 템플릿이 공유하는 블록이라 자동 적용됨. */
.icsd-feature-grid-list{display:flex;flex-wrap:wrap;gap:24px;--icsd-fg-cols:4}
.icsd-feature-grid-list.icsd-align-left{justify-content:flex-start}
.icsd-feature-grid-list.icsd-align-center{justify-content:center}
.icsd-feature-grid-list.icsd-align-right{justify-content:flex-end}
/* max-width를 flex-basis와 똑같은 calc()로 같이 걸어뒀더니 브라우저가 퍼센트를
   반복 계산하면서 실제 폭이 43px 정도로 찌그러지는 버그가 실제로 남(flex-basis만으로도
   flex-grow:0/flex-shrink:0 조합이면 충분히 고정폭이 되므로 max-width는 불필요했음 —
   직접 겪고 나서 제거). */
.icsd-feature-grid-item{flex:0 0 calc((100% - (var(--icsd-fg-cols) - 1)*24px)/var(--icsd-fg-cols))}
.icsd-feature-grid-list.icsd-fill .icsd-feature-grid-item{flex:1 1 0}
.icsd-feature-grid-list.icsd-cols-2{--icsd-fg-cols:2}
.icsd-feature-grid-list.icsd-cols-3{--icsd-fg-cols:3}
.icsd-feature-grid-list.icsd-cols-4{--icsd-fg-cols:4}
@media (max-width:760px){.icsd-feature-grid-list.icsd-cols-2,.icsd-feature-grid-list.icsd-cols-3,.icsd-feature-grid-list.icsd-cols-4{--icsd-fg-cols:2}}
@media (max-width:520px){.icsd-feature-grid-list.icsd-cols-2,.icsd-feature-grid-list.icsd-cols-3,.icsd-feature-grid-list.icsd-cols-4{--icsd-fg-cols:1}}
.icsd-feature-grid-item{text-align:center}
.icsd-feature-grid-media{position:relative;border-radius:12px;overflow:hidden;margin:0 0 16px}
.icsd-feature-grid-media img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.icsd-feature-grid-list.icsd-ratio-square .icsd-feature-grid-media img{aspect-ratio:1/1}
.icsd-feature-grid-list.icsd-ratio-landscape .icsd-feature-grid-media img{aspect-ratio:4/3}
.icsd-feature-grid-list.icsd-ratio-portrait .icsd-feature-grid-media img{aspect-ratio:3/4}
.icsd-feature-grid-list.icsd-ratio-circle .icsd-feature-grid-media{border-radius:50%;max-width:200px;margin-left:auto;margin-right:auto}
.icsd-feature-grid-list.icsd-ratio-circle .icsd-feature-grid-media img{aspect-ratio:1/1;border-radius:50%}
/* 파트너/클라이언트 로고 그리드처럼 사진을 잘라내지 않고(카드 프레임 없이) 그대로
   보여주고 싶을 때(imageFit:'contain') — 사진 비율 그대로, 카드 배경/모서리도 제거 */
.icsd-feature-grid-list.icsd-fit-contain .icsd-feature-grid-media{border-radius:0;background:transparent}
.icsd-feature-grid-list.icsd-fit-contain .icsd-feature-grid-media img{aspect-ratio:auto;height:auto;object-fit:contain}
.icsd-feature-grid-body h3{font-size:16px;font-weight:700;margin:0 0 8px;color:var(--sm-text)}
.icsd-feature-grid-body p{font-size:13.5px;line-height:1.7;color:var(--sm-text-sub);margin:0}
/* 레이아웃 옵션 — 제목/설명 위치: 사진 위 오버레이 */
.icsd-feature-grid-overlay{position:absolute;left:0;right:0;bottom:0;padding:16px;background:linear-gradient(180deg,rgba(11,18,32,0),rgba(11,18,32,.8));text-align:left}
.icsd-feature-grid-overlay h3{font-size:16px;font-weight:700;margin:0 0 6px;color:#fff}
.icsd-feature-grid-overlay p{font-size:12.5px;line-height:1.6;color:rgba(255,255,255,.85);margin:0}

/* ---- 배경 사진 + 문구 CTA(image-cta) ---- */
.icsd-image-cta{position:relative;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;background-attachment:fixed}
.icsd-image-cta.no-parallax{background-attachment:scroll}
@media (max-width:900px){.icsd-image-cta{background-attachment:scroll}}
.icsd-image-cta:before{content:'';position:absolute;inset:0;background:rgba(11,18,32,.5)}
.icsd-image-cta-inner{position:relative;z-index:1;max-width:640px;margin:0 auto;padding:32px 20px;text-align:center;color:#fff}
.icsd-image-cta-inner .icsd-eyebrow{color:#9FC2FF}
.icsd-image-cta-inner h2{font-size:clamp(24px,3.4vw,36px);font-weight:800;margin:6px 0 14px}
.icsd-image-cta-sub{font-size:14.5px;line-height:1.75;color:rgba(255,255,255,.85);margin:0 0 22px}
.icsd-image-cta-btn{display:inline-block;padding:12px 30px;border-radius:var(--icsd-btn-radius,999px);border:1px solid rgba(255,255,255,.6);background:var(--icsd-btn-bg,transparent);color:var(--icsd-btn-color,#fff);text-decoration:none;font-size:var(--icsd-btn-font-size,14px);font-weight:600;transition:background .15s ease,color .15s ease}
.icsd-image-cta-btn:hover{background:var(--icsd-btn-hover-bg,#fff);color:var(--icsd-btn-hover-color,#0B1220)}
.icsd-btn-outline{display:inline-block;padding:11px 26px;border-radius:var(--icsd-btn-radius,999px);border:1px solid var(--sm-border);background:var(--icsd-btn-bg,transparent);color:var(--icsd-btn-color,var(--sm-text));text-decoration:none;font-size:var(--icsd-btn-font-size,14px);font-weight:600;transition:border-color .15s ease,color .15s ease,background .15s ease}
.icsd-btn-outline:hover{border-color:var(--sm-accent);background:var(--icsd-btn-hover-bg,transparent);color:var(--icsd-btn-hover-color,var(--sm-accent))}

/* ---- 영상 섹션(video-section) ---- */
.icsd-video-section{background-size:cover;background-position:center;background-attachment:fixed}
.icsd-video-section.no-parallax{background-attachment:scroll}
@media (max-width:900px){.icsd-video-section{background-attachment:scroll}}
.icsd-video-section-media{max-width:900px;margin:0 auto}
.icsd-video-section-media video{display:block;width:100%;border-radius:14px;aspect-ratio:16/9;background:#000}
.icsd-video-section-media iframe{width:100%;aspect-ratio:16/9;border-radius:14px;border:0}

/* ---- 상담 폼 ---- */
.icsd-contact-layout{max-width:560px;margin:0 auto}
.icsd-contact-layout.has-aside{max-width:920px;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:start}
.icsd-contact-layout.has-aside .icsd-contact-form{max-width:none;margin:0}
.icsd-contact-form{max-width:560px;margin:0 auto;display:grid;gap:14px}
.icsd-contact-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--sm-text-sub);font-weight:600}
.icsd-contact-form input,.icsd-contact-form textarea{font:inherit;padding:11px 12px;border-radius:8px;border:1px solid var(--sm-border);background:var(--sm-card);color:var(--sm-text)}
.icsd-contact-form textarea{resize:vertical}
.icsd-contact-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.icsd-contact-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.icsd-contact-consent{flex-direction:row!important;align-items:center;gap:8px!important;font-weight:400!important}
.icsd-contact-consent input{width:auto}
.icsd-contact-form button{justify-self:start;padding:12px 28px;border-radius:var(--icsd-btn-radius,999px);border:0;background:var(--icsd-btn-bg,var(--sm-accent));color:var(--icsd-btn-color,#fff);font-size:var(--icsd-btn-font-size,14px);font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease,filter .15s ease}
.icsd-contact-form button:hover{background:var(--icsd-btn-hover-bg,var(--icsd-btn-bg,var(--sm-accent)));color:var(--icsd-btn-hover-color,var(--icsd-btn-color,#fff));filter:brightness(.92)}
.icsd-contact-status{margin:0;font-size:13px;color:var(--sm-text-sub);min-height:1.4em}
.icsd-contact-aside{background:var(--sm-card);border:1px solid var(--sm-border);border-radius:12px;padding:26px}
.icsd-contact-aside h3{margin:0 0 14px;font-size:16px;font-weight:700;color:var(--sm-text)}
.icsd-contact-cs-info{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px;font-size:13.5px;color:var(--sm-text-sub)}
.icsd-contact-cs-notices{list-style:none;margin:0;padding:18px 0 0;border-top:1px solid var(--sm-border);display:grid;gap:10px}
.icsd-contact-cs-notices a{display:flex;justify-content:space-between;gap:10px;text-decoration:none;font-size:13px;color:var(--sm-text)}
.icsd-contact-cs-notices .icsd-n-date{color:var(--sm-text-sub);white-space:nowrap}

/* ---- 사진+글 교차 배치(media-text-row) ---- */
.icsd-mtr-row{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-bottom:56px}
.icsd-mtr-row:last-child{margin-bottom:0}
.icsd-mtr-row.is-reverse .icsd-mtr-media{order:2}
.icsd-mtr-media{overflow:hidden;border-radius:14px}
.icsd-mtr-media img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px}
.icsd-mtr-body h3{font-size:20px;font-weight:700;margin:0 0 12px;color:var(--sm-text)}
.icsd-mtr-body h2{font-size:24px;font-weight:800;margin:0 0 16px;color:var(--sm-text)}
.icsd-mtr-body p{font-size:14.5px;line-height:1.8;color:var(--sm-text-sub);margin:0 0 12px}
.icsd-mtr-body p:last-child{margin-bottom:0}
.icsd-greeting-module-title{font-weight:700;margin:0 0 8px;color:var(--sm-text)}

/* ---- 사진 호버 효과(zoom/darken/zoom-darken) — feature-grid/portfolio-grid/media-text-row 공통 ---- */
.icsd-feature-grid-media img,.icsd-portfolio-media img,.icsd-mtr-media img{transition:transform .35s ease,filter .35s ease}
.icsd-feature-grid-list.icsd-hover-zoom .icsd-feature-grid-item:hover .icsd-feature-grid-media img,
.icsd-portfolio-grid.icsd-hover-zoom .icsd-portfolio-item:hover .icsd-portfolio-media img,
.icsd-media-text-row.icsd-hover-zoom .icsd-mtr-media:hover img{transform:scale(1.08)}
.icsd-feature-grid-list.icsd-hover-darken .icsd-feature-grid-item:hover .icsd-feature-grid-media img,
.icsd-portfolio-grid.icsd-hover-darken .icsd-portfolio-item:hover .icsd-portfolio-media img,
.icsd-media-text-row.icsd-hover-darken .icsd-mtr-media:hover img{filter:brightness(.75)}
.icsd-feature-grid-list.icsd-hover-zoom-darken .icsd-feature-grid-item:hover .icsd-feature-grid-media img,
.icsd-portfolio-grid.icsd-hover-zoom-darken .icsd-portfolio-item:hover .icsd-portfolio-media img,
.icsd-media-text-row.icsd-hover-zoom-darken .icsd-mtr-media:hover img{transform:scale(1.08);filter:brightness(.75)}

/* ---- 연혁 타임라인(timeline) ---- */
.icsd-timeline-list{max-width:640px;margin:0 auto;position:relative;padding-left:28px;border-left:2px solid var(--sm-border)}
.icsd-timeline-group{position:relative;padding-bottom:32px}
.icsd-timeline-group:last-child{padding-bottom:0}
.icsd-timeline-group:before{content:'';position:absolute;left:-33.5px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--sm-accent);border:3px solid var(--sm-card)}
.icsd-timeline-year{font-size:18px;font-weight:800;color:var(--sm-accent);margin-bottom:8px;font-family:'Pretendard',sans-serif}
.icsd-timeline-lines{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.icsd-timeline-lines li{font-size:14px;color:var(--sm-text-sub);line-height:1.6;padding-left:14px;position:relative}
.icsd-timeline-lines li:before{content:'';position:absolute;left:0;top:9px;width:4px;height:4px;border-radius:50%;background:var(--sm-border)}

/* ---- 자주하는 질문(faq-accordion) ---- */
.icsd-faq-list{max-width:720px;margin:0 auto;display:grid;gap:10px}
.icsd-faq-item{border:1px solid var(--sm-border);border-radius:10px;overflow:hidden;background:var(--sm-card)}
.icsd-faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:none;border:0;font:inherit;font-size:15px;font-weight:600;color:var(--sm-text);text-align:left;cursor:pointer}
.icsd-faq-icon{flex:none;width:22px;height:22px;border-radius:50%;background:var(--sm-bg);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--sm-text-sub);transition:transform .2s ease}
.icsd-faq-item.is-open .icsd-faq-icon{transform:rotate(45deg);background:var(--sm-accent);color:#fff}
.icsd-faq-answer{max-height:0;overflow:hidden;transition:max-height .25s ease}
.icsd-faq-item.is-open .icsd-faq-answer{max-height:400px}
.icsd-faq-answer p{margin:0;padding:0 20px 18px;font-size:13.5px;line-height:1.75;color:var(--sm-text-sub)}

/* ---- 통계 카운터(회사개요 "걸어온 길" 등에서 순수 HTML로도 재사용) ---- */
.icsd-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:24px;text-align:center}
.icsd-stat-number{font-family:'Pretendard',sans-serif;font-weight:800;font-size:38px;color:var(--sm-accent);margin:0 0 6px;line-height:1}
.icsd-stat-number span{font-size:.6em;margin-left:2px}
.icsd-stat-label{font-size:13px;color:var(--sm-text-sub);margin:0}
.icsd-text-light .icsd-stat-label{color:rgba(255,255,255,.75)}
.icsd-text-light .icsd-stat-number{color:#fff}
/* 원형 진행 링(ring 옵션 켰을 때만) — 숫자/라벨 위에 SVG 링을 올려 카운트업과 함께 그립니다 */
.icsd-stats-ring .icsd-stat-item{position:relative;padding-top:130px}
.icsd-stat-ring{position:absolute;top:0;left:50%;transform:translateX(-50%);width:130px;height:130px}
.icsd-stat-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.icsd-stat-ring-track{fill:none;stroke:rgba(255,255,255,.25);stroke-width:4}
.icsd-stat-ring-fill{fill:none;stroke:var(--sm-accent);stroke-width:4;stroke-linecap:round}
/* 링을 안 쓸 때(ring:false, 레퍼런스 기본값)는 항목 사이에 세로 구분선을 그립니다 —
   레퍼런스(mwpdemo60374.mycafe24.com "걸어온 길")를 실제로 열어보면 링 없이 이
   구분선만 있음. */
.icsd-stats-grid:not(.icsd-stats-ring) .icsd-stat-item{border-left:1px solid rgba(0,0,0,.12)}
.icsd-stats-grid:not(.icsd-stats-ring) .icsd-stat-item:first-child{border-left:none}
.icsd-text-light .icsd-stats-grid:not(.icsd-stats-ring) .icsd-stat-item{border-left-color:rgba(255,255,255,.25)}
.icsd-text-light .icsd-stat-ring-fill{stroke:#fff}

/* ---- 게시판 표(공지사항/자료실, icsd/board-list 블록) ---- */
.icsd-board-tools{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:0 0 16px}
.icsd-board-search,.icsd-board-sort,.icsd-board-sortorder{font:inherit;font-size:13px;padding:8px 12px;border-radius:8px;border:1px solid var(--sm-border);background:var(--sm-card);color:var(--sm-text-sub)}
.icsd-board-searchwrap,.icsd-board-listbar{display:contents}
.icsd-board-search{width:220px}
.icsd-board-search-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:8px;border:1px solid var(--sm-border);background:var(--sm-card);color:var(--sm-text-sub);cursor:pointer}
.icsd-board-search-btn:hover{border-color:var(--sm-accent);color:var(--sm-accent)}
.icsd-board-search-btn svg{width:16px;height:16px}
.icsd-board-table{width:100%;border-collapse:collapse;font-size:13.5px}
.icsd-board-table th{padding:12px 10px;border-bottom:2px solid var(--sm-text);color:var(--sm-text-sub);font-weight:600;text-align:left;font-size:12.5px}
.icsd-board-table td{padding:14px 10px;border-bottom:1px solid var(--sm-border);color:var(--sm-text)}
.icsd-board-table .col-num,.icsd-board-table .col-views{width:64px;color:var(--sm-text-sub)}
.icsd-board-table .col-author,.icsd-board-table .col-date{width:110px;color:var(--sm-text-sub)}
.icsd-board-table .col-title{font-weight:500}
.icsd-board-table .col-title a{color:inherit;text-decoration:none}
.icsd-board-table .col-title a:hover{color:var(--sm-accent)}
.icsd-board-empty-row td{text-align:center;color:var(--sm-text-sub);padding:32px 10px}
.icsd-board-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:24px 0 0}
.icsd-board-page{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 6px;border-radius:8px;font-size:13px;color:var(--sm-text-sub);text-decoration:none}
.icsd-board-page:hover{background:var(--sm-bg)}
.icsd-board-page.is-active{background:var(--sm-accent);color:#fff}
.icsd-board-page-ellipsis{display:flex;align-items:center;justify-content:center;min-width:20px;height:32px;color:var(--sm-text-sub);font-size:13px}
@media (max-width:520px){.icsd-board-search{width:140px}}

/* ---- 게시판 최근 게시물(icsd/board-recent 블록, 게시판 엔진 7단계 — 아무
   페이지에나 넣을 수 있는 "최근 글" 미리보기 위젯) ---- */
.icsd-board-recent-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.icsd-board-recent-list li{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--sm-border)}
.icsd-board-recent-list li:last-child{border-bottom:none;padding-bottom:0}
.icsd-board-recent-thumb{flex:0 0 64px;width:64px;height:64px;border-radius:8px;overflow:hidden;display:block}
.icsd-board-recent-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.icsd-board-recent-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.icsd-board-recent-title{font-size:14px;font-weight:600;color:var(--sm-text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icsd-board-recent-title:hover{color:var(--sm-accent)}
.icsd-board-recent-date{font-size:12px;color:var(--sm-text-sub)}

/* ---- 히어로 배너 블록(hero-section) — 어느 페이지에나 넣을 수 있는 배너. 홈페이지
   전용 히어로(.icsd-hero, front-page.php 인라인 스타일)와는 독립된 클래스 체계라
   서로 전혀 안 얽힙니다(41번 통합 섹션과 같은 "기존 건 안 건드림" 원칙). ---- */
.icsd-hs{position:relative;overflow:hidden;background:var(--hero-dark);color:#fff}
.icsd-hs-track{position:relative;min-height:var(--hs-height,480px)}
.icsd-hs-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;visibility:hidden;transition:opacity .8s ease}
.icsd-hs-slide:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,18,32,.4),rgba(11,18,32,.85));opacity:var(--hs-overlay,.55)}
.icsd-hs-slide.is-active{opacity:1;visibility:visible}
.icsd-hs-imgtarget{position:absolute;inset:0}
.icsd-hs-inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 24px}
.icsd-hs-inner>*{max-width:640px}
.icsd-hs.is-left .icsd-hs-inner{align-items:flex-start;text-align:left}
.icsd-hs-eyebrow{font-size:13px;letter-spacing:.12em;color:#9FC2FF;margin:0 0 16px;font-weight:600}
.icsd-hs-inner h1{font-family:'Pretendard',sans-serif;font-weight:800;font-size:clamp(26px,4vw,42px);line-height:1.35;margin:0 0 18px}
.icsd-hs-subtitle{font-size:15px;color:rgba(255,255,255,.82);margin:0 0 28px;line-height:1.7}
.icsd-hs-btn{display:inline-block;padding:var(--icsd-btn-padding,13px) calc(var(--icsd-btn-padding, 13px) * 2);border-radius:var(--icsd-btn-radius,999px);background:var(--icsd-btn-bg,var(--sm-accent));color:var(--icsd-btn-color,#fff);text-decoration:none;font-size:var(--icsd-btn-font-size,14px);font-weight:600;transition:background .15s ease,color .15s ease}
.icsd-hs-btn:hover{background:var(--icsd-btn-hover-bg,var(--icsd-btn-bg,var(--sm-accent)));color:var(--icsd-btn-hover-color,var(--icsd-btn-color,#fff))}
.icsd-hs-dots{position:absolute;left:0;right:0;bottom:18px;z-index:3;display:flex;gap:8px;justify-content:center}
.icsd-hs-dot{width:9px;height:9px;border-radius:50%;border:none;background:rgba(255,255,255,.45);cursor:pointer;padding:0}
.icsd-hs-dot.is-active{background:#fff}
.icsd-hs .icsd-ie-img-placeholder{position:absolute;inset:0;aspect-ratio:auto;border-radius:0}

@media (max-width:760px){
	.icsd-contact-row{grid-template-columns:1fr}
	.icsd-contact-layout.has-aside{grid-template-columns:1fr}
	.icsd-mtr-row{grid-template-columns:1fr;gap:16px}
	.icsd-mtr-row.is-reverse .icsd-mtr-media{order:0}
	.icsd-board-table .col-author,.icsd-board-table .col-views{display:none}
}
