.logo {
  display: flex;
  align-items: center;
  gap: 0;
}

body {
  width: 100%;
  max-width: none;
  margin: 0;
  box-shadow: none;
}

/* Full-width backgrounds with a centered 1200px content area */
.header {
  padding-left: max(24px, calc((100vw - 1200px) / 2 + 24px));
  padding-right: max(24px, calc((100vw - 1200px) / 2 + 24px));
}

.hero,
.section,
.owc,
.contact,
footer {
  padding-left: max(24px, calc((100vw - 1200px) / 2 + 24px));
  padding-right: max(24px, calc((100vw - 1200px) / 2 + 24px));
}

.side-label {
  left: max(8px, calc((100vw - 1200px) / 2 + 3px));
}

.header-cta {
  margin-right: 0;
}

.owc-wordmark {
  display: block;
  margin: 22px 0 30px;
  color: var(--gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(100px, 12vw, 170px);
  font-weight: 400;
  font-style: italic;
  line-height: .78;
  letter-spacing: -.085em;
}

/* Refined typography and balanced Japanese line breaks */
.heading-line {
  display: block;
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
}

.hero-copy,.mission-heading,.mission-body,.owc-intro,.owc-content,
.section-head,.service-groups,.message-copy,.company>div,.company dl,.contact>* { min-width: 0; }

.hero h1 { font-size: clamp(46px,4.6vw,70px); line-height: 1.35; letter-spacing: .02em; }
.section h2,.contact h2 { font-size: clamp(34px,3.15vw,47px); line-height: 1.48; letter-spacing: .025em; }
.owc h3 { font-size: clamp(30px,2.8vw,42px); line-height: 1.5; letter-spacing: .02em; }
.owc-catch { font-size: clamp(25px,2.5vw,37px); line-height: 1.55; }
.lead,.mission-body p,.owc-content>p,.section-head>p,
.message-copy>p:not(.kicker),.contact>p:not(.kicker) { text-wrap: pretty; word-break: normal; overflow-wrap: anywhere; }
.lead { max-width: 31em; }.mission-body { max-width: 34em; }.owc-content>p { max-width: 46em; }
.section-head>p { max-width: 38em; }.message-copy>p:not(.kicker),.contact>p:not(.kicker) { max-width: 42em; }

.mission { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(60px,8vw,110px); }
.section-head { grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: clamp(60px,8vw,105px); }
.message { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(70px,8vw,110px); }
.owc { grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(65px,8vw,110px); }

@media (max-width: 1040px) {
  .hero h1 { font-size: clamp(43px,5.8vw,60px); }
  .section h2,.contact h2 { font-size: clamp(32px,4.2vw,42px); }
  .owc h3 { font-size: clamp(29px,3.8vw,38px); }
  .mission,.section-head,.message,.owc { gap: 48px; }
  .section-head { grid-template-columns: minmax(0,1fr) minmax(0,.9fr); }
}

.logo img {
  display: block;
  width: clamp(180px, 18vw, 245px);
  height: auto;
}

.footer-logo img {
  width: 230px;
}

.portrait {
  margin: 0 0 0 4vw;
  aspect-ratio: 1;
  position: relative;
  overflow: visible;
  padding: 20px;
  background: #0b2945;
  box-shadow: none;
}

.portrait::before,
.portrait::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.portrait::before {
  inset: 4px -17px -17px 17px;
  border-right: 15px solid var(--gold);
  border-bottom: 15px solid var(--gold);
}

.portrait::after {
  inset: 13px;
  border: 1px solid rgba(255, 255, 255, .18);
}

.portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative;
  z-index: 1;
  border: 12px solid #06162b;
}

.portrait figcaption {
  position: absolute;
  z-index: 4;
  left: -8px;
  bottom: 10px;
  min-width: 180px;
  color: var(--ink);
  padding: 17px 20px 16px;
  background: #fff;
  box-shadow: 7px 7px 0 var(--gold);
}

.portrait figcaption small {
  display: block;
  color: #93733a;
  font: 7px Arial, sans-serif;
  letter-spacing: .23em;
  margin-bottom: 9px;
}

.portrait figcaption b {
  display: block;
  font: 700 17px/1.3 "Yu Gothic", sans-serif;
  letter-spacing: .02em;
}

.portrait-corner {
  position: absolute;
  z-index: 3;
  left: 4px;
  top: 4px;
  width: 74px;
  height: 74px;
  border-left: 3px solid var(--gold);
  border-top: 3px solid var(--gold);
  transform: translate(-10px, -10px);
}

.since-badge {
  position: absolute;
  z-index: 4;
  right: -30px;
  top: 30px;
  width: 86px;
  height: 86px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #07172d;
  background: var(--gold);
  box-shadow: 0 8px 22px rgba(6, 22, 43, .18);
}

.since-badge::before,
.since-badge::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 10px;
  height: 25px;
  transform: translateX(-50%);
  background: var(--gold);
}

.since-badge::before { bottom: 100%; }
.since-badge::after { top: 100%; }
.since-badge small { font: 700 7px Arial, sans-serif; letter-spacing: .14em; }
.since-badge b { margin-top: 4px; font: 700 19px Georgia, serif; }

@media (max-width: 820px) {
  .header,
  .hero,
  .section,
  .owc,
  .contact,
  footer {
    padding-left: 24px;
    padding-right: 24px;
  }

  .header { padding-left: 18px; padding-right: 18px; }
  .logo img { width: 155px; }
  .footer-logo img { width: 210px; }
  .portrait { margin: 0 7vw 65px; }
  .portrait { padding: 13px; }
  .portrait::before { inset: 3px -11px -11px 12px; border-right-width: 10px; border-bottom-width: 10px; }
  .portrait img { border-width: 8px; }
  .portrait-corner { width: 55px; height: 55px; }
  .since-badge { width: 70px; height: 70px; right: -23px; top: 22px; }
  .since-badge::before,.since-badge::after { height: 18px; width: 8px; }
  .since-badge b { font-size: 16px; }
  .portrait figcaption { left: -6px; bottom: 7px; min-width: 158px; padding: 14px 16px; }
  .portrait figcaption b { font-size: 15px; }
  .owc-wordmark { font-size: clamp(76px,26vw,110px); margin: 20px 0 28px; }
  .hero h1 { font-size: clamp(38px,10.5vw,52px); line-height: 1.4; }
  .section h2,.contact h2 { font-size: clamp(29px,8vw,38px); line-height: 1.52; }
  .owc h3 { font-size: clamp(27px,7.3vw,35px); line-height: 1.55; }
  .owc-catch { font-size: clamp(23px,6.7vw,31px); }
  .mission,.section-head,.message,.owc { gap: 0; }
  .heading-line { white-space: nowrap; }
}

@media (max-width: 430px) {
  .hero h1 { font-size: clamp(35px,10vw,43px); }
  .section h2,.contact h2 { font-size: clamp(27px,7.4vw,32px); letter-spacing: .01em; }
  .owc h3 { font-size: clamp(25px,6.8vw,30px); }
  .message-copy h2 { font-size: clamp(25px,6.7vw,29px); }
  .heading-line { max-width: calc(100vw - 48px); }
}

/* Free consultation */
.free-consult{background:var(--navy2);color:white;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(60px,8vw,110px)}.free-consult .side-label span{color:white}.consult-intro{padding-left:4vw}.consult-badge{display:inline-block;padding:7px 12px;border:1px solid var(--gold);color:var(--gold);font-size:9px;font-weight:700;letter-spacing:.12em;margin-bottom:25px}.consult-intro h2{font-size:clamp(32px,3vw,45px)}.consult-intro>p:not(.kicker){max-width:38em;color:#b3bfca;font-size:13px;line-height:2.1;margin:28px 0 35px}.consult-panel{background:#f7f4ed;color:var(--ink);padding:clamp(35px,5vw,65px);position:relative}.consult-panel::before{content:"";position:absolute;inset:14px;border:1px solid rgba(221,169,65,.35);pointer-events:none}.panel-label{position:relative;margin:0 0 20px;color:#98752f;font:700 8px Arial;letter-spacing:.2em}.consult-panel h3{position:relative;margin:0 0 28px;font:500 clamp(27px,2.8vw,39px)/1.5 "Yu Mincho",serif}.consult-panel ul{position:relative;list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.consult-panel li{display:grid;grid-template-columns:35px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);color:#566270;font-size:11px;line-height:1.75}.consult-panel li span{color:var(--gold);font:italic 15px Georgia}.consult-flow{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:28px 0 18px}.consult-flow b{font-size:10px}.consult-flow i{color:var(--gold);font-style:normal}.consult-panel>small{position:relative;color:#7a838d;font-size:9px}@media(max-width:820px){.free-consult{display:block}.consult-intro{padding-left:0;margin-bottom:55px}.consult-panel{padding:38px 27px}.consult-flow{flex-wrap:wrap}}
