/* ===========================
   이레미디어 (Jireh Media) — Design System
=========================== */

:root{
  --navy-900:#0d1017;
  --navy-800:#151926;
  --navy-700:#1c2233;
  --navy-600:#2a3250;
  --blue-600:#1d4ed8;
  --blue-500:#2563eb;
  --blue-400:#3b82f6;
  --blue-300:#60a5fa;
  --blue-grad: var(--navy-900);
  --blue-grad-soft: #eef1f8;
  --white:#ffffff;
  --gray-50:#f7f8fa;
  --gray-100:#eef0f4;
  --gray-300:#c9ced9;
  --gray-500:#8890a3;
  --gray-700:#4a5064;
  --ink:#12141c;
  --radius:3px;
  --radius-sm:2px;
  --shadow-sm: none;
  --shadow-md: 0 4px 16px rgba(13,16,23,.08);
  --shadow-lg: 0 8px 30px rgba(13,16,23,.12);
  --maxw:1180px;
  --header-h:76px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; font-size:21px; }
[id]{ scroll-margin-top:calc(var(--header-h) + 20px); }
body{
  margin:0;
  font-family:"Pretendard","Noto Sans KR",-apple-system,BlinkMacSystemFont,"Malgun Gothic",sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.65;
  font-size:1rem;
  -webkit-font-smoothing:antialiased;
}
@media (max-width:620px){
  html{ font-size:17px; }
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,p{ margin:0; }
button{ font-family:inherit; cursor:pointer; }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }

/* ---------- Header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:var(--header-h);
  display:flex; align-items:center;
  background:rgba(13,16,23,.0);
  transition:background .3s ease, box-shadow .3s ease;
}
.site-header.is-scrolled,
.site-header.solid{
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);
  box-shadow:0 1px 0 var(--gray-100);
}
.site-header.is-scrolled .brand-text,
.site-header.solid .brand-text{ color:var(--ink); }
.site-header.is-scrolled .brand-text small,
.site-header.solid .brand-text small{ color:var(--blue-600); }
.site-header.is-scrolled .main-nav a,
.site-header.solid .main-nav a{ color:var(--ink); opacity:.75; }
.site-header.is-scrolled .main-nav a:hover,
.site-header.solid .main-nav a:hover{ opacity:1; color:var(--blue-600); }
.site-header.is-scrolled .header-cta,
.site-header.solid .header-cta{ color:var(--ink); border-color:var(--gray-300); }
.site-header.is-scrolled .header-cta:hover,
.site-header.solid .header-cta:hover{ background:var(--gray-50); border-color:var(--ink); }
.site-header.is-scrolled .nav-toggle span,
.site-header.solid .nav-toggle span{ background:var(--ink); }
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  width:100%;
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand img{ height:38px; width:auto; }
.brand .brand-text{ color:var(--white); font-weight:800; font-size:1.15rem; letter-spacing:-.02em; }
.brand .brand-text small{ display:block; font-size:.62rem; font-weight:500; letter-spacing:.12em; color:var(--blue-300); }

.main-nav{ display:flex; align-items:center; gap:48px; }
.main-nav ul{ display:flex; gap:52px; }
.main-nav ul > li{ position:relative; padding-bottom:18px; margin-bottom:-18px; }
.main-nav a{
  color:var(--white); font-size:.96rem; font-weight:500; opacity:.85; letter-spacing:.01em;
  position:relative; padding:6px 0;
}
.main-nav a:hover{ opacity:1; color:var(--white); }
.main-nav ul > li:hover > a{ opacity:1; color:var(--white); }
.site-header.is-scrolled .main-nav a,
.site-header.solid .main-nav a{ opacity:.75; }
.site-header.is-scrolled .main-nav a:hover,
.site-header.solid .main-nav a:hover,
.site-header.is-scrolled .main-nav ul > li:hover > a,
.site-header.solid .main-nav ul > li:hover > a{ opacity:1; color:var(--ink); }

.main-nav .dropdown{ display:none; }

.mega-menu{
  position:absolute; top:100%; left:0; right:0; background:var(--white);
  border-top:1px solid var(--gray-100); box-shadow:0 16px 32px rgba(13,16,23,.12);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  z-index:90;
}
.site-header.menu-open .mega-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.mega-menu-grid{ position:relative; min-height:200px; }
.mega-menu-spacer{ display:none; }
.mega-col{ position:absolute; top:28px; left:0; display:flex; flex-direction:column; gap:14px; white-space:nowrap; }
.mega-col a{ color:var(--ink); font-size:14px; font-weight:500; opacity:.85; }
.mega-col a:hover{ opacity:1; color:var(--blue-600); }
@media (max-width:980px){ .mega-menu{ display:none; } }
.header-cta{
  display:inline-flex; align-items:center; gap:8px;
  background:transparent; color:var(--white); border:1px solid rgba(255,255,255,.4);
  padding:10px 22px; border-radius:0; font-weight:600; font-size:.92rem; letter-spacing:.02em;
  transition:background .2s ease, border-color .2s ease;
}
.header-cta:hover{ background:rgba(255,255,255,.1); border-color:#fff; }

.nav-toggle{ display:none; background:none; border:0; padding:8px; }
.nav-toggle span{ display:block; width:24px; height:2px; background:var(--white); margin:5px 0; transition:.25s; }

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:flex-end;
  background:#14181f;
  overflow:hidden;
}
.hero-slides{ position:absolute; inset:0; }
.hero-slide{
  position:absolute; inset:0; background-size:cover; background-position:center 30%;
  opacity:0; transition:opacity 1.2s ease;
}
.hero-slide.active{ opacity:1; }
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg, rgba(6,7,11,.92) 0%, rgba(6,7,11,.5) 48%, rgba(10,12,18,.32) 100%);
}
.hero .container{ position:relative; z-index:2; padding-top:calc(var(--header-h) + 40px); padding-bottom:64px; }
.hero-text-stack{ position:relative; }
.hero-slide-text{ display:none; }
.hero-slide-text.active{ display:block; animation:heroTextIn .5s ease; }
@keyframes heroTextIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:translateY(0); } }
.hero-tagline{
  color:rgba(255,255,255,.75); font-weight:400; font-size:.9rem; letter-spacing:.08em;
  margin-bottom:18px; text-transform:uppercase;
}
.hero h1{
  color:var(--white); font-size:clamp(1.9rem, 4.6vw, 3.1rem); font-weight:800; letter-spacing:-.02em;
  line-height:1.32; max-width:760px;
}
.hero h1 .grad{ color:var(--white); font-weight:800; }
.hero p.lead{
  color:var(--gray-300); font-size:1.02rem; max-width:600px; margin-top:20px;
}
.hero-actions{ display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }
.hero-progress{ display:flex; align-items:center; gap:8px; margin-top:56px; }
.hero-progress .p-item{
  font-size:.72rem; font-weight:500; color:rgba(255,255,255,.4); letter-spacing:.02em;
  background:none; border:0; padding:4px 2px; cursor:pointer; transition:color .2s ease;
}
.hero-progress .p-item:hover{ color:rgba(255,255,255,.7); }
.hero-progress .p-item.active{ color:var(--white); font-weight:700; }
.hero-progress .p-line{ width:10px; height:1px; background:rgba(255,255,255,.3); }
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px; border-radius:0; font-weight:600; font-size:.88rem; letter-spacing:.01em;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
  border:1px solid transparent;
}
.btn-primary{ background:var(--blue-500); color:var(--white); }
.btn-primary:hover{ background:var(--blue-600); }
.btn-outline{ border-color:rgba(255,255,255,.35); color:var(--white); }
.btn-outline:hover{ background:rgba(255,255,255,.08); }
.btn-dark{ background:var(--navy-800); color:var(--white); }
.btn-dark:hover{ background:var(--navy-700); }

.hero-stats{
  position:relative; z-index:2;
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border-top:1px solid rgba(255,255,255,.12);
  margin-top:70px;
}
.hero-stats .stat{ padding:26px 0 0; border-left:1px solid rgba(255,255,255,.12); padding-left:24px; }
.hero-stats .stat:first-child{ border-left:0; padding-left:0; }
.hero-stats .num{ color:var(--white); font-size:1.9rem; font-weight:800; }
.hero-stats .num span{ color:var(--blue-300); }
.hero-stats .label{ color:var(--gray-500); font-size:.85rem; margin-top:4px; }

/* ---------- Section generic ---------- */
section{ padding:110px 0; }
.section-head{ max-width:640px; margin-bottom:56px; }
.section-tag{
  display:inline-block; color:var(--blue-500); font-weight:800; font-size:.8rem;
  letter-spacing:.14em; text-transform:uppercase; margin-bottom:14px;
}
.section-head h2{ font-size:clamp(1.7rem,3vw,2.4rem); font-weight:800; letter-spacing:-.02em; }
.section-head p{ color:var(--gray-700); margin-top:16px; font-size:1.02rem; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

.bg-light{ background:var(--gray-50); }
.bg-dark{ background:var(--navy-900); color:var(--white); }
.bg-dark .section-head p{ color:var(--gray-300); }

/* ---------- Story / About preview ---------- */
.story{
  display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:center;
}
.story-visual{
  position:relative; border-radius:0; overflow:hidden; aspect-ratio:4/5;
  background:var(--navy-900);
}
.story-visual img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.story-visual .icon-mark{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:5rem; color:rgba(255,255,255,.85);
}
.story-list{ display:grid; gap:22px; margin-top:30px; }
.story-list li{ display:flex; gap:16px; align-items:flex-start; }
.story-list .num{
  flex:none; width:38px; height:38px; border-radius:0; background:var(--navy-900); color:var(--white);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.9rem;
}
.story-list h4{ font-size:1.02rem; font-weight:700; }
.story-list p{ color:var(--gray-700); font-size:.92rem; margin-top:4px; }

/* ---------- Business cards ---------- */
.biz-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.biz-card{
  display:flex; flex-direction:column; align-items:flex-start;
  background:var(--white); border:1px solid var(--gray-100); border-top:2px solid var(--navy-900);
  padding:38px 30px 30px;
  transition:border-color .2s ease;
}
.biz-card:hover{ border-top-color:var(--blue-500); }
.biz-card .icon{
  width:auto; height:auto; border-radius:0; background:none;
  display:block; font-size:.8rem; font-weight:800; letter-spacing:.1em; color:var(--blue-500); margin-bottom:18px;
}
.biz-card h3{ font-size:1.15rem; font-weight:800; margin-bottom:12px; }
.biz-card p{ color:var(--gray-700); font-size:.92rem; line-height:1.7; }
.biz-card .tag{
  display:inline-block; margin-top:auto; padding-top:18px; font-size:.78rem; font-weight:700; color:var(--blue-600);
}

/* ---------- Portfolio ---------- */
.portfolio-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.portfolio-item{
  position:relative; border-radius:0; overflow:hidden; aspect-ratio:4/3;
  background:var(--navy-800);
}
.portfolio-item .thumb{
  position:absolute; inset:0; background:var(--navy-700);
  display:flex; align-items:center; justify-content:center; color:var(--gray-500); font-size:.72rem;
  font-weight:700; letter-spacing:.1em;
}
.portfolio-item .thumb-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .4s ease;
}
.portfolio-item:hover .thumb-img{ transform:scale(1.04); }
.portfolio-item .overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
  padding:20px; background:linear-gradient(0deg, rgba(9,11,17,.92) 0%, rgba(9,11,17,.1) 65%, transparent 100%);
}
.portfolio-item .overlay .cat{ color:var(--blue-300); font-size:.72rem; font-weight:700; letter-spacing:.08em; }
.portfolio-item .overlay h4{ color:var(--white); font-size:.98rem; margin-top:6px; font-weight:600; }
.portfolio-item .badge{
  position:absolute; top:14px; left:14px; background:rgba(0,0,0,.5); color:var(--gray-300);
  font-size:.68rem; font-weight:700; padding:4px 10px; border-radius:0; letter-spacing:.05em;
}

.youtube-thumb{ background:#12151f; }
.yt-icon{ width:64px; height:auto; }

.filter-bar{ display:flex; gap:0; margin-bottom:40px; flex-wrap:wrap; border-bottom:1px solid var(--gray-100); }
.filter-bar button{
  padding:12px 22px; border-radius:0; border:0; border-bottom:2px solid transparent; background:transparent;
  font-weight:600; font-size:.85rem; color:var(--gray-500); transition:.2s; margin-bottom:-1px;
}
.filter-bar button.active,
.filter-bar button:hover{ color:var(--navy-900); border-bottom-color:var(--navy-900); }

/* ---------- Notices ---------- */
.notice-list{ border-top:1px solid var(--gray-100); }
.notice-item{
  display:flex; align-items:center; gap:24px; padding:22px 4px; border-bottom:1px solid var(--gray-100);
  transition:background .2s;
}
.notice-item:hover{ background:var(--gray-50); }
.notice-item .n-tag{
  flex:none; width:80px; text-align:center; font-size:.72rem; font-weight:800; color:var(--blue-600);
  background:transparent; border:1px solid var(--gray-300); padding:6px 0; border-radius:0;
}
.notice-item .n-title{ flex:1; font-weight:600; font-size:.96rem; }
.notice-item .n-date{ color:var(--gray-500); font-size:.85rem; }

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--navy-900); border-radius:0; padding:56px;
  display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
  color:var(--white);
}
.cta-band h2{ font-size:1.9rem; font-weight:800; max-width:520px; letter-spacing:-.02em; }
.cta-band p{ color:rgba(255,255,255,.85); margin-top:10px; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--navy-900); color:var(--gray-300); padding:56px 0 24px; font-size:.72rem; }
.footer-top{
  display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:40px; padding-bottom:36px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-brand .brand-text{ color:var(--white); font-size:1.3em; }
.footer-brand img{ height:28px; }
.footer-brand p{ margin-top:14px; font-size:1em; color:var(--gray-500); line-height:1.8; }
.footer-col h5{ color:var(--white); font-size:1.15em; font-weight:700; margin-bottom:14px; }
.footer-col ul{ display:grid; gap:8px; }
.footer-col a{ font-size:1em; color:var(--gray-500); }
.footer-col a:hover{ color:var(--blue-300); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:20px; flex-wrap:wrap; gap:12px;
}
.footer-bottom small{ color:var(--gray-500); font-size:1em; }
.footer-social{ display:flex; gap:10px; }
.footer-social a{
  width:28px; height:28px; border-radius:0; border:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center; font-size:1em;
}
.footer-social a:hover{ border-color:var(--blue-400); color:var(--blue-300); }

/* ---------- Page hero (sub pages) ---------- */
.page-hero{
  background:var(--navy-900); padding:calc(var(--header-h) + 70px) 0 70px; color:var(--white);
  position:relative; overflow:hidden;
}
.page-hero::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 85% 0%, rgba(59,130,246,.3), transparent 50%);
}
.page-hero .container{ position:relative; z-index:2; }
.breadcrumb{ font-size:.85rem; color:var(--gray-500); margin-bottom:18px; }
.breadcrumb a{ color:var(--gray-300); }
.breadcrumb .sep{ margin:0 8px; }
.page-hero h1{ font-size:clamp(1.8rem,4vw,2.6rem); font-weight:800; letter-spacing:-.02em; }
.page-hero p{ color:var(--gray-300); margin-top:14px; max-width:560px; }

/* ---------- About page ---------- */
.greeting{ display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; align-items:center; }
.greeting-visual{
  position:relative; aspect-ratio:1/1; border-radius:0; background:var(--navy-900); overflow:hidden;
  display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.9);
  font-size:1.6rem; font-weight:800; letter-spacing:.08em; text-align:center; line-height:1.5;
}
.greeting-visual img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.greeting-copy .sign{ margin-top:34px; font-weight:800; font-size:1.05rem; }
.greeting-copy .sign small{ display:block; font-weight:500; color:var(--gray-500); font-size:.85rem; margin-top:4px; }

.info-table{ width:100%; border-collapse:collapse; margin-top:20px; }
.info-table tr{ border-bottom:1px solid var(--gray-100); }
.info-table th,.info-table td{ text-align:left; padding:16px 10px; font-size:.94rem; }
.info-table th{ width:160px; color:var(--gray-500); font-weight:600; }
.info-table td{ font-weight:600; }

.map-box{
  margin-top:36px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--gray-100);
}
.map-box iframe{ width:100%; height:360px; border:0; display:block; }
.map-fallback{
  height:360px; background:var(--gray-100); display:flex; align-items:center; justify-content:center;
  color:var(--gray-500); font-size:.92rem; flex-direction:column; gap:10px;
}

/* ---------- Business detail ---------- */
.biz-detail{ display:grid; gap:80px; }
.biz-row{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.biz-row.reverse .biz-visual{ order:2; }
.biz-visual{
  position:relative; aspect-ratio:5/4; border-radius:0; background:var(--navy-900); overflow:hidden;
  display:flex; align-items:center; justify-content:center; font-size:4.2rem; color:rgba(255,255,255,.18);
  font-family:Georgia,serif; font-weight:700;
}
.biz-visual img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.biz-copy .idx{ color:var(--blue-500); font-weight:800; font-size:.85rem; letter-spacing:.1em; }
.biz-copy h3{ font-size:1.7rem; font-weight:800; margin-top:10px; letter-spacing:-.02em; }
.biz-copy p{ color:var(--gray-700); margin-top:16px; }
.check-list{ margin-top:22px; display:grid; gap:10px; }
.check-list li{ display:flex; gap:10px; font-size:.92rem; color:var(--gray-700); }
.check-list li::before{ content:"✓"; color:var(--blue-500); font-weight:800; }

/* ---------- Legal / Compliance section ---------- */
.legal-band{
  position:relative; overflow:hidden; padding:80px 60px; color:var(--white);
}
.legal-band-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
}
.legal-band-overlay{
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(8,10,15,.94) 0%, rgba(8,10,15,.86) 45%, rgba(8,10,15,.55) 100%);
}
.legal-copy{ position:relative; z-index:2; max-width:640px; }
.legal-copy .section-tag{ color:var(--blue-300); }
.legal-copy h2{ font-size:1.9rem; font-weight:800; margin-top:16px; letter-spacing:-.02em; line-height:1.45; max-width:520px; }
.legal-copy p.lead-sm{ color:var(--gray-300); margin-top:18px; font-size:1rem; line-height:1.85; }
.legal-copy p.lead-sm strong{ color:#fff; }
.legal-copy .check-list{ margin-top:28px; }
.legal-copy .check-list li{ color:var(--gray-300); font-size:.96rem; }
.legal-copy .check-list li::before{ color:var(--blue-300); }
.legal-copy .text-link{
  display:inline-block; margin-top:30px;
  font-weight:700; font-size:.92rem; color:#fff;
  border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:3px;
}
.legal-copy .text-link:hover{ border-color:#fff; color:var(--blue-300); }

@media (max-width:980px){
  .legal-band{ padding:56px 30px; }
}

.diff-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--gray-100); border:1px solid var(--gray-100); }
.diff-card{
  background:var(--white); border:0; border-radius:0; padding:34px 30px;
}
.diff-card .num-badge{
  width:auto; height:auto; border-radius:0; background:none; color:var(--navy-900);
  display:block; font-weight:800; margin-bottom:14px; font-size:1.3rem; font-family:Georgia,serif;
}
.diff-card h4{ font-size:1.05rem; font-weight:800; margin-bottom:10px; }
.diff-card ul{ display:grid; gap:8px; margin:14px 0; }
.diff-card ul li{ font-size:.88rem; color:var(--gray-700); padding-left:14px; position:relative; }
.diff-card ul li::before{ content:"–"; position:absolute; left:0; color:var(--blue-500); }
.diff-card .result{ font-size:.86rem; font-weight:700; color:var(--blue-600); margin-top:12px; }

.risk-panel{
  display:grid; grid-template-columns:1fr 1fr; gap:24px;
}
.risk-box{ border-radius:0; padding:30px; }
.risk-box.danger{ background:#fef2f2; border:1px solid #fecaca; }
.risk-box.safe{ background:var(--blue-grad-soft); border:1px solid #bfdbfe; }
.risk-box h4{ font-size:1.02rem; font-weight:800; margin-bottom:16px; }
.risk-box.danger h4{ color:#b91c1c; }
.risk-box.safe h4{ color:var(--blue-600); }
.risk-box ul{ display:grid; gap:10px; }
.risk-box li{ font-size:.9rem; color:var(--gray-700); padding-left:22px; position:relative; }
.risk-box.danger li::before{ content:"✕"; position:absolute; left:0; color:#dc2626; font-weight:800; }
.risk-box.safe li::before{ content:"✓"; position:absolute; left:0; color:var(--blue-600); font-weight:800; }

@media (max-width: 980px){
  .obligation-grid{ grid-template-columns:repeat(2,1fr); }
  .diff-grid{ grid-template-columns:1fr; }
  .risk-panel{ grid-template-columns:1fr; }
}

/* ---------- Contact / Form ---------- */
.contact-wrap{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; }
.contact-info{ display:grid; gap:20px; align-content:start; }
.info-card{
  background:var(--gray-50); border-radius:var(--radius); padding:26px; display:flex; gap:16px; align-items:flex-start;
}
.info-card .icon{
  flex:none; width:52px; height:32px; border-radius:0; background:var(--navy-900);
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:.68rem; font-weight:700; letter-spacing:.05em;
}
.info-card h4{ font-size:.95rem; font-weight:700; }
.info-card p{ font-size:.9rem; color:var(--gray-700); margin-top:4px; }
.info-card a{ color:var(--blue-600); font-weight:700; }

.form-card{ background:var(--white); border:1px solid var(--gray-100); border-radius:var(--radius); padding:40px; box-shadow:var(--shadow-sm); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ margin-bottom:20px; }
.field label{ display:block; font-size:.86rem; font-weight:700; margin-bottom:8px; }
.field input,.field select,.field textarea{
  width:100%; padding:13px 16px; border:1px solid var(--gray-300); border-radius:var(--radius-sm);
  font-size:.94rem; font-family:inherit; background:var(--white);
}
.field input:focus,.field select:focus,.field textarea:focus{ outline:2px solid var(--blue-400); border-color:transparent; }
.field textarea{ resize:vertical; min-height:130px; }
.form-note{ font-size:.8rem; color:var(--gray-500); margin-top:6px; }
.submit-btn{ width:100%; justify-content:center; border:0; }

/* ---------- Notice page ---------- */
.notice-full .notice-item{ padding:26px 4px; }

/* ---------- Utility ---------- */
.mt-lg{ margin-top:60px; }
.badge-soft{ display:inline-block; padding:6px 14px; border-radius:0; border:1px solid var(--blue-500); background:transparent; color:var(--blue-600); font-weight:700; font-size:.78rem; }

/* ---------- Responsive ---------- */
@media (max-width: 980px){
  .main-nav ul, .header-cta{ display:none; }
  .nav-toggle{ display:block; }
  .story, .greeting, .biz-row, .biz-row.reverse .biz-visual, .contact-wrap{ grid-template-columns:1fr !important; }
  .biz-row.reverse .biz-visual{ order:0; }
  .biz-grid, .portfolio-grid{ grid-template-columns:repeat(2,1fr); }
  .hero-stats{ grid-template-columns:repeat(2,1fr); row-gap:24px; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .cta-band{ padding:44px 30px; }
  .form-row{ grid-template-columns:1fr; }
}
@media (max-width: 620px){
  section{ padding:70px 0; }
  .biz-grid, .portfolio-grid{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr; }
  .cta-band{ flex-direction:column; align-items:flex-start; }
  .hero{ min-height:auto; padding-bottom:60px; }
}

/* Mobile nav drawer */
.mobile-nav{
  position:fixed; inset:0; background:var(--navy-900); z-index:1500;
  display:flex; flex-direction:column; padding:26px 24px;
  transform:translateX(100%); transition:transform .3s ease;
}
.mobile-nav.open{ transform:translateX(0); }
.mobile-nav .close-btn{ align-self:flex-end; background:none; border:0; color:#fff; font-size:1.6rem; }
.mobile-nav ul{ display:grid; gap:6px; margin-top:30px; }
.mobile-nav a{ display:block; padding:16px 4px; color:#fff; font-size:1.15rem; font-weight:700; border-bottom:1px solid rgba(255,255,255,.08); }
.mobile-nav .header-cta{ display:inline-flex; margin-top:30px; }
