:root{
  --m2-text:#0f172a;
  --m2-text-soft:#334155;
  --m2-text-muted:#64748b;
  --m2-line:#dbe5f0;
  --m2-line-strong:#c9d8ea;
  --m2-bg:#ffffff;
  --m2-bg-soft:#f8fbff;
  --m2-bg-tint:#eef6ff;
  --m2-primary:#005bff;
  --m2-primary-strong:#1d4ed8;
  --m2-shadow:0 18px 40px rgba(15,23,42,.08);
  --m2-radius-lg:22px;
  --m2-radius-md:16px;
}
html{scroll-behavior:smooth}
body{
  color:var(--m2-text);
  background:var(--m2-bg);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
body,button,input,select,textarea{font-family:"Pretendard","Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif}
body, p, li, dd, dt, td, th, label, input, textarea, select{
  line-height:1.68;
  letter-spacing:-.01em;
}
p,li,dd,dt{color:var(--m2-text-soft)}
a{color:inherit}
a:hover{color:var(--m2-primary-strong)}
img{max-width:100%;height:auto}
main{min-height:40vh}
section{scroll-margin-top:96px}
@media (max-width:768px){section{scroll-margin-top:76px}}

h1,h2,h3,h4,h5,h6,.section-title,.banner-title{
  color:var(--m2-text) !important;
  letter-spacing:-.03em;
  line-height:1.32 !important;
  word-break:keep-all;
}
h1{font-size:clamp(2rem,4vw,2.8rem)}
h2{font-size:clamp(1.6rem,3vw,2.15rem)}
h3{font-size:clamp(1.25rem,2vw,1.5rem)}
.banner-desc,.hero-desc,.section-sub,.sub-copy,.muted,.desc{
  color:var(--m2-text-soft) !important;
}
small,.caption,.meta,.helper-text,.notice,.call-label,.form-progress-text{
  color:var(--m2-text-muted) !important;
}

.card,.box,.m2box,.m2-card,.review-card,.review-box,.review-box-enhanced,
.banner-panel,.contact-modal,.gallery-item,.portfolio-item,.summary-item,
[class*="card"],[class*="panel"],[class*="box"]{
  border-color:var(--m2-line);
}
.m2box,.m2-card,.review-card,.review-box,.review-box-enhanced,
.gallery-item,.portfolio-item,.summary-item,.contact-modal,
[class*="card"],[class*="panel"]{
  box-shadow:var(--m2-shadow);
}

input,textarea,select{
  min-height:44px;
  border-radius:12px;
  border:1px solid var(--m2-line-strong);
  background:#fff;
  color:var(--m2-text);
}
textarea{min-height:120px}
input::placeholder,textarea::placeholder{color:#94a3b8}
button,.btn,.btn-primary,.btn-secondary,.banner-btn,.panel-btn,
a[class*="btn"],button[class*="btn"]{
  min-height:44px;
  border-radius:14px;
  font-weight:700;
  letter-spacing:-.01em;
}
.btn-primary,.banner-btn,.panel-btn.custom,.contact-modal-btn.primary{
  background:linear-gradient(135deg,var(--m2-primary),#2563eb) !important;
  color:#fff !important;
}
.panel-btn.kakao,.contact-modal-btn.kakao,.kakao{
  color:#111827 !important;
}

:focus-visible{
  outline:3px solid rgba(37,99,235,.35);
  outline-offset:2px;
}

.header,.site-header,header{
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.header,.site-header{
  border-bottom:1px solid rgba(219,229,240,.8) !important;
}
.nav a, header nav a{
  color:var(--m2-text) !important;
}
.nav a:hover, header nav a:hover{
  color:var(--m2-primary-strong) !important;
}

footer,.footer-area,.site-footer{
  color:#e5eefc;
}
footer p,footer li,footer a,.footer-area p,.footer-area li,.footer-area a{
  color:inherit;
}

.table,table{border-collapse:collapse}
table th,table td{padding:12px 14px;border-color:var(--m2-line)}

@media (max-width:768px){
  body{font-size:15px}
  p,li,dd,dt,label,input,textarea,select{font-size:15px}
  .banner-title{font-size:clamp(1.65rem,7vw,2.05rem) !important}
  .banner-desc{font-size:14px !important}
  .nav a{font-size:14px !important}
  .call-number{font-size:clamp(1.125rem,5vw,1.35rem) !important}
  .banner-inner,.golf-premium .banner-inner{gap:16px !important}
}

/* Safer admin readability */
.admin-page body,.admin-dashboard body,.admin-wrap body,[class*="admin"]{
  color:#0f172a;
}

/* Floating CTA contrast */
.floating-box,.quick-center,.quick-contact,.mobile-floating{
  box-shadow:0 14px 34px rgba(15,23,42,.18) !important;
}

/* Utility content wrappers */
.m2-rich__hero,.m2-rich__card,.m2-card,.m2box{
  border-radius:var(--m2-radius-lg);
}
.m2-rich__links a,.m2chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 16px;
  border-radius:999px;
  background:var(--m2-bg-tint);
  border:1px solid #cfe0f7;
  color:#0f3b82;
  font-weight:700;
}
