@import url("login-shell.css");

:root {
  --pc-content-gutter: max(6vw, calc((100vw - 1180px) / 2));
  --ink: #10213a;
  --muted: #607086;
  --line: #dce4ed;
  --surface: #f5f8fb;
  --white: #ffffff;
  --blue: #1557d6;
  --blue-dark: #0d3f9f;
  --cyan: #42c7e8;
  --radius-lg: 30px;
  --radius-md: 20px;
  --shadow: 0 24px 60px rgba(16, 33, 58, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: Pretendard, "Noto Sans KR", Arial, sans-serif;
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: 280px 1fr 150px;
  align-items: center;
  min-height: 82px;
  padding: 0 var(--pc-content-gutter);
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid rgba(220,228,237,.75);
  backdrop-filter: blur(16px);
}
.site-header .brand { display: flex; align-items: baseline; gap: 10px; white-space: nowrap; }
.site-header .brand > strong { display: inline-flex; align-items: baseline; gap: 5px; flex: 0 0 auto; font-size: 28px; letter-spacing: -1px; color: var(--blue); white-space: nowrap; }
.site-header .brand > span { flex: 0 0 auto; font-size: 10px; letter-spacing: 1.6px; color: var(--muted); }
.site-header .brand .brand-campus { color: #062b6f; }
.site-header .brand .brand-divider { color: var(--blue); }
.primary-nav { display: flex; justify-content: center; gap: 34px; font-weight: 700; font-size: 15px; }
[data-common-header] .primary-nav { font-size: 18px; }
.primary-nav a { position: relative; padding: 28px 0; }
.primary-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 20px; height: 2px; background: var(--blue); transition: .25s; }
.primary-nav a:hover::after { right: 0; }
.header-login { justify-self: end; padding: 11px 17px; border: 1px solid var(--line); border-radius: 999px; font-size: 14px; font-weight: 700; }
.header-admin-link { justify-self: end; padding: 11px 17px; color: #fff; background: #0f1f36; border-radius: 999px; font-size: 14px; font-weight: 800; white-space: nowrap; }

.hero {
  min-height: 700px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(430px, .95fr);
  align-items: center;
  gap: 6vw;
  padding: 90px var(--pc-content-gutter) 80px;
  overflow: hidden;
  background:
    radial-gradient(circle at 80% 20%, rgba(66,199,232,.22), transparent 30%),
    linear-gradient(135deg, #f7fbff 0%, #edf5ff 48%, #ffffff 100%);
}
.eyebrow { margin: 0 0 14px; color: var(--blue); font-size: 13px; font-weight: 800; letter-spacing: 2.1px; }
.hero h1 { margin: 0; font-size: clamp(40px, 3.8vw, 54px); line-height: 1.13; letter-spacing: -2.6px; }
.hero-slideshow .hero-copy h1 { font-size: clamp(38px, 3.2vw, 46px); }
.hero-slideshow .hero-title-line { white-space: nowrap; }
.hero-description { max-width: 650px; margin: 28px 0 0; color: var(--muted); font-size: 20px; }

/* PC HOME HERO DESCRIPTION ISOLATED START 20260802-1612 */
body > main#home .hero-slideshow .hero-copy > .hero-description.hero-description--rainbow { max-width: 900px; margin: 28px 0 0; color: rgba(255,255,255,.96); font-size: 30px; font-weight: 500; line-height: 1.36; letter-spacing: -.3px; }
body > main#home .hero-slideshow .hero-copy > .hero-description.hero-description--rainbow .hero-service { font-weight: 700; text-shadow: 0 2px 12px rgba(0,0,0,.34); }
body > main#home .hero-slideshow .hero-copy > .hero-description.hero-description--rainbow .hero-service-print { color: #7ee7ff; }
body > main#home .hero-slideshow .hero-copy > .hero-description.hero-description--rainbow .hero-service-binding { color: #7ff2bd; }
body > main#home .hero-slideshow .hero-copy > .hero-description.hero-description--rainbow .hero-service-publishing { color: #ffe66f; }
body > main#home .hero-slideshow .hero-copy > .hero-description.hero-description--rainbow .hero-service-poster { color: #ffb86b; }
body > main#home .hero-slideshow .hero-copy > .hero-description.hero-description--rainbow .hero-service-banner { color: #ff8fb8; }
body > main#home .hero-slideshow .hero-copy > .hero-description.hero-description--rainbow .hero-service-sign { color: #c7a7ff; }
/* PC HOME HERO DESCRIPTION ISOLATED END 20260802-1612 */
.hero-actions { display: flex; gap: 12px; margin-top: 38px; }
.hero-actions .button, .contact-banner .button, .company-vision .button { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 24px; border: 1px solid rgba(255,255,255,.72); border-radius: 16px; font-weight: 800; letter-spacing: -.1px; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.hero-actions .button:hover, .contact-banner .button:hover, .company-vision .button:hover { transform: translateY(-3px); filter: brightness(1.04); }
.hero-actions .button:active, .contact-banner .button:active, .company-vision .button:active { transform: translateY(2px); }
.hero-actions .button-primary, .contact-banner .button-primary, .company-vision .button-primary { color: #fff; background: linear-gradient(145deg, #2367e8, #0e46b8); box-shadow: 0 14px 28px rgba(0,0,0,.3), 0 4px 0 rgba(4,31,83,.58), inset 0 1px 0 rgba(255,255,255,.2); }
.hero-actions .button-primary:hover, .contact-banner .button-primary:hover, .company-vision .button-primary:hover { box-shadow: 0 18px 34px rgba(0,0,0,.34), 0 5px 0 rgba(4,31,83,.62), inset 0 1px 0 rgba(255,255,255,.24); }
.hero-actions .button-secondary, .contact-banner .button-secondary, .company-vision .button-secondary { color: #fff; background: linear-gradient(145deg, rgba(74,84,103,.92), rgba(40,49,65,.96)); border-color: rgba(255,255,255,.82); box-shadow: 0 12px 24px rgba(0,0,0,.26), 0 4px 0 rgba(12,18,29,.58), inset 0 1px 0 rgba(255,255,255,.18); }
.hero-actions .button-secondary:hover, .contact-banner .button-secondary:hover, .company-vision .button-secondary:hover { box-shadow: 0 16px 30px rgba(0,0,0,.31), 0 5px 0 rgba(12,18,29,.62), inset 0 1px 0 rgba(255,255,255,.22); }

.hero-visual { position: relative; min-height: 500px; }
.hero-visual::before { content: ""; position: absolute; inset: 8% 10%; border-radius: 50%; border: 1px dashed rgba(21,87,214,.25); }
.visual-core { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 220px; height: 220px; display: grid; place-content: center; text-align: center; color: #fff; border-radius: 50%; background: linear-gradient(145deg, #1a69ea, #0d3c95); box-shadow: 0 30px 70px rgba(21,87,214,.33); }
.visual-core span { font-size: 24px; font-weight: 900; }
.visual-core strong { font-size: 16px; opacity: .82; }
.visual-card { position: absolute; min-width: 145px; padding: 18px 20px; background: rgba(255,255,255,.95); border: 1px solid rgba(220,228,237,.9); border-radius: 18px; box-shadow: var(--shadow); font-weight: 800; }
.card-a { left: 0; top: 15%; }
.card-b { right: 0; top: 20%; }
.card-c { left: 4%; bottom: 14%; }
.card-d { right: 2%; bottom: 12%; }

.campus-login-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 36px;
  margin: -38px var(--pc-content-gutter) 56px;
  padding: 30px 34px;
  position: relative;
  z-index: 3;
  background: #fff;
  border: 1px solid rgba(21,87,214,.18);
  border-radius: 22px;
  box-shadow: 0 20px 50px rgba(16,33,58,.12);
}
.campus-login-entry-copy span { display: block; margin-bottom: 8px; color: var(--blue); font-size: 12px; font-weight: 900; letter-spacing: 1.6px; }
.campus-login-entry-copy strong { display: block; font-size: 26px; letter-spacing: -1px; }
.campus-login-entry-copy p { margin: 8px 0 0; color: var(--muted); }
.campus-login-entry-actions { display: flex; align-items: center; gap: 10px; }
.campus-login-entry-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 22px; border-radius: 999px; font-weight: 900; }
.campus-login-primary { color: #fff; background: linear-gradient(135deg, var(--blue), var(--blue-dark)); box-shadow: 0 12px 28px rgba(21,87,214,.22); }
.campus-login-secondary { color: var(--blue); border: 1px solid rgba(21,87,214,.22); background: #f7fbff; }

.trust-strip { display: grid; grid-template-columns: repeat(6, 1fr); margin: 0 var(--pc-content-gutter); transform: translateY(-28px); background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 16px 40px rgba(16,33,58,.08); }
.trust-strip span { padding: 22px 14px; text-align: center; color: var(--muted); font-weight: 800; border-right: 1px solid var(--line); }
.trust-strip span:last-child { border-right: 0; }

.section { padding: 110px var(--pc-content-gutter); }
.section-heading { max-width: 820px; margin-bottom: 48px; }
.section-heading.compact { margin-bottom: 34px; }
.section h2, .contact-banner h2 { margin: 0; font-size: clamp(30px, 2.8vw, 40px); line-height: 1.22; letter-spacing: -1.5px; }
.section-heading > p:last-child, .network-copy > p { color: var(--muted); font-size: 18px; }
.solution-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.solution-card { min-height: 300px; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius-md); background: #fff; transition: .25s; }
.solution-card:hover { transform: translateY(-8px); box-shadow: var(--shadow); border-color: transparent; }
.section-solutions .solution-card-top { display: flex; align-items: flex-start; justify-content: space-between; min-height: 105px; margin-bottom: 28px; }
.section-solutions .solution-icon { display: inline-grid; place-items: center; width: 54px; height: 54px; color: #164f9f; background: #edf4fc; border: 1px solid #d8e4f1; border-radius: 16px; transition: .25s; }
.section-solutions .solution-icon svg { width: 27px; height: 27px; }
.section-solutions .solution-number { display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 10px; color: #1557d6; background: #eaf2ff; border-radius: 12px; font-weight: 900; }
.section-solutions .solution-card:hover .solution-icon { color: #0d3f9f; background: #e2edfa; border-color: #c5d7eb; transform: translateY(-2px); }
.solution-card h3 { margin: 0 0 14px; font-size: 21px; }
.solution-card p { margin: 0; color: var(--muted); }

.section-network { display: grid; grid-template-columns: .9fr 1.1fr; gap: 6vw; align-items: center; background: var(--surface); }
.text-link { display: inline-block; margin-top: 20px; color: var(--blue); font-weight: 800; }
.section-network .network-panel { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.section-network .network-stat {
  min-height: 184px;
  padding: 24px 28px 26px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: linear-gradient(145deg, #ffffff 0%, #fbfdff 100%);
  border: 1px solid var(--line);
  border-radius: 20px;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.section-network .network-stat-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: auto;
}
.section-network .network-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  color: #174f9f;
  background: #eef4fb;
  border: 1px solid #d8e4f1;
  border-radius: 14px;
}
.section-network .network-icon svg { width: 25px; height: 25px; }
.section-network .network-index {
  color: #a9b8c9;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 1px;
}
.section-network .network-stat strong { font-size: 21px; }
.section-network .network-stat > span:last-child { color: var(--muted); }
.section-network .network-stat:hover { transform: translateY(-4px); border-color: #b9cce2; }
.section-network .network-stat:hover .network-icon { color: var(--blue); background: #e7f0ff; border-color: #c8d9ef; }

.case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.section-cases .case-card {
  min-height: 330px;
  padding: 30px 26px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-radius: 24px;
  color: #fff;
  background-position: center;
  background-size: cover;
}
.section-cases .case-card:nth-child(1) {
  background-image:
    linear-gradient(180deg, rgba(8,24,47,.24) 0%, rgba(8,24,47,.94) 76%),
    url("../images/print-showcase/managed-print.jpg");
}
.section-cases .case-card:nth-child(2) {
  background-image:
    linear-gradient(180deg, rgba(11,65,163,.22) 0%, rgba(13,63,159,.96) 76%),
    url("../images/print-showcase/self-service-printer.jpg");
}
.section-cases .case-card:nth-child(3) {
  background-image:
    linear-gradient(180deg, rgba(3,79,94,.28) 0%, rgba(4,83,98,.96) 76%),
    url("../images/print-showcase/business-printer.jpg");
}
.case-card span { font-size: 13px; font-weight: 800; opacity: .75; }
.section-cases .case-card h3 { margin: 12px 0; font-size: 22px; line-height: 1.3; letter-spacing: -.6px; word-break: keep-all; overflow-wrap: normal; }
.case-card p { margin: 0; opacity: .82; }

.contact-banner { margin: 0 var(--pc-content-gutter) 100px; padding: 58px 64px; display: flex; align-items: center; justify-content: space-between; gap: 40px; color: #fff; border-radius: var(--radius-lg); background: linear-gradient(90deg, rgba(21,87,214,.94) 0%, rgba(21,87,214,.84) 48%, rgba(15,124,164,.72) 100%), url("../images/print-showcase/business-printer.jpg") center 46% / cover no-repeat; box-shadow: 0 22px 52px rgba(16,33,58,.18); }
.contact-banner .eyebrow { color: #aeeeff; }
.contact-banner p { margin-bottom: 0; opacity: .82; }
.button-light { color: var(--blue-dark); background: #fff; white-space: nowrap; }

.site-footer { padding: 52px var(--pc-content-gutter); display: grid; grid-template-columns: 1fr auto; gap: 18px 40px; color: #b7c3d1; background: #0d1a2a; }
.site-footer strong { color: #fff; font-size: 24px; }
.site-footer p { margin: 4px 0 0; }
.footer-links { display: flex; gap: 24px; align-items: center; font-size: 14px; }
.footer-note { grid-column: 1 / -1; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); font-size: 13px; }

/* 2026-08-01: floating-contact/floating-panel + adv-actions/adv-button은 헤더/푸터와 함께
   모든 페이지에서 항상 동일하게 보여야 하므로 advanced.css에서 이곳(main.css, 전 페이지 공통 로드)으로 이동함.
   advanced.css 쪽 동일 규칙은 제거했음 — 두 곳에 복사해서 관리하지 않는다(00_READ_FIRST.md 5-1). */
.adv-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.adv-button { min-height: 48px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 12px; color: #fff; background: #1557d6; font-weight: 900; text-decoration: none; cursor: pointer; }
.adv-button.light { color: #1557d6; background: #fff; }
.adv-button.outline { color: #1557d6; background: #fff; border: 1px solid #dce5ef; }
.floating-contact { position: fixed; right: 22px; bottom: 24px; z-index: 60; display: grid; gap: 8px; }
.floating-contact a, .floating-contact button { min-width: 132px; padding: 13px 16px; border: 1px solid rgba(255,255,255,.72); border-radius: 16px; color: #fff; background: linear-gradient(145deg, #2367e8, #0e46b8); box-shadow: 0 12px 24px rgba(0,0,0,.3), 0 4px 0 rgba(4,31,83,.58), inset 0 1px 0 rgba(255,255,255,.18); font-weight: 900; letter-spacing: -.1px; text-align: center; text-decoration: none; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.floating-contact a:hover, .floating-contact button:hover { transform: translateY(-3px); filter: brightness(1.04); box-shadow: 0 16px 30px rgba(0,0,0,.34), 0 5px 0 rgba(4,31,83,.62), inset 0 1px 0 rgba(255,255,255,.22); }
.floating-contact a:active, .floating-contact button:active { transform: translateY(2px); }
.floating-contact .dark { background: #0f1f36; }
.floating-panel { position: fixed; right: 22px; bottom: 130px; z-index: 59; width: 320px; padding: 22px; border: 1px solid #dce5ef; border-radius: 20px; background: #fff; box-shadow: 0 22px 60px rgba(15,31,54,.18); }
.floating-panel[hidden] { display: none; }

.header-actions { display: flex; justify-self: end; align-items: center; gap: 9px; }
.portal-account-nav,
.portal-guest-actions { align-items: center; gap: 16px; white-space: nowrap; }
.portal-account-nav { display: none; }
.portal-guest-actions { display: flex; }
.portal-account-nav a { font-size: 14px; font-weight: 800; color: var(--ink); }
.portal-account-nav a[aria-current="page"] { color: var(--blue); }
.portal-account-nav[hidden],
.portal-guest-actions[hidden] { display: none; }
.portal-page:has(#member-dashboard:not([hidden])) .portal-account-nav { display: flex; }
.portal-page:has(#member-dashboard:not([hidden])) .portal-guest-actions { display: none; }
.portal-page .site-header { grid-template-columns: 280px minmax(0, 1fr) auto; }
.portal-page .primary-nav { gap: 22px; }
.school-login,
.home-login-button { padding: 11px 16px; color: #fff; background: var(--blue); border-radius: 999px; font-size: 14px; font-weight: 800; border: 0; cursor: pointer; }
.header-mypage { padding: 11px 16px; color: var(--blue); border: 1px solid rgba(21,87,214,.28); border-radius: 999px; font-size: 14px; font-weight: 800; white-space: nowrap; }
.header-logout { padding: 11px 16px; color: #fff; background: #0f1f36; border: 0; border-radius: 999px; font: inherit; font-size: 14px; font-weight: 800; white-space: nowrap; cursor: pointer; }

.audience-gateway {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  width: min(calc(100% - 48px), 1120px);
  margin: 0 auto;
  padding: 10px 0 90px;
}
.gateway-card { min-height: 210px; padding: 28px; display: flex; flex-direction: column; justify-content: flex-end; border: 1px solid var(--line); border-radius: 22px; background: #fff; transition: .25s; }
.gateway-card:hover { transform: translateY(-6px); border-color: transparent; box-shadow: var(--shadow); }
.gateway-card span { margin-bottom: auto; color: var(--blue); font-size: 11px; font-weight: 900; letter-spacing: 1.4px; }
.gateway-card strong {
  font-size: 24px;
  word-break: keep-all;
  overflow-wrap: normal;
}
.gateway-card p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 14px;
  word-break: keep-all;
  overflow-wrap: normal;
}
.gateway-school { color: #fff; border-color: transparent; background: linear-gradient(145deg, #1557d6, #0d3f9f); }
.gateway-school span, .gateway-school p { color: rgba(255,255,255,.78); }

.school-member-section { display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; align-items: center; background: #0f1f36; color: #fff; }
.school-member-copy > p:not(.eyebrow) { color: #b8c6d7; font-size: 18px; }
.school-search { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin-top: 30px; padding: 8px; background: #fff; border-radius: 16px; }
.school-search input { min-width: 0; padding: 0 14px; border: 0; outline: 0; font: inherit; }
.school-search button { min-height: 48px; padding: 0 22px; color: #fff; border: 0; border-radius: 12px; background: var(--blue); font-weight: 900; cursor: pointer; }
.school-member-section .school-member-copy > p.school-note { margin-top: 12px; font-size: 12px; }
.school-features { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.school-features article { min-height: 145px; padding: 24px; display: flex; flex-direction: column; justify-content: flex-end; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; background: rgba(255,255,255,.06); }
.school-features strong { font-size: 20px; }
.school-features span { margin-top: 4px; color: #afbed0; font-size: 14px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.hero-slideshow { position: relative; isolation: isolate; color: #fff; background: #0d1a2a; }
.hero-background, .hero-overlay { position: absolute; inset: 0; }
.hero-background { z-index: -3; overflow: hidden; }
.hero-overlay { z-index: -2; background: linear-gradient(90deg, rgba(5,18,38,.91) 0%, rgba(5,18,38,.75) 44%, rgba(5,18,38,.28) 72%, rgba(5,18,38,.42) 100%); }
.hero-slide { position: absolute; inset: -3%; background-position: center; background-size: cover; opacity: 0; transform: scale(1.04); transition: opacity 1.4s ease, transform 7s ease; }
.hero-slide.is-active { opacity: 1; transform: scale(1.11); }
.hero-slideshow .hero-copy, .hero-slideshow .hero-visual { position: relative; z-index: 2; }
.hero-slideshow .eyebrow { color: #8de8ff; }
.hero-slideshow .hero-description { color: rgba(255,255,255,.96); text-shadow: 0 2px 18px rgba(0,0,0,.48); }
.hero-slideshow .button-secondary { color: #fff; border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.12); backdrop-filter: blur(12px); }
.hero-slideshow .visual-card { color: var(--ink); }
.hero-slideshow .hero-visual::before { border-color: rgba(255,255,255,.35); }

.hero h1 span { color: #79dcff; }
.hero-dashboard { position: relative; z-index: 2; min-width: 0; }
.dashboard-window { overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 24px; background: rgba(248,251,255,.97); box-shadow: 0 34px 80px rgba(0,0,0,.38); color: var(--ink); transform: perspective(1200px) rotateY(-3deg) rotateX(1deg); }
.dashboard-bar { min-height: 54px; display: grid; grid-template-columns: 12px 12px 12px 1fr auto; align-items: center; gap: 8px; padding: 0 20px; border-bottom: 1px solid var(--line); background: #eef3f8; }
.dashboard-bar > span { width: 10px; height: 10px; border-radius: 50%; background: #b7c4d3; }
.dashboard-bar strong { margin-left: 8px; font-size: 13px; }
.dashboard-bar em { padding: 5px 9px; color: var(--blue); border-radius: 999px; background: #e3edff; font-size: 11px; font-style: normal; font-weight: 900; }
.dashboard-body { padding: 24px; transition: opacity .45s ease; }
.dashboard-school { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.dashboard-school strong { font-size: 22px; }
.dashboard-user-name { color: var(--blue-dark); font-size: 15px; font-weight: 900; }
.dashboard-metrics span, .dashboard-metrics small { color: var(--muted); }
.dashboard-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 20px 0; }
.dashboard-metrics article { padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.dashboard-metrics article:first-child { background: linear-gradient(145deg, #edf4ff, #fff); }
.dashboard-metrics span, .dashboard-metrics small { display: block; font-size: 12px; }
.dashboard-metrics strong { display: block; margin: 5px 0 2px; color: var(--blue-dark); font-size: 28px; }
.dashboard-places { padding: 18px; border-radius: 16px; background: #f4f7fb; }
.dashboard-section-title { display: flex; align-items: center; justify-content: space-between; }
.dashboard-section-title a { color: var(--blue); font-size: 12px; font-weight: 800; }
.dashboard-places ul { margin: 12px 0 0; padding: 0; list-style: none; }
.dashboard-places li { display: flex; justify-content: space-between; gap: 20px; padding: 10px 0; border-top: 1px solid #dfe7f0; }
.dashboard-places li em { color: #16825d; font-size: 12px; font-style: normal; font-weight: 800; }
.dashboard-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.dashboard-actions a { padding: 12px; text-align: center; color: #fff; border-radius: 12px; background: var(--blue); font-size: 13px; font-weight: 800; }
.dashboard-actions a:last-child { color: var(--blue); border: 1px solid #cbd9ee; background: #fff; }
.dashboard-disclaimer { margin: 12px 0 0; color: rgba(255,255,255,.72); text-align: center; font-size: 12px; }

@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: opacity .2s linear; transform: none; }
  .hero-slide.is-active { transform: none; }
}

@media (max-width: 1200px) {
  .hero-slideshow .hero-title-line { white-space: normal; }
  .site-header { grid-template-columns: 180px 1fr 130px; padding: 0 3vw; }
  .primary-nav { gap: 20px; }
  .hero { grid-template-columns: 1fr 420px; padding-left: 5vw; padding-right: 5vw; }
  .solution-grid { grid-template-columns: repeat(2, 1fr); }
}

.company-intro{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:end;background:#f5f8fb}.company-intro-copy>p{margin:0;color:var(--muted);font-size:18px}.company-intro-copy .text-link{margin-top:16px}.partner-business{background:linear-gradient(145deg,#eff6ff,#fff)}.partner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 28px}.partner-grid article{min-height:170px;padding:24px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid var(--line);border-radius:20px;background:#fff}.partner-grid strong{font-size:19px}.partner-grid span{margin-top:7px;color:var(--muted);font-size:14px}.school-features a{min-height:145px;padding:24px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.06);transition:.2s}.school-features a:hover{transform:translateY(-4px);background:rgba(255,255,255,.1)}@media(max-width:1200px){.partner-grid{grid-template-columns:repeat(2,1fr)}}

.section-partners{background:#fff}
.partners-group{margin-top:32px}
.partners-group:first-of-type{margin-top:8px}
.partners-group h3{margin:0 0 16px;font-size:14px;font-weight:800;color:var(--muted);letter-spacing:.4px}
.partners-strip{display:flex;flex-wrap:wrap;gap:26px}
.partners-strip img{height:132px;max-width:390px;object-fit:contain;filter:none;border:1px solid var(--line);border-radius:18px;background:#fff;padding:22px 34px;transition:.2s}
.partners-strip img:hover{filter:none;border-color:transparent;box-shadow:var(--shadow)}

.print-banner{position:relative;margin:0 7vw;height:220px;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.print-banner-track{position:relative;width:100%;height:100%}
.print-banner-slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 54px;color:#fff;opacity:0;transition:opacity .6s ease,transform .6s ease;text-decoration:none;overflow:hidden}
.print-banner-slide.is-active{opacity:1}
.print-banner-slide:hover{transform:scale(1.015)}
.print-banner-icon{position:absolute;right:-30px;bottom:-30px;width:230px;height:230px;color:#fff;opacity:.16;pointer-events:none}
.print-banner-slide span{font-size:12px;font-weight:900;letter-spacing:1.8px;opacity:.85}
.print-banner-slide h3{margin:10px 0;font-size:30px;letter-spacing:-1px}
.print-banner-slide p{margin:0;max-width:540px;opacity:.92;font-size:15px}
.print-banner-dots{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:8px;z-index:2}
.print-banner-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer;transition:.2s}
.print-banner-dots button.is-active{background:#fff;width:22px;border-radius:6px}

/* 메인 전용 카드 깊이 보강: 다른 페이지에 전파하지 않음 */
.audience-gateway .gateway-card,
.section-solutions .solution-card,
.section-network .network-stat,
.partner-business .partner-grid article,
.school-member-section .school-features a,
.partners-section .partners-strip img {
  border-color: #c8d5e4;
  box-shadow: 0 12px 28px rgba(16,33,58,.13), 0 2px 7px rgba(16,33,58,.08);
}
.audience-gateway .gateway-card:hover,
.section-solutions .solution-card:hover,
.section-network .network-stat:hover,
.partner-business .partner-grid article:hover,
.school-member-section .school-features a:hover,
.partners-section .partners-strip img:hover {
  box-shadow: 0 20px 40px rgba(16,33,58,.18), 0 4px 10px rgba(16,33,58,.09);
}
.hero-dashboard .dashboard-window {
  box-shadow: 0 34px 78px rgba(0,0,0,.42), 0 7px 18px rgba(0,0,0,.18);
}
.section-cases .case-card {
  box-shadow: 0 17px 36px rgba(10,24,44,.27), inset 0 1px 0 rgba(255,255,255,.14);
}

.hero-slideshow > .hero-copy,
.hero-slideshow > .hero-dashboard { transform: translateY(-76px); }

/* PC 메인 카드 묶음 중앙 정렬 — 히어로·헤더에는 영향 없음 */
.solution-grid,
.case-grid,
.partner-grid {
  width: min(100%, 1120px);
  margin-left: auto;
  margin-right: auto;
}
.section-network {
  padding-left: max(7vw, calc((100vw - 1120px) / 2));
  padding-right: max(7vw, calc((100vw - 1120px) / 2));
}
@media (max-width: 1160px) {
  .solution-grid,
  .case-grid,
  .partner-grid { width: 100%; }
}

/* PC 메인 폭 재조정: 카드와 소개 콘텐츠를 1120px 안으로 중앙 집중 */
.company-intro {
  padding-left: max(7vw, calc((100vw - 1120px) / 2));
  padding-right: max(7vw, calc((100vw - 1120px) / 2));
}
.trust-strip {
  width: min(calc(100% - 14vw), 1120px);
  margin-left: auto;
  margin-right: auto;
}
.audience-gateway,
.solution-grid,
.case-grid,
.partner-grid {
  max-width: 1120px;
}

/* PC 마이페이지 3화면 공통 상단 이동 버튼 */
.mypage-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-left: auto;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.mypage-actions a,
.mypage-actions button {
  min-width: 126px;
  min-height: 54px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 12px;
  background: linear-gradient(180deg, #1d67eb 0%, #1557d6 100%);
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: -.02em;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 12px 24px rgba(16,33,58,.24), 0 4px 0 rgba(8,45,118,.48), inset 0 1px 0 rgba(255,255,255,.2);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.mypage-actions a:hover,
.mypage-actions button:hover {
  transform: translateY(-2px);
  filter: brightness(1.04);
  box-shadow: 0 16px 30px rgba(16,33,58,.28), 0 5px 0 rgba(8,45,118,.52), inset 0 1px 0 rgba(255,255,255,.24);
}
.mypage-actions a:active,
.mypage-actions button:active {
  transform: translateY(2px);
  box-shadow: 0 7px 14px rgba(16,33,58,.2), 0 1px 0 rgba(8,45,118,.42), inset 0 1px 0 rgba(255,255,255,.18);
}
.mypage-actions button {
  background: linear-gradient(180deg, #fff 0%, #f7f9fc 100%);
  color: #35425f;
  border-color: #c7d3e2;
  box-shadow: 0 12px 22px rgba(16,33,58,.16), 0 4px 0 rgba(145,158,178,.46), inset 0 1px 0 rgba(255,255,255,.9);
}
.mypage-actions button:hover {
  box-shadow: 0 15px 28px rgba(16,33,58,.2), 0 5px 0 rgba(145,158,178,.5), inset 0 1px 0 rgba(255,255,255,.95);
}
@media (max-width: 900px) {
  .mypage-actions {
    width: 100%;
    margin-top: 22px;
    margin-left: 0;
    justify-content: flex-start;
    flex-wrap: wrap;
    white-space: normal;
  }
}
