/* ============================================================
   WHOLETEM - Sub pages shared styles
   (company / business / products / contact)
   ============================================================ */

.sub-section { padding: 96px 0; }
.sub-section.alt { background: var(--bg-sub); }

.block-head { max-width: 720px; margin-bottom: 48px; }
.block-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.block-head.center .eyebrow { justify-content: center; }
.block-head.center .section-desc { margin-left: auto; margin-right: auto; }

/* ---- Greeting ---- */
.greeting { display: grid; grid-template-columns: 1.15fr .85fr; gap: 60px; align-items: center; }
.greeting__media img { width: 100%; border-radius: 20px; box-shadow: var(--shadow-lg); aspect-ratio: 4/3; object-fit: cover; }
.greeting h2 { font-size: clamp(24px,3vw,36px); font-weight: 800; line-height: 1.35; letter-spacing:-0.02em; margin-bottom: 22px; }
.greeting h2 .accent { color: var(--blue); }
.greeting p { color: var(--text-muted); font-size: 16px; margin-bottom: 16px; line-height: 1.9; }
.greeting .sign { margin-top: 26px; font-weight: 700; color: var(--text); }
.greeting .sign b { font-size: 20px; }

/* ---- Value cards ---- */
.value-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.value-card { background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 34px 28px; transition: transform .3s, box-shadow .3s; }
.value-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.value-card i { font-size: 26px; color: var(--blue); margin-bottom: 18px; }
.value-card h3 { font-size: 19px; font-weight: 700; margin-bottom: 10px; }
.value-card p { color: var(--text-muted); font-size: 15px; line-height: 1.7; }

/* ---- History timeline ---- */
.timeline { position: relative; max-width: 820px; margin: 0 auto; padding-left: 30px; }
.timeline::before { content:""; position:absolute; left: 6px; top: 6px; bottom: 6px; width: 2px; background: var(--line); }
.tl-item { position: relative; padding: 0 0 40px 40px; }
.tl-item::before { content:""; position:absolute; left:-1px; top: 4px; width: 14px; height: 14px; border-radius:50%; background:var(--blue); box-shadow: 0 0 0 4px rgba(51,178,166,.22); }
.tl-item:last-child { padding-bottom: 0; }
.tl-year { font-family: var(--ff-en); font-size: 22px; font-weight: 800; color: var(--blue); margin-bottom: 6px; }
.tl-item p { color: var(--text-muted); font-size: 15.5px; margin-bottom: 4px; }

/* ---- Cert grid ---- */
.cert-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.cert-card { background:#fff; border:1px solid var(--line); border-radius: 14px; padding: 30px 20px; text-align:center; transition: border-color .3s, transform .3s; }
.cert-card:hover { border-color: var(--blue); transform: translateY(-4px); }
.cert-card .ic { width: 56px; height: 56px; margin: 0 auto 16px; border-radius: 12px; background: rgba(0,91,150,.09); color:var(--blue); display:grid; place-items:center; font-size: 22px; }
.cert-card h4 { font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.cert-card p { font-size: 13px; color: var(--text-muted); }

/* ---- 인증서 사진 슬롯 (아이콘 자리에 실제 사진 표시) ---- */
.cert-card .ic--photo {
  width: 100%; height: 150px; border-radius: 10px; background: #f3f5f8;
  overflow: hidden; padding: 0;
}
.cert-card .ic--photo img { width: 100%; height: 100%; object-fit: contain; display: block; background:#fff; opacity: 0; transition: opacity .35s ease; }
.cert-card.cert-ready .ic--photo img { opacity: 1; }
/* 준비 전에는 아이콘/사진 숨겨 깜빡임(원래 아이콘이 잠깐 보임) 방지 */
.cert-card[data-cert]:not(.cert-ready) .ic > i,
.cert-card[data-cert]:not(.cert-ready) .ic--photo img { opacity: 0 !important; }

/* ---- 편집 모드: 인증서 사진 첨부 버튼 ---- */
.cert-upload { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; align-items: center; }
.cert-upload__btn {
  display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
  background: var(--navy); color: #fff; font-size: 12.5px; font-weight: 700;
  padding: 8px 14px; border-radius: 8px; transition: background .2s;
}
.cert-upload__btn:hover { background: #00284f; }
.cert-upload__btn i { color: var(--teal); }
.cert-upload__del {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
  background: #fff; color: #b91c1c; border: 1px solid #f0c9c9; font-size: 12px; font-weight: 700;
  padding: 6px 12px; border-radius: 8px;
}
.cert-upload__del:hover { background: #fdeaea; }

/* ---- Location ---- */
.location { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: stretch; }
.location__map { border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-md); min-height: 340px; background: #e5e7eb; }
.location__map iframe { width: 100%; height: 100%; min-height: 340px; border: 0; display:block; }
.location__info { background:#fff; border:1px solid var(--line); border-radius: 18px; padding: 36px; }
.location__info h3 { font-size: 22px; font-weight: 800; margin-bottom: 22px; }
.loc-row { display: flex; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.loc-row:last-child { border-bottom: none; }
.loc-row .ic { color: var(--blue); font-size: 18px; width: 22px; text-align:center; margin-top:3px; }
.loc-row .lb { font-size: 13px; color: var(--text-muted); }
.loc-row .val { font-weight: 600; }

/* ============================================================
   BUSINESS page
   ============================================================ */
.biz-row { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.biz-row.rev .biz-row__media { order: 2; }
.biz-row + .biz-row { margin-top: 100px; }
.biz-row__media { border-radius: 20px; overflow: hidden; aspect-ratio: 4/3; box-shadow: var(--shadow-md); }
.biz-row__media .ph { width:100%; height:100%; display:grid; place-items:center; color:#fff; font-size: 66px; }
.biz-row__no { font-family: var(--ff-en); font-size: 15px; font-weight: 800; color: var(--blue); letter-spacing:.1em; }
.biz-row__title { font-size: clamp(24px,3vw,34px); font-weight: 800; letter-spacing:-0.02em; margin: 8px 0 18px; }
.biz-row__desc { color: var(--text-muted); font-size: 16px; line-height: 1.9; margin-bottom: 24px; }
.biz-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.biz-tags span { font-size: 13.5px; font-weight: 600; color: var(--blue); background: rgba(0,91,150,.09); padding: 8px 14px; border-radius: 999px; }
/* 업로드된 사진: 아이콘 자리에 꽉 차게 표시 */
.biz-row__media { position: relative; }
.biz-row__media img.biz-photo { width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transition: opacity .35s ease; }
.biz-row__media img.biz-photo.is-loaded { opacity: 1; }
/* 사진이 아직 준비되기 전(불러오는 중)에는 원래 아이콘 배경을 감춰
   "원본이 잠깐 번쩍이는" 현상 제거. 준비되면(.biz-ready) 판단 결과대로 표시 */
.biz-row__media[data-biz]:not(.biz-ready) .ph { opacity: 0 !important; }
/* 편집 모드 사진 업로드 버튼 */
.biz-upload { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.biz-upload__btn {
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  background: var(--navy, #003366); color: #fff; font-weight: 600; font-size: 14px;
  padding: 9px 16px; border-radius: 999px; transition: background .2s;
}
.biz-upload__btn:hover { background: #00284f; }
.biz-upload__btn i { color: var(--teal, #33b2a6); }
.biz-upload__del {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
  background: #fff; color: #c0392b; border: 1.5px solid #f0c8c4; font-weight: 600; font-size: 13.5px;
  padding: 8px 14px; border-radius: 999px; transition: background .2s;
}
.biz-upload__del:hover { background: #fdeaea; }

.ph-mct { background: linear-gradient(135deg,#003366,#005b96); }
.ph-material { background: linear-gradient(135deg,#0a7c8f,#33b2a6); }
.ph-molding { background: linear-gradient(135deg,#004a80,#0a7c8f); }
.ph-vehicle { background: linear-gradient(135deg,#1e293b,#334155); }

/* ============================================================
   PRODUCTS page
   ============================================================ */
.prod-tabs { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 50px; }
.prod-tab { padding: 11px 22px; border-radius: 999px; border: 1.5px solid var(--line); font-weight: 600; font-size: 15px; color: var(--text-muted); transition: all .2s; }
.prod-tab:hover, .prod-tab.active { background: var(--blue); border-color: var(--blue); color:#fff; }
.prod-cat { padding-top: 40px; margin-top: -40px; }
.prod-cat + .prod-cat { margin-top: 70px; }
.prod-cat__head { display:flex; align-items:center; gap:14px; margin-bottom: 28px; }
.prod-cat__head .ic { width: 46px; height:46px; border-radius:12px; background: rgba(0,91,150,.09); color:var(--blue); display:grid; place-items:center; font-size:20px; }
.prod-cat__head h3 { font-size: 24px; font-weight: 800; }
.prod-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }

/* ---- 가로 롤링(캐러셀): 제품이 늘어도 아래로 안 쌓이고 한 줄로 넘겨보기 ---- */
.prod-carousel { position: relative; }
.prod-track {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 6px 2px 14px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.prod-track::-webkit-scrollbar { height: 8px; }
.prod-track::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 8px; }
.prod-track::-webkit-scrollbar-track { background: transparent; }
.prod-track > .prod-item {
  flex: 0 0 calc((100% - 48px) / 3);  /* 데스크톱: 한 화면에 3개 */
  scroll-snap-align: start;
}
/* 좌우 화살표 버튼 */
.prod-nav {
  position: absolute; top: 38%; transform: translateY(-50%);
  width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid var(--line); background: #fff; color: var(--navy);
  display: grid; place-items: center; cursor: pointer; z-index: 4;
  box-shadow: var(--shadow-md); font-size: 16px;
  transition: background .2s, color .2s, opacity .2s, transform .2s;
}
.prod-nav:hover { background: var(--navy); color: #fff; }
.prod-nav--prev { left: -14px; }
.prod-nav--next { right: -14px; }
.prod-nav.is-hidden { opacity: 0; pointer-events: none; }

.prod-item { border:1px solid var(--line); border-radius: var(--radius); overflow:hidden; background:#fff; transition: transform .3s, box-shadow .3s; }
.prod-item:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.prod-item__img { aspect-ratio: 4/3; display:grid; place-items:center; color:#fff; font-size: 40px; }
.prod-item__img.pc1 { background: linear-gradient(135deg,#003366,#005b96); }
.prod-item__img.pc2 { background: linear-gradient(135deg,#004a80,#0a7c8f); }
.prod-item__img.pc3 { background: linear-gradient(135deg,#0a7c8f,#33b2a6); }
.prod-item__img.pc4 { background: linear-gradient(135deg,#1e293b,#334155); }
.prod-item__img.pc5 { background: linear-gradient(135deg,#005b96,#33b2a6); }
.prod-item__body { padding: 20px; }
.prod-item__body h4 { font-size: 17px; font-weight: 700; margin-bottom: 6px; }
.prod-item__body p { font-size: 14px; color: var(--text-muted); }
.prod-item__tag { display:inline-block; margin-top: 12px; font-size: 12px; font-weight:600; color:var(--blue); background:rgba(0,91,150,.09); padding: 5px 10px; border-radius:6px; }
.prod-item__img--photo { background-size: cover; background-position: center; background-color:#eef1f5; opacity: 0; transition: opacity .35s ease; }
.prod-item__img--photo.photo-ready { opacity: 1; }
.prod-item--link { display: block; color: inherit; }
.prod-item__more { display:inline-flex; align-items:center; gap:7px; margin-top: 14px; font-size: 13.5px; font-weight: 700; color: var(--navy); }
.prod-item__more i { transition: transform .2s; }
.prod-item--link:hover .prod-item__more i { transform: translateX(4px); }

/* ============================================================
   PRODUCT DETAIL page (product.html)
   ============================================================ */
.pd-top { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.pd-hero { border-radius: 20px; overflow: hidden; box-shadow: var(--shadow-md); }
.pd-hero__img { width: 100%; aspect-ratio: 4/3; background-size: cover; background-position: center;
  display: grid; place-items: center; color:#fff; font-size: 72px; }
.pd-info { padding-top: 6px; }
.pd-cat { display:inline-block; font-family: var(--ff-en); font-size: 13px; font-weight: 700; letter-spacing: .06em;
  color: var(--teal); text-transform: uppercase; margin-bottom: 14px; }
.pd-title { font-size: clamp(26px, 3.5vw, 38px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.25; margin-bottom: 14px; }
.pd-desc { color: var(--text-muted); font-size: 16px; line-height: 1.85; margin: 18px 0 8px; }
.pd-actions { display:flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.pd-detail { margin-top: 60px; padding-top: 44px; border-top: 1px solid var(--line); }
.pd-detail p { color: #374151; font-size: 16px; line-height: 1.95; }
.pd-sec-title { font-size: 20px; font-weight: 800; margin-bottom: 20px; }
.pd-gallery { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 36px; }
.pd-gallery__cell { aspect-ratio: 4/3; border-radius: 14px; background-size: cover; background-position: center;
  box-shadow: var(--shadow-sm); transition: transform .3s; border: 1px solid var(--line); }
.pd-gallery__cell:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.pd-empty { text-align:center; padding: 60px 0; }
.pd-empty i { font-size: 46px; color: #d1d5db; margin-bottom: 18px; }
.pd-empty h2 { font-size: 24px; font-weight: 800; margin-bottom: 10px; }
.pd-empty p { color: var(--text-muted); margin-bottom: 26px; }
@media (max-width: 900px){
  .pd-top { grid-template-columns: 1fr; gap: 28px; }
  .pd-gallery { grid-template-columns: 1fr 1fr; }
}

/* ---- 캐러셀 반응형: 태블릿 2개 / 모바일 1개 ---- */
@media (max-width: 1024px){
  .prod-track > .prod-item { flex-basis: calc((100% - 24px) / 2); }  /* 2개 */
}
@media (max-width: 640px){
  .prod-track > .prod-item { flex-basis: 84%; }   /* 1개(다음 카드 살짝 보임) */
  .prod-nav { width: 40px; height: 40px; font-size: 14px; }
  .prod-nav--prev { left: -6px; }
  .prod-nav--next { right: -6px; }
}

/* ============================================================
   블로그형 본문(blocks) — 렌더링
   ============================================================ */
.pd-body { margin-top: 56px; }
.pd-body__block { margin: 0 0 26px; }
.pd-blk-heading { font-size: clamp(20px, 2.6vw, 26px); font-weight: 800; letter-spacing: -0.02em;
  color: var(--navy); margin: 40px 0 14px; line-height: 1.35; }
.pd-body__block:first-child .pd-blk-heading { margin-top: 0; }
.pd-blk-text { color: #374151; font-size: 16.5px; line-height: 1.95; white-space: pre-wrap; }
.pd-blk-image { width: 100%; border-radius: 16px; overflow: hidden; box-shadow: var(--shadow-sm);
  border: 1px solid var(--line); }
.pd-blk-image img { width: 100%; display: block; }
.pd-blk-image figcaption { font-size: 13.5px; color: var(--text-muted); text-align: center;
  padding: 10px 8px 2px; }
.pd-blk-video { position: relative; width: 100%; aspect-ratio: 16/9; border-radius: 16px;
  overflow: hidden; box-shadow: var(--shadow-sm); background:#000; }
.pd-blk-video iframe, .pd-blk-video video { position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ============================================================
   블록 편집기 (관리자 모드)
   ============================================================ */
.pd-admin-bar {
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background: linear-gradient(120deg, rgba(0,51,102,.06), rgba(51,178,166,.08));
  border: 1px solid rgba(0,51,102,.18); border-radius: 12px;
  padding: 14px 18px; margin-bottom: 30px; font-size: 14px; font-weight:600; color: var(--navy);
}
.pd-admin-bar i { margin-right: 6px; color: var(--teal); }
.pd-admin-bar__actions { display:flex; gap:10px; flex-wrap:wrap; }
.pd-admin-bar__btn { font-size: 13px; font-weight:700; color:#fff; background: var(--navy);
  padding: 8px 15px; border-radius: 8px; }
.pd-admin-bar__btn:hover { background:#00284f; }
.pd-admin-bar__btn.is-danger { background:#b91c1c; }
.pd-admin-bar__btn.is-ghost { background:#fff; color:var(--navy); border:1.5px solid rgba(0,51,102,.3); }

/* 편집 중 블록 카드 */
.pd-edit-block {
  border: 1.5px solid var(--line); border-radius: 14px; padding: 16px 16px 14px;
  margin-bottom: 16px; background:#fff; position: relative;
}
.pd-edit-block__head {
  display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom: 10px;
}
.pd-edit-block__type { font-size: 12.5px; font-weight:800; letter-spacing:.02em; color: var(--teal); }
.pd-edit-block__type i { margin-right:6px; }
.pd-edit-block__tools { display:flex; gap:6px; }
.pd-edit-block__tools button {
  width: 32px; height: 32px; border-radius: 8px; font-size: 13px; color: var(--navy);
  background: var(--bg-sub); display:grid; place-items:center; transition: all .15s;
}
.pd-edit-block__tools button:hover { background: var(--navy); color:#fff; }
.pd-edit-block__tools button.del:hover { background:#b91c1c; }
.pd-edit-block input[type="text"], .pd-edit-block input[type="url"], .pd-edit-block textarea {
  width:100%; border:1px solid var(--line); border-radius:9px; padding:11px 13px;
  font-family: inherit; font-size: 15px; color: var(--text); background:#fff;
}
.pd-edit-block textarea { resize: vertical; min-height: 92px; line-height:1.7; }
.pd-edit-block__hint { font-size: 12.5px; color: var(--text-muted); margin-top: 6px; }
.pd-edit-block__preview { margin-top: 10px; }
.pd-edit-block__preview img { max-width: 100%; border-radius: 10px; border:1px solid var(--line); }

/* 블록 추가 버튼 줄 */
.pd-add-row { display:flex; gap:10px; flex-wrap:wrap; margin: 6px 0 26px; }
.pd-add-btn {
  display:inline-flex; align-items:center; gap:7px; font-size: 13.5px; font-weight:700; color: var(--navy);
  border: 1.5px dashed rgba(0,51,102,.4); border-radius: 9px; padding: 10px 15px; transition: all .2s; background:#fff;
}
.pd-add-btn:hover { background: var(--navy); color:#fff; border-color: var(--navy); }
.pd-add-btn i { font-size: 12px; }

/* 저장 상태 토스트 */
.pd-save-msg { font-size: 13.5px; font-weight:700; }
.pd-save-msg.ok { color: #047857; }
.pd-save-msg.err { color: #b91c1c; }

/* 상세페이지 관리자 신규 등록 안내 */
.pd-new-hint { text-align:center; color: var(--text-muted); font-size: 14px; margin-top: 10px; }

/* 파일 선택(첨부) UI */
.pd-file-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.pd-file-btn {
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  font-size: 14px; font-weight:700; color:#fff; background: var(--navy);
  padding: 10px 16px; border-radius: 9px; transition: background .2s; white-space:nowrap;
}
.pd-file-btn:hover { background:#00284f; }
.pd-file-btn i { color: var(--teal); }
.pd-file-or { font-size: 13px; color: var(--text-muted); }

/* ---- 로딩 / 빈 상태 ---- */
.prod-loading { text-align:center; color: var(--text-muted); padding: 60px 0; font-size: 15px; }
.prod-empty { color: var(--text-muted); font-size: 14.5px; padding: 8px 2px; }

/* ---- 관리자 모드 ---- */
.admin-bar {
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background: linear-gradient(120deg, rgba(0,51,102,.06), rgba(51,178,166,.08));
  border: 1px solid rgba(0,51,102,.18); border-radius: 12px;
  padding: 14px 18px; margin-bottom: 34px; font-size: 14px; font-weight:600; color: var(--navy);
  position: relative; z-index: 3200; /* 하단 편집 툴바(3000)보다 위에 두어 버튼이 안 가려지게 */
}
.admin-bar i { margin-right: 6px; color: var(--teal); }
.admin-bar__btn {
  font-size: 14px; font-weight:700; color:#fff; background: var(--navy);
  padding: 11px 22px; border-radius: 8px; cursor: pointer; border: none;
  flex-shrink: 0; position: relative; z-index: 3300;
}
.admin-bar__btn:hover { background:#00284f; }

.prod-cat__head { position: relative; }
.prod-add {
  margin-left: auto; display:inline-flex; align-items:center; gap:7px;
  font-size: 13.5px; font-weight:700; color: var(--navy);
  border: 1.5px dashed rgba(0,51,102,.4); border-radius: 8px; padding: 9px 15px; transition: all .2s;
}
.prod-add:hover { background: var(--navy); color:#fff; border-color: var(--navy); }

.prod-item { position: relative; }
.prod-item__del {
  position: absolute; top: 10px; right: 10px; z-index: 3;
  width: 34px; height: 34px; border-radius: 8px; color:#fff;
  background: rgba(185,28,28,.9); display:grid; place-items:center; font-size:13px;
  opacity: 0; transition: opacity .2s;
}
.prod-item:hover .prod-item__del { opacity: 1; }

/* ---- 제품 등록 모달 ---- */
.prod-modal { position: fixed; inset: 0; z-index: 2000; display:grid; place-items:center; padding: 20px; }
.prod-modal[hidden] { display: none; }
.prod-modal__backdrop { position:absolute; inset:0; background: rgba(15,23,42,.55); backdrop-filter: blur(3px); }
.prod-modal__panel {
  position: relative; z-index:1; width: 100%; max-width: 520px; background:#fff;
  border-radius: 18px; padding: 34px; box-shadow: var(--shadow-lg); max-height: 90vh; overflow:auto;
}
.prod-modal__panel h3 { font-size: 20px; font-weight:800; margin-bottom: 22px; }
.prod-modal__x { position:absolute; top:18px; right:18px; width:36px; height:36px; border-radius:8px; color:var(--text-muted); font-size:18px; }
.prod-modal__x:hover { background: var(--bg-sub); color: var(--text); }
.prod-modal__actions { display:flex; gap:12px; margin-top: 8px; }
.prod-modal__actions .btn { flex:1; justify-content:center; }

/* ---- 관리자 로그인 플로팅 버튼 ---- */
.admin-fab {
  position: fixed; right: 22px; bottom: 22px; z-index: 1500;
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--navy); color: #fff; font-size: 14px; font-weight: 700;
  padding: 12px 18px; border-radius: 999px; box-shadow: 0 8px 22px rgba(0,51,102,.35);
  transition: transform .2s, background .2s;
}
.admin-fab i { color: var(--teal); }
.admin-fab:hover { transform: translateY(-2px); background: #00284f; }
@media (max-width: 560px) { .admin-fab { right: 16px; bottom: 16px; padding: 11px 15px; font-size: 13px; } }

/* ============================================================
   CONTACT page
   ============================================================ */
.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 50px; align-items: start; }
.contact-info { }
.contact-info .ci-item { display:flex; gap:16px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.contact-info .ci-item .ic { width: 48px; height:48px; border-radius:12px; background:var(--grad); color:#fff; display:grid; place-items:center; font-size:18px; flex-shrink:0; }
.contact-info .ci-item .lb { font-size: 13px; color: var(--text-muted); margin-bottom: 4px; }
.contact-info .ci-item .val { font-weight: 700; font-size: 17px; }

.contact-form { background:#fff; border:1px solid var(--line); border-radius: 20px; padding: 40px; box-shadow: var(--shadow-sm); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-group { margin-bottom: 20px; }
.form-group label { display:block; font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.form-group label .req { color: var(--blue); }
.form-group input, .form-group select, .form-group textarea {
  width: 100%; padding: 13px 15px; border: 1.5px solid var(--line); border-radius: 10px;
  font-family: inherit; font-size: 15px; color: var(--text); background:#fff; transition: border-color .2s, box-shadow .2s; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  outline: none; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(0,91,150,.12); }
.form-group textarea { resize: vertical; min-height: 130px; }
.form-group input[type="file"] { padding: 11px 14px; background: var(--bg-soft); cursor: pointer; }
.form-group input[type="file"]::file-selector-button {
  margin-right: 12px; padding: 8px 14px; border-radius: 8px; border: none;
  background: var(--navy); color: #fff; font-weight: 700; font-size: 13px; cursor: pointer; font-family: inherit; }
.form-group input[type="file"]::file-selector-button:hover { background: #00284f; }
.file-hint { margin-top: 8px; font-size: 12.5px; color: var(--text-muted); }
.form-check { display:flex; align-items:flex-start; gap: 10px; font-size: 14px; color: var(--text-muted); margin-bottom: 24px; }
.form-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--blue); }
.contact-form .btn { width: 100%; justify-content: center; }
.form-msg { margin-top: 16px; padding: 14px 16px; border-radius: 10px; font-size: 14.5px; font-weight: 600; display:none; }
.form-msg.ok { display:block; background: rgba(34,197,94,.1); color:#15803d; }
.form-msg.err { display:block; background: rgba(239,68,68,.1); color:#b91c1c; }

/* ---- Responsive ---- */
@media (max-width: 900px){
  .greeting, .location, .biz-row, .biz-row.rev, .contact-grid { grid-template-columns: 1fr; gap: 36px; }
  .biz-row.rev .biz-row__media { order: -1; }
  .biz-row + .biz-row { margin-top: 64px; }
  .value-grid { grid-template-columns: 1fr; }
  .cert-grid { grid-template-columns: 1fr 1fr; }
  .prod-grid { grid-template-columns: 1fr 1fr; }
  .greeting__media { order:-1; }
}
@media (max-width: 560px){
  .sub-section { padding: 64px 0; }
  .form-row { grid-template-columns: 1fr; }
  .cert-grid, .prod-grid { grid-template-columns: 1fr; }
  .contact-form, .location__info { padding: 26px; }
}
