@charset "utf-8";
/* =========================================================
   insufirst.com  THEME : MEDICAL CLEAN  (teal / mint)
   - 기존 레이아웃/폼은 유지, 비주얼만 전체 리스킨
   - 폼 내부(.if-*, #dbForm_Area, .btn_sns 등)는 건드리지 않음
   ========================================================= */

:root{
  --med-teal:#3093fd;
  --med-teal-dark:#1f7be6;
  --med-teal-deep:#155bb0;
  --med-teal-700:#1a6fd0;
  --med-mint:#5aa9ff;
  --med-mint-50:#eef5ff;
  --med-mint-100:#deebff;
  --med-mint-200:#bcd8fb;
  --med-line:#dde8f5;
  --med-ink:#1d2b3a;
  --med-ink-soft:#5a6b7d;
  --med-bg:#f3f8ff;
  --med-white:#ffffff;
  --med-alert:#e1483c;
  --med-shadow:0 6px 22px rgba(48,144,253,.10);
  --med-shadow-h:0 14px 34px rgba(31,123,230,.18);
  --med-font:'Pretendard','Pretendard Variable',-apple-system,BlinkMacSystemFont,'맑은 고딕','Malgun Gothic','Apple SD Gothic Neo',sans-serif;
}

/* ---------- base ---------- */
html,body{ font-family:var(--med-font); color:var(--med-ink); background:var(--med-white); -webkit-text-size-adjust:100%; }
body{ letter-spacing:-.2px; }
::selection{ background:var(--med-teal); color:#fff; }
::-moz-selection{ background:var(--med-teal); color:#fff; }
p{ color:var(--med-ink); }
a{ color:inherit; }
img{ width:auto; max-width:100%; }

main{ display:block; padding-top:72px; }

/* 공통 폭 */
.container-fluid{ width:100%; max-width:1200px; margin:0 auto; padding-left:18px; padding-right:18px; }
.main-board{ width:100%; }

/* 섹션 리듬: 밝은 화이트 / 연한 민트 교차 */
main > section{ padding:48px 0; }
main > section:nth-of-type(odd){ background:var(--med-white); }
main > section:nth-of-type(even){ background:var(--med-bg) !important; }

/* =========================================================
   HEADER  (teal sticky bar)
   ========================================================= */
.header-area{
  background:var(--med-teal) !important;
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:72px !important; min-height:72px !important;
  box-shadow:0 2px 14px rgba(7,92,68,.18);
}
.header-area .container{ max-width:1200px; height:72px !important; }
.header-area .row,.header-area .col-12{ height:72px !important; }
.header-area .main-nav{ position:relative; height:72px !important; min-height:72px !important; display:flex; align-items:center; justify-content:space-between; }

.header-area .main-nav .logo{ float:none; display:inline-flex; align-items:center; }
.header-area .main-nav .logo h1{
  float:none; line-height:1.1; color:#fff; font-size:1.42rem; font-weight:800;
  letter-spacing:-.4px; display:inline-flex; align-items:center; text-transform:none;
}
.header-area .main-nav .logo h1::before{
  content:""; display:inline-block; width:30px; height:30px; margin-right:9px; border-radius:9px;
  background:#fff;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10 3h4v7h7v4h-7v7h-4v-7H3v-4h7z' fill='black'/></svg>") center/18px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10 3h4v7h7v4h-7v7h-4v-7H3v-4h7z' fill='black'/></svg>") center/18px no-repeat;
  background-clip:padding-box;
}
.header-area .main-nav .logo h1 span.med-mark{ display:none; }

.header-area .main-nav .nav{
  float:none; margin:0; display:flex; align-items:center; gap:2px; background:transparent;
}
.header-area .main-nav .nav li{ padding:0; }
.header-area .main-nav .nav li a{
  display:block; color:#eafff6; padding:8px 13px; border-radius:8px; font-weight:500;
  text-transform:none; transition:background .18s,color .18s;
}
.header-area .main-nav .nav li a h2{ font-size:15px; font-weight:500; color:inherit; }
.header-area .main-nav .nav li a:hover{ background:rgba(255,255,255,.16); color:#fff; }
.header-area .main-nav .nav li a.on{ background:#fff; color:var(--med-teal-dark) !important; }
.header-area .main-nav .nav li a.on h2{ color:var(--med-teal-dark); }
.header-area.header-sticky .nav li a.active{ color:#fff; }

/* 햄버거 */
.header-area .main-nav .menu-trigger{ top:50%; transform:translateY(-50%); right:6px; }
.header-area .main-nav .menu-trigger span,
.header-area .main-nav .menu-trigger span:before,
.header-area .main-nav .menu-trigger span:after{ background-color:#fff; }

@media (max-width:991px){
  main{ padding-top:60px; }
  .header-area,.header-area .container,.header-area .row,.header-area .col-12,.header-area .main-nav{ height:60px !important; min-height:60px !important; }
  .header-area .main-nav .logo h1{ font-size:1.2rem; }
  .header-area .main-nav .menu-trigger{ display:block; }
  .header-area .main-nav .nav{
    display:none; position:absolute; top:60px; left:0; right:0; flex-direction:column; gap:0;
    background:var(--med-teal-dark); padding:8px 10px 14px; box-shadow:0 16px 26px rgba(7,92,68,.22);
  }
  .header-area .main-nav .nav li{ width:100%; padding:0; }
  .header-area .main-nav .nav li a{ padding:13px 12px; border-radius:8px; }
  .header-area .main-nav .nav li a:not(:last-child){ border-bottom:1px solid rgba(255,255,255,.12); }
}

/* =========================================================
   FORM BAND  (폼은 그대로, 주변만 클린한 의료 배경)
   ========================================================= */
.main-banner{
  background:transparent;
  border:0;
  border-radius:0;
  padding:0;
  box-shadow:none;
  margin-top:0;
}
/* 폼 컨테이너 좌우 패딩 제거 → 아래 콘텐츠(#goods_contenta_area)와 폭 정렬 */
.main-banner .container{ max-width:100% !important; padding-left:0 !important; padding-right:0 !important; }
.main-banner .container .row{ margin-left:0 !important; margin-right:0 !important; }
.main-banner .container .row > [class*="col"]{ padding-left:0 !important; padding-right:0 !important; }
main > section:first-of-type{ padding-top:30px; padding-bottom:34px; background:var(--med-white); }

/* =========================================================
   SECTION HEAD (공통 제목 블록)
   ========================================================= */
.med-sec-head{ text-align:center; max-width:760px; margin:0 auto 30px; }
.med-eyebrow{
  display:inline-block; font-size:13px; font-weight:700; letter-spacing:.4px; color:var(--med-teal);
  background:var(--med-mint-100); border:1px solid var(--med-mint-200);
  padding:5px 14px; border-radius:999px; margin-bottom:14px;
}
.med-sec-title{ font-size:1.78rem; font-weight:800; color:var(--med-ink); line-height:1.32; letter-spacing:-.6px; }
.med-sec-desc{ margin-top:12px; font-size:15.5px; line-height:1.75; color:var(--med-ink-soft); }
@media (max-width:767px){ .med-sec-title{ font-size:1.42rem; } }

/* =========================================================
   STAT BAND (통계 밴드)
   ========================================================= */
.med-stat{
  background:var(--med-teal-deep);
  background-image:linear-gradient(135deg,var(--med-teal-deep),var(--med-teal-700));
  border-radius:20px; padding:26px 20px; margin:0 0 34px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
.med-stat .st{ text-align:center; color:#eafff6; position:relative; }
.med-stat .st:not(:last-child)::after{
  content:""; position:absolute; right:-8px; top:14%; height:72%; width:1px; background:rgba(255,255,255,.18);
}
.med-stat .st b{ display:block; font-size:2.05rem; font-weight:800; color:#fff; line-height:1.1; letter-spacing:-1px; }
.med-stat .st span{ display:block; margin-top:7px; font-size:13.5px; color:#cdeee2; line-height:1.5; }
.med-stat .st em{ font-style:normal; color:#9fe6cf; font-size:1.1rem; font-weight:700; }
@media (max-width:767px){
  .med-stat{ grid-template-columns:repeat(2,1fr); gap:18px 10px; padding:22px 14px; }
  .med-stat .st:nth-child(2)::after{ display:none; }
  .med-stat .st b{ font-size:1.6rem; }
}

/* =========================================================
   6 IMAGE CARDS  (ul/li · 2×3 grid · 이미지 인덱싱)
   ========================================================= */
.med-cards{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr; gap:16px;
}
.med-card{
  background:#fff; border:1px solid var(--med-line); border-radius:16px; overflow:hidden;
  display:flex; flex-direction:row; align-items:stretch; box-shadow:var(--med-shadow);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.med-card:hover{ transform:translateY(-3px); box-shadow:var(--med-shadow-h); border-color:var(--med-teal); }
.med-card-media{
  flex:0 0 200px; width:200px; align-self:stretch;
  display:flex; align-items:center; justify-content:center; padding:16px;
  background:#fff; border-right:1px solid var(--med-line); overflow:hidden; line-height:0;
}
.med-card-media .med-card-thumb{ display:block; line-height:0; width:100%; }
.med-card-media img{ display:block; width:100%; height:auto; transition:transform .35s ease; }
.med-card:hover .med-card-media img{ transform:scale(1.05); }
.med-card-no{ display:none !important; }
.med-card-body{ padding:16px 18px; display:flex; flex-direction:column; flex:1 1 auto; min-width:0; }
.med-card-title{ font-size:1.32rem; font-weight:800; color:var(--med-ink); line-height:1.3; letter-spacing:-.5px; order:1; }
.med-card-title a{ color:inherit; }
.med-card-title a:hover{ color:var(--med-teal); }
.med-card-lead{
  margin-top:7px; font-size:12.5px; line-height:1.55; color:var(--med-alert); font-weight:600; order:2;
}
.med-card-text{ margin-top:6px; font-size:12px; line-height:1.62; color:var(--med-ink-soft); order:3; }
.med-card-text strong{ color:var(--med-ink); font-weight:700; }
.med-card-text .ck{ display:block; margin-top:3px; }
.med-card-links{
  list-style:none; margin:0 0 12px; padding:0; border-top:0; order:0;
  display:flex; flex-wrap:wrap; gap:7px;
}
.med-card-links li{ margin:0; padding:0; }
.med-card-links li a{
  display:inline-block; font-size:12px; font-weight:600; color:var(--med-teal-dark);
  background:var(--med-mint-50); border:1px solid var(--med-mint-200);
  padding:5px 10px; border-radius:999px; transition:background .15s,color .15s;
}
.med-card-links li a:hover{ background:var(--med-teal); color:#fff; border-color:var(--med-teal); }
.med-card-more{ display:none !important; }
.med-card-more_x{
  margin-top:auto; padding-top:13px; display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:700; color:var(--med-teal);
}
.med-card-more_x::after{ content:"\2192"; font-size:15px; transition:transform .2s; }
.med-card:hover .med-card-more::after{ transform:translateX(4px); }

@media (max-width:880px){
  .med-cards{ gap:14px; }
  .med-card-media{ flex:0 0 150px; width:150px; padding:12px; }
}
@media (max-width:600px){
  .med-card{ flex-direction:column; align-items:stretch; }
  .med-card-media{ flex:0 0 auto; width:100%; border-right:0; border-bottom:1px solid var(--med-line); padding:16px; }
  .med-card-media img{ max-width:230px; margin:0 auto; }
  .med-card-body{ padding:15px 16px; }
}

/* =========================================================
   GUIDE ARTICLE (main_contents.asp / sc_point)
   ========================================================= */
.sc_point{ background:transparent; }
.sc_point .inner{ max-width:980px; margin:0 auto; }
.sc_point .title_wrap{ text-align:center; margin-bottom:26px; }
.sc_point .title_wrap h2{
  font-size:1.7rem; font-weight:800; color:var(--med-ink); line-height:1.38; letter-spacing:-.6px;
  padding-bottom:18px; position:relative;
}
.sc_point .title_wrap h2::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:54px; height:4px; border-radius:3px; background:var(--med-teal);
}
.sc_point > .inner > p,.sc_point p{ font-size:15.5px; line-height:1.85; color:#33454d; }
.sc_point .inner > p:first-of-type{
  background:var(--med-mint-50); border:1px solid var(--med-mint-200); border-radius:14px;
  padding:18px 20px; margin-bottom:6px;
}
.sc_point h3{
  font-size:1.32rem; font-weight:800; color:var(--med-ink); margin:34px 0 6px; padding-left:15px;
  position:relative; line-height:1.4; letter-spacing:-.4px;
}
.sc_point h3::before{
  content:""; position:absolute; left:0; top:5px; bottom:5px; width:5px; border-radius:3px; background:var(--med-teal);
}
.sc_point h4{
  font-size:1.08rem; font-weight:700; color:var(--med-teal-dark); margin:22px 0 4px; padding-left:18px; position:relative;
}
.sc_point h4::before{
  content:""; position:absolute; left:2px; top:9px; width:9px; height:9px; border-radius:50%;
  background:var(--med-mint); box-shadow:0 0 0 4px var(--med-mint-100);
}
.sc_point strong{ color:var(--med-teal-deep); font-weight:700; }

/* 표 */
.menu_table_area{ width:100%; overflow:hidden; }
.tbl_menu_view{
  width:100%; border-collapse:separate; border-spacing:0; margin-top:18px !important;
  border:1px solid var(--med-line); border-radius:14px; overflow:hidden; font-size:14px; background:#fff;
  box-shadow:var(--med-shadow);
}
.tbl_menu_view th{
  background:var(--med-teal); color:#fff; font-weight:700; padding:13px 12px; text-align:center;
  border-bottom:1px solid var(--med-teal-dark); word-break:keep-all;
}
.tbl_menu_view td{
  padding:12px; border-bottom:1px solid var(--med-line); border-left:1px solid var(--med-line);
  color:#3a4b53; line-height:1.6; vertical-align:middle; word-break:keep-all;
}
.tbl_menu_view td:first-child{
  border-left:0; background:var(--med-mint-50); font-weight:700; color:var(--med-teal-deep); text-align:center;
}
.tbl_menu_view tr:last-child td{ border-bottom:0; }
.tbl_menu_view tr:nth-child(even) td:not(:first-child){ background:#fafcfb; }

/* =========================================================
   REALTIME 영역 (contMid_tab01)
   ========================================================= */
.realtime_area{ }
.contMid_tab01{ border-top:0; }
.contMid_tab01 .innerB{
  max-width:1180px; margin:0 auto;
  display:flex; flex-wrap:wrap; align-items:stretch; gap:18px;
}
.contMid_tab01 .innerB h2{
  flex:0 0 100%; width:100%; margin:0;
  color:var(--med-ink); font-weight:800; font-size:2.5rem !important; letter-spacing:-1px;
  padding:6px 0 16px !important; line-height:1.3;
}
.contMid_tab01_left,.contMid_tab01_mid,.contMid_tab01_right{
  float:none !important; width:auto !important; margin:0 !important; flex:1 1 0 !important; min-width:0;
}
.contMid_tab01_left,.contMid_tab01_mid{
  display:grid !important; grid-template-rows:repeat(3,116px); gap:14px; align-content:start;
}
.contMid_tab01 .innerB ul li{
  background:#fff !important; border:1px solid var(--med-line); border-radius:14px !important;
  color:var(--med-ink) !important; font-weight:500 !important; font-size:1.0rem !important;
  line-height:1.55em !important; box-shadow:var(--med-shadow); padding:16px 16px 16px 14px !important;
  letter-spacing:-.3px;
}
.contMid_tab01_left ul,.contMid_tab01_mid ul{ padding:0 !important; margin:0 !important; height:100%; }
.contMid_tab01 .innerB ul li b{ color:var(--med-teal-deep); font-weight:700; }
.contMid_tab01_left li,.contMid_tab01_mid li{
  display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
  height:100% !important; min-height:0 !important; align-items:flex-end !important;
  padding:10px 14px 0 12px !important; overflow:hidden; gap:8px; text-align:left !important;
}
.contMid_tab01_left li span:first-child,.contMid_tab01_mid li span:first-child{
  width:auto !important; height:auto !important; background:none !important; border:0 !important; border-radius:0 !important;
  display:block; flex:0 0 auto; align-self:flex-end;
}
.contMid_tab01_left li span:first-child img,.contMid_tab01_mid li span:first-child img{
  width:84px !important; height:auto !important; object-fit:contain; display:block; vertical-align:bottom;
}
.contMid_tab01_left li span:last-child,.contMid_tab01_mid li span:last-child{
  flex:1 1 auto; width:auto !important; align-self:center; margin-top:0 !important; text-align:left;
  font-size:16px !important; line-height:1.5; padding-bottom:14px;
}
.contMid_tab01 .innerB ul li > div,.contMid_tab01 .innerB ul li{ display:flex; align-items:center; }
.contMid_tab01_right{
  background:#fff !important; border:1px solid var(--med-line); border-radius:16px; box-shadow:var(--med-shadow);
  padding:4px 12px 6px; margin-top:0 !important;
}
.contMid_tab01_right h3{ color:var(--med-teal-deep) !important; font-weight:800 !important; font-size:1.02em !important; margin:8px 0 4px !important; }
.contMid_tab01_right .table_nm{ margin-bottom:4px !important; }
.table_nm thead td{ color:var(--med-teal-deep) !important; border-bottom:2px solid var(--med-mint-200) !important; font-weight:700 !important; font-size:12px !important; padding:6px 4px !important; }
#realtime_list ul li{ box-shadow:none !important; border:0 !important; border-bottom:1px solid #f0f5f3 !important; border-radius:0 !important; padding:5px 0 !important; }
#realtime_list .real_item,.table_nm td{ font-size:12px !important; }

/* =========================================================
   상품 목록 (portfolio / goods_item)
   ========================================================= */
#portfolio .goods_area h2{
  text-align:center; font-size:1.55rem; font-weight:800; color:var(--med-ink); letter-spacing:-.5px;
  margin-bottom:26px; position:relative; padding-bottom:16px;
}
#portfolio .goods_area h2::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:48px; height:4px; border-radius:3px; background:var(--med-teal);
}
/* 불필요한 min-width 제거(모바일 우측 잘림 방지) */
.goods_area{ min-width:0 !important; }
/* 상품카드 hover 캡션 오버레이 제거(불필요) */
#portfolio .portfolio-box .portfolio-box-caption,
#portfolio .portfolio-box:hover .portfolio-box-caption{ display:none !important; }
.goods_item{ margin-bottom:24px; }
.goods_item .goods_item_in{
  border:1px solid var(--med-line) !important; border-radius:16px !important; height:auto !important;
  min-height:262px; padding-bottom:18px; overflow:hidden; background:#fff; box-shadow:var(--med-shadow);
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.goods_item .goods_item_in:hover{
  transform:translateY(-4px); box-shadow:var(--med-shadow-h);
  border-color:var(--med-teal) !important; background:#dcebff !important;
}
.goods_item .goods_item_in:hover .img-fluid,
.goods_item .goods_item_in:hover > a > div{ background:transparent !important; }
.goods_item .portfolio-box{ display:block; }
.goods_item .goods_item_in > a > div:first-child{ padding:14px 14px 10px; }
.btn_calcu{
  display:inline-block; background:var(--med-teal); color:#fff !important; font-weight:700; font-size:13.5px;
  padding:9px 20px; border-radius:999px; transition:background .18s;
}
.goods_item .goods_item_in:hover .btn_calcu{ background:var(--med-teal-dark); }
.portfolio-box-caption{ display:none !important; opacity:0 !important; }
#portfolio .portfolio-box:hover .portfolio-box-caption{ opacity:0 !important; }
.goods_item .goods_item_in{ position:relative; z-index:1; }
.goods_item .goods_item_in:hover{ z-index:3; }

/* =========================================================
   FOOTER
   ========================================================= */
footer.bg-light{
  background:#16314f !important; color:#d4e2f3; padding:30px 0 38px; margin-top:0;
}
footer .container{ max-width:1200px; padding:14px 18px !important; text-align:left; }
footer .smenu{ text-align:left !important; }
footer .tel_num,footer .copyright,footer .cls_footer_certi{ text-align:left !important; }
footer .smenu{ margin-bottom:14px !important; }
footer .smenu a{ color:#e6f3ee; font-size:13.5px; font-weight:600; }
footer .smenu a:hover{ color:var(--med-mint); }
footer .tel_num a span{ font-weight:800 !important; }
footer .tel_num .col_redb{ color:#ff9a8e !important; }
footer .tel_num .col_greenb{ color:var(--med-mint) !important; }
footer .tel_num div{ color:#9fb4ad; font-size:13px; margin-top:6px; }
footer .copyright{ color:#7e958e; font-size:12.5px; margin-top:14px; }
footer .copyright a{ color:#a9c3bb; }
footer p a{ color:var(--med-mint); }
footer .cls_footer_certi,
.cls_footer_certi{ color:#dce8fb !important; }
footer .tel_num div{ color:#bcd0e8 !important; }
footer .copyright{ color:#9fb6d2 !important; }
footer .copyright a{ color:#cfe0f6 !important; }

/* 필수안내/패밀리사이트 (footer 위 박스) */
.f_info_box{ background:#fff !important; border:1px solid var(--med-line) !important; border-radius:14px !important; }

/* =========================================================
   SUB PAGE  (sub.css 블루 → 틸 리스킨)
   ========================================================= */
.sc_from{ background:var(--med-mint-50) !important; }
.slide_menu{ background:var(--med-teal) !important; border-radius:16px; }
.slide_menu .menu_headline{ font-weight:800; }
.slide_menu .menu_list .menu_item a{ border-top:1px solid rgba(255,255,255,.18) !important; }
.slide_menu .menu_list .menu_item a.on{ background:#fff !important; color:var(--med-teal-dark) !important; border-radius:8px; }
.slide_menu .menu_list .menu_item a:hover{ color:#eafff6 !important; }
.slide_menu .menu_list .menu_item:last-child{ border-bottom:1px solid rgba(255,255,255,.18) !important; }
.text_page .content_headline{
  color:var(--med-teal-deep) !important; background:var(--med-mint-50) !important;
  border-left:5px solid var(--med-teal); border-radius:12px; font-weight:800;
}
.sub_all .content_box strong{ color:var(--med-teal-deep); }

/* 잡다한 안전장치 */
.clear{ clear:both; }
.img_float{ float:none; }

/* =========================================================
   ADDITIONAL FIXES (요청 반영)
   ========================================================= */

/* 보험료 산출결과 박스 padding */
#pay_table .boxi,.if-col-result .boxi,.boxi{ padding:8px 16px !important; }

/* 상품상세 보장표 th : 흰 글자 안 보임 → 파란 헤더 배경 강제 */
#goods_contenta_area th,
#goods_contenta_area table th,
.sc_point th,.sc_point table th,
.menu_text_area th,.menu_text_area table th,
.main_contents th,.text_page th{
  background:var(--med-teal) !important;
  color:#fff !important;
  font-weight:700 !important;
  padding:8px 10px !important;
  border-color:var(--med-teal-dark) !important;
}
#goods_contenta_area td,.sc_point td,.menu_text_area td{ color:#33424f; }

/* 필수안내사항 영역 폭을 본문(1200px)에 맞춤 + 크기 정돈 */
.container-fluid{ max-width:1200px !important; }
.indispensable_area{ padding:0 !important; margin:0 auto 10px !important; }
.indispensable_area .indispensable_box{
  border:1px solid var(--med-line) !important; border-radius:14px !important;
  padding:16px 18px !important; background:#fff;
}
.indispensable_area .title{ font-size:15px !important; color:var(--med-ink) !important; }
.indispensable_area ul li{ font-size:12.5px !important; line-height:20px !important; }

/* =========================================================
   직접계산 알림 : "내 보험료 확인" 버튼 위 인라인 + (모달중엔)상단 토스트
   ========================================================= */
.med-alert-inline{
  display:none; margin:0 0 12px; padding:13px 16px; border-radius:12px;
  background:#fdecea; border:1px solid #f1b0a9; color:#c0392b;
  font-size:14px; font-weight:600; line-height:1.5; text-align:center; white-space:pre-line;
}
.med-alert-inline.show{ display:block; animation:medAlertIn .18s ease; }
@keyframes medAlertIn{ from{ opacity:0; transform:translateY(-4px); } to{ opacity:1; transform:none; } }
#med-alert-toast{
  position:fixed; top:18px; left:50%; transform:translateX(-50%) translateY(-14px);
  max-width:90%; z-index:2147483647; pointer-events:none;
  background:#e1483c; color:#fff; font-size:15px; font-weight:600; line-height:1.5;
  padding:13px 22px; border-radius:12px; box-shadow:0 10px 30px rgba(225,72,60,.35);
  opacity:0; transition:opacity .18s ease, transform .18s ease; white-space:pre-line; text-align:center;
}
#med-alert-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* =========================================================
   실시간 영역 모바일 스택
   ========================================================= */
@media (max-width:880px){
  .contMid_tab01 .innerB{ gap:12px; align-items:flex-start; }
  .contMid_tab01_left,.contMid_tab01_mid,.contMid_tab01_right{ flex:1 1 100% !important; }
  .contMid_tab01 .innerB h2{ font-size:1.7rem !important; padding-bottom:10px !important; }
  .contMid_tab01_left li span:first-child img,.contMid_tab01_mid li span:first-child img{ width:74px !important; }
  .contMid_tab01_left li span:last-child,.contMid_tab01_mid li span:last-child{ font-size:15px !important; padding-bottom:12px; }
  .contMid_tab01_left li,.contMid_tab01_mid li{ min-height:84px; }
}

/* =========================================================
   휴대폰 인증 레이어 (60개 사이트 표준형 · body 직속 · 최상위 z-index)
   ========================================================= */
.sms-modal{
  position:fixed; inset:0; top:0; left:0; right:0; bottom:0; z-index:2147483646;
  display:none; align-items:center; justify-content:center; background:rgba(18,40,70,.55); padding:16px;
}
.sms-modal.show{ display:flex; }
.sms-modal .sms-box{
  position:relative; width:100%; max-width:360px; background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 26px 70px rgba(0,0,0,.34); animation:smsPop .2s ease;
}
@keyframes smsPop{ from{ transform:translateY(14px); opacity:0; } to{ transform:none; opacity:1; } }
.sms-modal .sms-top{
  display:flex; align-items:center; justify-content:space-between; padding:15px 18px;
  background:var(--med-teal); color:#fff;
}
.sms-modal .sms-top h3{ margin:0; font-size:16px; font-weight:700; }
.sms-modal .sms-close{ background:none; border:0; color:#fff; font-size:24px; line-height:1; cursor:pointer; padding:0 2px; }
.sms-modal .sms-body{ padding:24px 22px 22px; text-align:center; }
.sms-modal .sms-ico{
  width:60px; height:60px; margin:0 auto 14px; border-radius:50%;
  background:var(--med-mint-50); color:var(--med-teal); display:flex; align-items:center; justify-content:center;
  box-shadow:0 0 0 6px rgba(48,144,253,.08);
}
.sms-modal .sms-info{ margin:0 0 16px; font-size:13.5px; line-height:1.6; color:var(--med-ink-soft); }
.sms-modal .sms-info b{ color:var(--med-teal-deep); font-weight:800; letter-spacing:.3px; }
.sms-modal .sms-field{ margin:0; }
.sms-modal #otp{
  display:block; width:100%; height:56px; box-sizing:border-box; text-align:center;
  border:1.5px solid var(--med-mint-200); border-radius:12px; background:#fff;
  font-size:22px; font-weight:700; letter-spacing:8px; color:var(--med-ink); padding:0 12px;
}
.sms-modal #otp::placeholder{ letter-spacing:normal; font-weight:500; color:#aab6c2; font-size:15px; }
.sms-modal #otp:focus{ outline:none; border-color:var(--med-teal); box-shadow:0 0 0 3px rgba(48,144,253,.15); }
.sms-modal .sms-err{
  display:none; margin-top:10px; font-size:13px; font-weight:600; color:#c0392b; line-height:1.5;
}
.sms-modal .sms-err.show{ display:block; }
.sms-modal .sms-btn{
  display:block; width:100%; height:52px; margin-top:14px; border:0; border-radius:12px;
  background:var(--med-teal); color:#fff; font-size:15.5px; font-weight:700; cursor:pointer; transition:background .15s;
}
.sms-modal .sms-btn:hover{ background:var(--med-teal-dark); }
.sms-modal .sms-resend{
  display:block; width:100%; margin-top:14px; padding-top:14px; border:0; border-top:1px solid var(--med-line);
  background:none; color:var(--med-teal-deep); font-size:13px; font-weight:600; cursor:pointer;
  text-decoration:underline; text-underline-offset:3px;
}
.sms-modal .sms-resend:hover{ color:var(--med-teal); }
/* 폼 내 원래 인증영역은 숨김(필드는 유지) */
#CQCert{ display:none !important; }

/* =========================================================
   추가 보정 (네이버 N / step1 / 상품상세 콘텐츠)
   ========================================================= */
/* 네이버 버튼 앞 흰색 N 제거 */
.btn_sns.naver .naver_n{ display:none !important; }
.btn_sns.naver::before{ content:none !important; display:none !important; }
.btn_sns.naver{ gap:0 !important; }

/* STEP1 안내문구 모바일에서 줄바꿈(아랫줄로) */
@media (max-width:600px){
  .if-shead{ flex-wrap:wrap; }
  .if-shead small{ flex-basis:100%; width:100%; margin-top:3px; }
}

/* =========================================================
   상품상세 콘텐츠 (상품특징·가입예시·보장내용·유의사항)
   ========================================================= */
#goods_contenta_area{ border:0 !important; background:transparent !important; margin-top:18px !important; }
#goods_contenta_area *{ box-sizing:border-box; }
.goods_tab{
  margin-bottom:14px !important; border:1px solid var(--med-line) !important; border-radius:14px !important;
  overflow:hidden; background:#fff; box-shadow:var(--med-shadow);
}
.goods_tab_title{
  width:100% !important; height:auto !important; min-height:50px; line-height:1.3 !important;
  border:0 !important; border-bottom:1px solid var(--med-line) !important;
  background:var(--med-mint-50) !important; color:var(--med-teal-deep) !important;
  font-size:16px !important; font-weight:800 !important; text-align:left !important;
  padding:15px 42px 15px 18px !important; cursor:pointer !important; letter-spacing:-.3px; position:relative;
}
.goods_tab_title.on{ background:var(--med-mint-100) !important; }
.goods_tab_title .ico_open,.goods_tab_title .ico_close{
  display:block !important; position:absolute; right:18px; top:50%; width:9px; height:9px;
  background:none !important; border-right:2px solid var(--med-teal); border-bottom:2px solid var(--med-teal);
}
.goods_tab_title .ico_open{ transform:translateY(-65%) rotate(45deg); }
.goods_tab_title .ico_close{ transform:translateY(-35%) rotate(-135deg); }
.goods_tab_title::before{
  content:""; display:inline-block; width:5px; height:16px; border-radius:3px;
  background:var(--med-teal); margin-right:10px; vertical-align:-2px;
}
.goods_tab_text{
  height:auto !important; padding:16px 18px !important;
  font-size:14px; line-height:1.72; color:#33424f;
}
/* 콘텐츠 내부 표: 깔끔한 보더 + 파란 헤더 + 줄바꿈(가로넘침 방지) */
#goods_contenta_area table{
  width:100% !important; max-width:100% !important; border-collapse:collapse !important; border-spacing:0 !important;
  margin:6px 0 12px; font-size:13px; line-height:1.6; table-layout:fixed;
}
#goods_contenta_area table th,#goods_contenta_area table td{
  border:1px solid #e3ebf3 !important; padding:8px 10px !important; word-break:break-all; vertical-align:middle;
}
/* 레이아웃 표(목록·중첩표·이미지/로고 포함)는 테두리·배경·패딩 제거 → 순수 데이터 표만 테두리 유지 */
#goods_contenta_area table:has(ul) > tbody > tr > th,
#goods_contenta_area table:has(ul) > tbody > tr > td,
#goods_contenta_area table:has(table) > tbody > tr > th,
#goods_contenta_area table:has(table) > tbody > tr > td,
#goods_contenta_area table:has(img) > tbody > tr > th,
#goods_contenta_area table:has(img) > tbody > tr > td{
  border:0 !important; background:transparent !important; padding:0 !important;
}
#goods_contenta_area table th{ background:var(--med-teal) !important; color:#fff !important; font-weight:700 !important; }
#goods_contenta_area table tr:nth-child(even) td{ background:#f7fafe; }
#goods_contenta_area td{ color:#3a4754; }
.goods_tab_text ul{ margin:6px 0 10px; padding-left:18px; list-style:disc; }
.goods_tab_text li{ margin:3px 0; line-height:1.65; }
.goods_tab_text p{ margin:6px 0; }
.goods_tab_text img{ max-width:100%; height:auto; }

/* =========================================================
   메인 데이터 콘텐츠 섹션 (그래프/표/FAQ/용어) — med-rich
   ========================================================= */
.med-rich{ max-width:1180px; margin:0 auto; padding:46px 18px 8px; }
.med-rich .mr-head{ text-align:center; max-width:780px; margin:0 auto 30px; }
.med-rich .mr-eyebrow{ display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.4px; color:var(--med-teal-dark); background:var(--med-mint-50); border:1px solid var(--med-mint-200); border-radius:999px; padding:5px 14px; margin-bottom:14px; }
.med-rich h2.mr-title{ font-size:1.9rem; font-weight:800; color:var(--med-ink); line-height:1.3; letter-spacing:-.6px; margin:0 0 12px; }
.med-rich .mr-desc{ font-size:15px; line-height:1.7; color:var(--med-ink-soft); margin:0; }
.med-rich h3.mr-sub{ font-size:1.32rem; font-weight:800; color:var(--med-ink); letter-spacing:-.4px; margin:42px 0 16px; padding-left:14px; position:relative; }
.med-rich h3.mr-sub::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:6px; height:22px; border-radius:3px; background:var(--med-teal); }
.med-rich .mr-note{ font-size:12.5px; color:#8a98a8; margin:8px 2px 0; }

/* 카드 그리드 */
.mr-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.mr-grid.cols3{ grid-template-columns:repeat(3,1fr); }
.mr-card{ background:#fff; border:1px solid var(--med-line); border-radius:16px; padding:22px 22px 20px; box-shadow:var(--med-shadow); }
.mr-card h4{ font-size:1.05rem; font-weight:800; color:var(--med-ink); margin:0 0 4px; letter-spacing:-.3px; }
.mr-card .mr-cap{ font-size:12.5px; color:var(--med-ink-soft); margin:0 0 16px; }

/* 막대 그래프 */
.mr-bars{ display:flex; flex-direction:column; gap:13px; margin-top:6px; }
.mr-bar{ display:grid; grid-template-columns:96px 1fr 46px; align-items:center; gap:10px; }
.mr-bar .bl{ font-size:13px; color:var(--med-ink); font-weight:600; }
.mr-bar .bt{ height:14px; background:var(--med-mint-50); border-radius:999px; overflow:hidden; }
.mr-bar .bf{ height:100%; border-radius:999px; background:linear-gradient(90deg,var(--med-mint),var(--med-teal)); }
.mr-bar .bf.alt{ background:linear-gradient(90deg,#9fd0a8,#43b86a); }
.mr-bar .bv{ font-size:12.5px; font-weight:700; color:var(--med-teal-deep); text-align:right; }

/* 세로 막대(컬럼) 그래프 */
.mr-cols{ display:flex; align-items:flex-end; justify-content:space-between; gap:10px; height:188px; padding:8px 4px 0; border-bottom:2px solid var(--med-line); }
.mr-col{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:6px; }
.mr-col .cf{ width:64%; max-width:46px; border-radius:8px 8px 0 0; background:linear-gradient(180deg,var(--med-mint),var(--med-teal)); position:relative; }
.mr-col .cv{ font-size:12px; font-weight:700; color:var(--med-teal-deep); }
.mr-col .cl{ font-size:12px; color:var(--med-ink-soft); margin-top:8px; }
.mr-colwrap{ margin-top:4px; }
.mr-colwrap .cls{ display:flex; justify-content:space-between; gap:10px; padding:0 4px; }
.mr-colwrap .cls span{ flex:1; text-align:center; font-size:12px; color:var(--med-ink-soft); }

/* 도넛(구성비) */
.mr-donut-wrap{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.mr-donut{ width:148px; height:148px; border-radius:50%; flex:0 0 auto; position:relative; }
.mr-donut::after{ content:""; position:absolute; inset:26px; background:#fff; border-radius:50%; }
.mr-legend{ flex:1; min-width:170px; display:flex; flex-direction:column; gap:10px; }
.mr-legend li{ list-style:none; display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--med-ink); }
.mr-legend .dot{ width:12px; height:12px; border-radius:3px; flex:0 0 auto; }
.mr-legend b{ margin-left:auto; color:var(--med-ink); font-weight:800; }

/* 리치 표 */
.mr-table{ width:100%; border-collapse:collapse; font-size:13.5px; line-height:1.55; table-layout:fixed; margin-top:4px; border:1px solid var(--med-line); border-radius:14px; overflow:hidden; }
.mr-table th,.mr-table td{ padding:11px 12px; border-bottom:1px solid #eef3f9; word-break:keep-all; vertical-align:middle; }
.mr-table thead th{ background:var(--med-teal); color:#fff; font-weight:700; border-bottom:0; }
.mr-table tbody th{ background:var(--med-mint-50); color:var(--med-teal-deep); font-weight:700; text-align:left; }
.mr-table tbody tr:nth-child(2n) td{ background:#f9fbfe; }
.mr-table td{ color:#3a4754; }
.mr-table tbody tr:last-child th,.mr-table tbody tr:last-child td{ border-bottom:0; }

/* FAQ (details/summary, JS 불필요) */
.mr-faq{ display:flex; flex-direction:column; gap:12px; }
.mr-faq details{ background:#fff; border:1px solid var(--med-line); border-radius:14px; box-shadow:var(--med-shadow); overflow:hidden; }
.mr-faq summary{ list-style:none; cursor:pointer; padding:17px 48px 17px 18px; font-size:15px; font-weight:700; color:var(--med-ink); position:relative; }
.mr-faq summary::-webkit-details-marker{ display:none; }
.mr-faq summary::before{ content:"Q"; display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; margin-right:10px; border-radius:6px; background:var(--med-mint-100); color:var(--med-teal-deep); font-size:13px; font-weight:800; vertical-align:middle; }
.mr-faq summary::after{ content:""; position:absolute; right:20px; top:50%; width:9px; height:9px; border-right:2px solid var(--med-teal); border-bottom:2px solid var(--med-teal); transform:translateY(-65%) rotate(45deg); transition:transform .2s; }
.mr-faq details[open] summary::after{ transform:translateY(-35%) rotate(-135deg); }
.mr-faq .fa{ padding:0 18px 18px 50px; font-size:14px; line-height:1.75; color:var(--med-ink-soft); }

/* 용어 풀이 */
.mr-terms{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.mr-term{ background:#fff; border:1px solid var(--med-line); border-left:4px solid var(--med-teal); border-radius:10px; padding:14px 16px; }
.mr-term dt{ font-size:14.5px; font-weight:800; color:var(--med-ink); margin-bottom:4px; }
.mr-term dd{ margin:0; font-size:13px; line-height:1.65; color:var(--med-ink-soft); }

@media (max-width:760px){
  .mr-table{ font-size:12px; }
  .mr-table th,.mr-table td{ padding:8px 7px; word-break:break-word; overflow-wrap:break-word; }
  .med-rich{ padding:34px 14px 6px; }
  .med-rich h2.mr-title{ font-size:1.5rem; }
  .mr-grid,.mr-grid.cols3,.mr-terms{ grid-template-columns:1fr; }
  .mr-bar{ grid-template-columns:78px 1fr 42px; }
}

/* =========================================================
   모바일 상품 리스트: 좌우 패딩 축소 + 우측 잘림(가로 오버플로) 방지
   ========================================================= */
@media (max-width:600px){
  .container-fluid:has(.goods_area){ padding-left:0 !important; padding-right:0 !important; }
  .goods_area{ margin-left:0 !important; margin-right:0 !important; overflow-x:clip; }
  .goods_area > [class*="col"],.goods_area .goods_item{ padding-left:8px !important; padding-right:8px !important; }
  .goods_area h2.col-12{ padding-left:8px !important; padding-right:8px !important; }
}
