/* Pretendard local font: one family name everywhere */
@font-face{font-family:"Pretendard";font-style:normal;font-weight:45 920;font-display:swap;src:url("fonts/PretendardVariable.woff2") format("woff2")}
html,body,body *,input,button,select,textarea{font-family:"Pretendard","Malgun Gothic",sans-serif!important;font-synthesis:none}
body{font-size:16px;line-height:1.65;letter-spacing:-.022em}

/* Calm, consistent type scale */
.kicker{font-size:12px;line-height:1.4;letter-spacing:.12em}
.section-heading h2,.split-heading h2,.contact h2,.diagnosis-copy h2{font-size:clamp(36px,3.4vw,52px);line-height:1.28;font-weight:600;letter-spacing:-.045em}
.hero h1{font-size:clamp(52px,5.2vw,78px);line-height:1.1;font-weight:500;letter-spacing:-.052em}
.lead{font-size:18px;line-height:1.75}
.section-heading>p:last-child,.split-heading>p,.diagnosis-copy>p:not(.kicker),.contact-copy>p:not(.kicker){font-size:16px}
.intro-copy .large-copy{font-size:23px;line-height:1.7;font-weight:400}
.intro-copy p:not(.large-copy){font-size:16px}
.why-answer p{font-size:22px}
.philosophy-copy h2{font-size:clamp(36px,3.4vw,52px);font-weight:600;letter-spacing:-.045em}
.final-message h2{font-size:clamp(34px,3.6vw,54px);font-weight:600;letter-spacing:-.045em}

/* Raise unreadably small labels */
.hero-strip b,.service-card .num,.service-card>a,.diagnosis-example small,.compare-side>p,.compare-side li span,.landing-card>span,.case-content>small,.process-list span,.future-grid span,.footer-bottom,.ai-note{font-size:11px}
.hero-strip span,.service-card>p,.service-card li,.landing-card>p,.landing-card li,.case-steps p,.future-grid p,.company p{font-size:14px}
.audience-row b{font-size:16px}.audience-row span{font-size:12px;line-height:1.5}
.service-card h3{font-size:25px}.landing-card h3{font-size:22px}.case-content h3{font-size:30px}.review-grid blockquote>p{font-size:15px}

/* Remove decorative placeholders and simplify cards */
.mini-layout{display:none!important}
.landing-grid{gap:18px}
.landing-card{min-height:430px;padding:34px 28px;display:flex;flex-direction:column}
.landing-card>p{min-height:48px;line-height:1.7}
.landing-card ul{margin-bottom:24px}
.card-point{margin-top:auto;padding-top:20px;border-top:1px solid #ddd8d1}
.landing-card.active .card-point,.landing-card:hover .card-point{border-color:#363a41}
.card-point small{display:block;font-size:11px;color:#888;margin-bottom:7px}
.card-point b{font-size:14px;font-weight:650}

/* Reduce visual noise and oversized empty spaces */
.section{padding:125px 0}
.service-card{min-height:500px}
.service-icon{width:auto;height:34px;margin:0 auto 28px 0;padding:0 13px;border-radius:4px;font-size:12px;letter-spacing:.08em}
.philosophy-visual:before,.philosophy-visual:after{display:none}
.philosophy-visual{min-height:420px;background:linear-gradient(145deg,#171a20,#0d0f13);align-items:flex-start;padding:42px}
.philosophy-visual>span{font-size:11px}
.circle-copy{position:static;margin:auto 0;font-size:34px;line-height:1.45;font-weight:600}
.case{padding:48px 0}.case-content{padding:15px 0}
.final-message{padding:125px 0}

@media(max-width:760px){
  body{font-size:15px}
  .section{padding:88px 0}
  .section-heading h2,.split-heading h2,.contact h2,.diagnosis-copy h2,.philosophy-copy h2{font-size:34px}
  .hero h1{font-size:46px}
  .lead{font-size:16px}
  .intro-copy .large-copy{font-size:20px}
  .landing-card{min-height:auto;padding:28px 24px}
  .case-content h3{font-size:26px}
  .final-message{padding:95px 0}
}

/* Major section titles: keep a consistent, strong visual hierarchy. */
.hero h1,
.section-heading h2,
.split-heading h2,
.contact h2,
.diagnosis-copy h2,
.philosophy-copy h2,
.final-message h2{
  font-weight:750;
}

/* Hero balance: smaller headline and mission copy grouped with the main message. */
.hero-content{
  flex-direction:column;
  justify-content:flex-start;
}
.hero h1{
  font-size:clamp(48px,4.5vw,68px);
}
.hero-note{
  width:max-content;
  margin-top:44px;
  padding:2px 0 2px 18px;
}

@media(max-width:760px){
  .hero h1{font-size:42px}
}

/* Refine oversized/empty sections into tighter, intentional compositions. */
.compare{
  width:min(100%,1100px);
  margin:58px auto 0;
  grid-template-columns:1fr 68px 1fr;
  background:#11151b;
}
.compare-side{padding:40px 42px}
.compare-side h3{margin:10px 0 26px;font-size:28px}
.compare-side li{padding:13px 0}
.versus{
  align-self:stretch;
  margin:-1px 0;
  font-weight:800;
  color:#fff;
  background:#0b0e12;
}

.philosophy-visual{
  min-height:380px;
  background:
    radial-gradient(circle at 72% 50%,rgba(237,39,45,.18),transparent 28%),
    linear-gradient(145deg,#171a20,#0d0f13);
}
.philosophy-visual:before,
.philosophy-visual:after{display:block}
.philosophy-visual:before{border-color:#323741}
.philosophy-visual:after{border-color:rgba(237,39,45,.75)}
.circle-copy{
  position:relative;
  z-index:2;
  margin:auto 0;
  font-size:36px;
  line-height:1.4;
  font-weight:750;
}

.reviews .section-heading{
  display:block;
  max-width:620px;
}
.reviews .section-heading h2{margin-bottom:0}
.review-grid{margin-top:48px}

.future{padding-top:110px;padding-bottom:110px}
.future-grid{margin-top:52px}
.future-grid article{
  min-height:190px;
  padding:34px 32px;
  border-bottom:1px solid #363a42;
}
.future-grid h3{margin:20px 0 12px}

@media(max-width:760px){
  .compare{grid-template-columns:1fr}
  .compare-side{padding:32px 24px}
  .versus{margin:0;padding:13px}
  .philosophy-visual{min-height:320px}
  .circle-copy{font-size:29px}
  .future{padding-top:88px;padding-bottom:88px}
  .future-grid article{min-height:auto;padding:30px 25px}
}

.review-heading-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
}
.review-slider{
  overflow:hidden;
  margin-top:48px;
}
.review-track{
  display:flex;
  gap:15px;
  transition:transform .55s cubic-bezier(.22,.75,.25,1);
  will-change:transform;
}
.review-track blockquote{
  flex:0 0 calc((100% - 30px)/3);
  min-width:0;
  min-height:265px;
  box-sizing:border-box;
  margin:0;
  border:1px solid #343840;
  border-radius:8px;
  padding:34px;
  background:#15191f;
  display:flex;
  flex-direction:column;
}
.review-track blockquote>div{color:var(--red);letter-spacing:.16em;font-size:12px}
.review-track blockquote>p{font-size:16px;line-height:1.8;margin-bottom:30px}
.review-track footer{margin-top:auto;font-size:11px;line-height:1.7;color:#747a83;border-top:1px solid #30343b;padding-top:20px}
.review-track footer b{color:#a7abb2}
.review-nav{display:flex;align-items:center;gap:14px;padding-bottom:5px}
.review-nav button{
  width:42px;
  height:42px;
  border:1px solid #3b4048;
  border-radius:50%;
  background:#15191f;
  color:#fff;
  cursor:pointer;
}
.review-nav button:hover{border-color:var(--red);color:var(--red)}
.review-dots{display:flex;gap:7px}
.review-dots button{
  width:7px;
  height:7px;
  padding:0;
  border:0;
  background:#484d56;
}
.review-dots button.active{background:var(--red)}

@media(max-width:760px){
  .review-heading-row{display:block}
  .review-nav{margin-top:25px}
  .review-slider{margin-top:30px}
  .review-track blockquote{flex-basis:100%;min-height:280px;padding:28px 24px}
}

.philosophy-visual{
  isolation:isolate;
  min-height:430px;
  padding:40px;
  background:#11151a;
}
.philosophy-visual:before,
.philosophy-visual:after{display:none}
.philosophy-scenes,
.philosophy-scenes i{position:absolute;inset:0}
.philosophy-scenes{z-index:-2;overflow:hidden}
.philosophy-scenes:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(6,8,11,.9),rgba(6,8,11,.28)),linear-gradient(0deg,rgba(6,8,11,.78),transparent 60%);
}
.philosophy-scenes i{
  opacity:0;
  background-size:cover;
  background-position:center;
  animation:philosophyScene 15s infinite;
  transform:scale(1.04);
}
.philosophy-scenes i:nth-child(1){background-image:url("img/brand/case-apartment.png")}
.philosophy-scenes i:nth-child(2){background-image:url("img/brand/case-officetel.png");animation-delay:5s}
.philosophy-scenes i:nth-child(3){background-image:url("img/brand/case-retail.png");animation-delay:10s}
.philosophy-visual>span{position:relative;z-index:2;color:rgba(255,255,255,.6)}
.circle-copy{
  position:relative;
  z-index:2;
  margin:auto 0 10px;
  color:#fff;
  font-size:34px;
  line-height:1.35;
}
.circle-copy small{
  display:block;
  margin-bottom:12px;
  color:var(--red);
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
}
.scene-progress{position:absolute;z-index:3;left:40px;right:40px;bottom:30px;height:2px;background:rgba(255,255,255,.25);overflow:hidden}
.scene-progress b{display:block;height:100%;background:var(--red);animation:sceneProgress 5s linear infinite}
.philosophy-cta{
  display:inline-flex;
  align-items:center;
  gap:34px;
  margin-top:18px;
  padding:14px 18px;
  border:1px solid #c9c5be;
  border-radius:4px;
  font-size:13px;
  font-weight:750;
  transition:.25s;
}
.philosophy-cta:hover{border-color:var(--red);color:var(--red);transform:translateY(-2px)}
@keyframes philosophyScene{
  0%{opacity:0;transform:scale(1.04)}
  8%,30%{opacity:1}
  38%,100%{opacity:0;transform:scale(1.12)}
}
@keyframes sceneProgress{from{width:0}to{width:100%}}

@media(max-width:760px){
  .philosophy-visual{min-height:350px;padding:28px}
  .circle-copy{font-size:27px}
  .scene-progress{left:28px;right:28px;bottom:22px}
}

.contact-form .agree{display:flex;align-items:center;justify-content:flex-start;gap:9px;padding:2px 0;font-size:12px;line-height:1.5;cursor:pointer}
.contact-form .agree input{flex:0 0 16px;width:16px;height:16px;margin:0;accent-color:var(--red)}
.contact-form .agree>span{display:inline;margin:0;color:#9da2aa;font-size:12px}
.privacy-link,.footer-privacy{padding:0;border:0;border-bottom:1px solid currentColor;background:none;color:inherit;font:inherit;cursor:pointer}
.privacy-link{color:#fff}.footer-privacy{color:#666c75}
.privacy-link:hover,.footer-privacy:hover{color:var(--red)}
.privacy-modal{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.82);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.25s}
.privacy-modal.open{opacity:1;visibility:visible}
.privacy-panel{position:relative;width:min(680px,100%);max-height:88vh;overflow:auto;box-sizing:border-box;padding:42px;border:1px solid #343942;border-radius:14px;background:#11151b;color:#fff;box-shadow:0 30px 100px rgba(0,0,0,.55)}
.privacy-panel h2{margin:12px 0 28px;font-size:32px}.privacy-close{position:absolute;right:18px;top:12px;border:0;background:none;color:#888;font-size:34px;cursor:pointer}
.privacy-content{display:grid;gap:12px}.privacy-content section{padding:18px 20px;border:1px solid #2f343c;border-radius:7px;background:#171b22}
.privacy-content h3{margin:0 0 8px;font-size:14px}.privacy-content p{margin:0;color:#9ca1aa;font-size:13px;line-height:1.75}
.privacy-confirm{min-width:140px;margin:24px auto 0}
@media(max-width:760px){.privacy-panel{padding:34px 20px 24px}.privacy-panel h2{font-size:27px}}

.difference{
  background:
    radial-gradient(circle at 72% 58%,rgba(237,39,45,.12),transparent 28%),
    #0c0f14;
}
.difference .section-heading h2 em{color:var(--red);font-style:normal}
.difference-lead{margin:20px auto 0;color:#858b94!important;font-size:14px;line-height:1.8}
.compare{overflow:visible;border-color:#3b414b}
.compare-side.muted{opacity:.62;background:#0d1015}
.compare-side.peak{
  position:relative;
  z-index:2;
  margin:-12px -1px;
  padding-top:52px;
  padding-bottom:44px;
  border:1px solid rgba(237,39,45,.62);
  border-radius:10px;
  background:linear-gradient(145deg,#21171b,#141820 55%,#101319);
  box-shadow:0 24px 70px rgba(0,0,0,.38),0 0 45px rgba(237,39,45,.08);
}
.compare-side.peak:before{
  content:"RECOMMENDED";
  position:absolute;
  right:25px;
  top:20px;
  padding:5px 8px;
  border-radius:3px;
  background:var(--red);
  color:#fff;
  font-size:8px;
  font-weight:800;
  letter-spacing:.12em;
}
.compare-side.peak h3{display:flex;align-items:center;justify-content:space-between;gap:20px}
.compare-side.peak h3 small{color:#8e949d;font-size:9px;letter-spacing:.12em}
.compare-side.peak li{color:#fff;font-weight:650}
.compare-side.peak li:after{content:"✓";margin-left:auto;color:var(--red);font-weight:900}
.versus{
  position:relative;
  z-index:3;
  width:48px;
  height:48px;
  align-self:center;
  justify-self:center;
  margin:0 -10px;
  border:1px solid #454b55;
  border-radius:50%;
  background:#090b0f;
  color:#fff;
  box-shadow:0 8px 25px rgba(0,0,0,.5);
}
.compare-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:26px;
  padding:15px 17px;
  border-radius:4px;
  background:var(--red);
  color:#fff;
  font-size:12px;
  font-weight:800;
}
.compare-cta:hover{filter:brightness(1.08);transform:translateY(-2px)}
@media(max-width:760px){
  .compare{overflow:hidden}
  .compare-side.peak{margin:0;border-radius:0;padding-top:50px}
  .versus{width:44px;height:44px;margin:-22px auto}
}
