:root { --font-sans:"Noto Sans JP",sans-serif; --font-serif:"Noto Serif JP",serif; --font-display:"Cormorant Garamond",serif; --brand-teal:#2B8FA3; --brand-teal-dark:#1e7a8c; --brand-teal-soft:rgba(43,143,163,.14); --brand-teal-wash:#f3fafb; --brand-gold:#b8a882; --brand-cream:#f8f5ef; --brand-beige:#f0ebe0; --brand-charcoal:#1a1a1a; --brand-gray:#666; --line:#06C755; --line-dark:#05b34c; --text-heading:#1f2937; --text-body:#4b5563; --text-muted:#9ca3af; --text-soft:#6b7280; --text-ui:#374151; --text-nav:#444; --text-hint:#888; --border:#e5e7eb; --border-light:#f3f4f6; --border-form:#ece8e0; --error:#c45c5c; --mr-sidebar-rail-min:17.5rem; --mr-sidebar-rail:max(var(--mr-sidebar-rail-min),25vw); --mr-sidebar-inner:15rem; --mr-float-rail:4.5rem; }

/* LINE brand button (#06C755 matches icon_line.png) */
.section-label { letter-spacing:.2em; text-transform:uppercase; color:var(--brand-teal); font-family:var(--font-display); font-size:.75rem; }
.btn-outline { border:1px solid var(--brand-charcoal); color:var(--brand-charcoal); letter-spacing:.1em; padding:.75rem 2.5rem; font-family:var(--font-sans); font-size:.8rem; text-decoration:none; transition:all .25s cubic-bezier(.23,1,.32,1); display:inline-block; }
.btn-outline:hover { background-color:var(--brand-charcoal); color:#fff; }
.btn-teal { border:1px solid var(--brand-teal); color:var(--brand-teal); letter-spacing:.1em; padding:.75rem 2.5rem; font-family:var(--font-sans); font-size:.8rem; text-decoration:none; transition:all .25s cubic-bezier(.23,1,.32,1); display:inline-block; }
.btn-teal:hover { background-color:var(--brand-teal); color:#fff; }
.btn-teal-filled { background-color:var(--brand-teal); color:#fff; letter-spacing:.1em; padding:1rem 3rem; font-family:var(--font-sans); font-size:.85rem; text-decoration:none; transition:all .25s cubic-bezier(.23,1,.32,1); display:inline-block; }
.btn-teal-filled:hover { background-color:var(--brand-teal-dark); }
.btn-line-filled { background-color:var(--line); color:#fff!important; letter-spacing:.1em; padding:1rem 3rem; font-family:var(--font-sans); font-size:.8rem; text-decoration:none; transition:all .25s cubic-bezier(.23,1,.32,1); display:inline-block; border:1px solid var(--line); }
.btn-line-filled:hover { background-color:var(--line-dark); border-color:var(--line-dark); color:#fff!important; }
.works-card { overflow:hidden; }
.works-card img { transition:transform .5s cubic-bezier(.23,1,.32,1); }
.works-card:hover img { transform:scale(1.05); }
.hero-slide { opacity:0; transition:opacity 1.2s ease-in-out; position:absolute; inset:0; }
.hero-slide.active { opacity:1; }
@keyframes fadeInUp {
  0% { opacity:0; transform:translateY(20px); }
  to { opacity:1; transform:translateY(0); }
}
.fade-in-up { animation:.8s cubic-bezier(.23,1,.32,1) forwards fadeInUp; }

/* reno-types equal height */
@container mr (min-width:768px) {
  #renovation .reno-types { align-items:stretch; }
  #renovation .reno-type-main { height:100%; display:flex; flex-direction:column; }
  #renovation .reno-type-main-img { flex:1 1 auto; height:auto!important; min-height:0; position:relative; }
  #renovation .reno-type-main-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  #renovation .reno-type-side { height:auto; }
}

/* LINE brand icon */
.icon-line { display:inline-block; object-fit:contain; flex-shrink:0; border-radius:4px; vertical-align:middle; }
.icon-line--sm { width:18px; height:18px; }
.icon-line--md { width:24px; height:24px; }
.icon-line--lg { width:36px; height:36px; border-radius:6px; }

html { font-size:16px; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { font-family:var(--font-sans); font-size:1.0625rem; line-height:1.85; overflow-x:clip; }
img, video, iframe { max-width:100%; }
.btn-outline,
.btn-teal,
.btn-teal-filled,
.btn-line-filled { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.9rem 2.25rem!important; font-size:1rem!important; line-height:1.4; min-height:3rem; box-sizing:border-box; }

/* president message layout */
.president-photo-aspect { aspect-ratio:4/5; width:100%; max-width:100%; object-fit:cover; object-position:top; }
@container mr (min-width:768px) {
  .president-photo-col { width:36%!important; max-width:18rem!important; flex-shrink:0; }
  .president-copy-col { width:64%!important; flex:1; min-width:0; }
}
@container mr (min-width:1024px) {
  .president-photo-col { max-width:20rem!important; }
}

/* Hero helpers */
@container mr (min-width:768px) {
  .mr-page-hero__en { letter-spacing:.28em!important; }
}
.mobile-cta { padding-top:.875rem; padding-bottom:.875rem; }

/* Desktop — fixed LINE / phone icons on the right (footer stacks above via z-index) */
.desktop-contact-float { display:none; }
@container mr-frame (min-width:768px) {
  .desktop-contact-float { display:flex; flex-direction:column; position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:60; box-shadow:-4px 4px 20px rgba(26,26,26,.12); border-radius:10px 0 0 10px; overflow:hidden; }
  .desktop-contact-float__btn { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.65rem; width:auto; min-width:3.25rem; padding:1rem .55rem; color:#fff; text-decoration:none; transition:opacity .2s ease,filter .2s ease; }
  .desktop-contact-float__icon { display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .desktop-contact-float__label { writing-mode:vertical-rl; font-family:var(--font-sans); font-size:12px; font-weight:500; letter-spacing:.12em; line-height:1; white-space:nowrap; }
  .desktop-contact-float__btn:hover { opacity:.92; filter:brightness(1.05); }
  .desktop-contact-float__btn--line { background:var(--line); }
  .desktop-contact-float__btn--line .icon-line { width:28px; height:28px; }
  .desktop-contact-float__btn--tel { background:var(--text-heading); }
  .desktop-contact-float__btn--tel:hover { background:var(--text-ui); }
}

.header-phone-icon { color:var(--brand-teal); width:1.25rem; height:1.25rem; flex-shrink:0; }
.store-info-icon { color:var(--brand-teal); }

/* Foundation */
*,
:after,
:before { box-sizing:border-box; margin:0; padding:0; }
a { color:inherit; text-decoration:inherit; }
ol, ul, menu { list-style:none; }
img, svg, video, canvas, audio, iframe, embed, object { display:block; vertical-align:middle; }
img,
video { max-width:100%; }
button, input, select, optgroup, textarea { font:inherit; color:inherit; background-color:transparent; border-radius:0; }
h1, h2, h3, h4, h5, h6 { letter-spacing:.06em; font-family:var(--font-serif); font-weight:600; }
button:not(:disabled),
[type=button]:not(:disabled),
[type=submit]:not(:disabled),
[type=reset]:not(:disabled),
a[href],
select:not(:disabled) { cursor:pointer; }
.container { width:100%; margin-left:auto; margin-right:auto; padding-left:1rem; padding-right:1rem; }
@container mr (min-width:640px) {
  .container { padding-left:1.5rem; padding-right:1.5rem; }
}
@container mr (min-width:1024px) {
  .container { max-width:1200px; padding-left:2rem; padding-right:2rem; }
}

/* Outer frame + content column containers
   mr-frame = .mr-page（シェル：サイドナビ切替など）
   mr       = .mr-content（本文レイアウト）
   .mr-body = サイド＋本文（フッター手前で sticky を止める） */
.mr-page { min-height:100vh; width:100%; container-type:inline-size; container-name:mr-frame; }
.mr-body { width:100%; }
.mr-content { width:100%; container-type:inline-size; container-name:mr; }

/* Sidebar (PC) — FILE-style left nav
   .mr-sidebar = dynamic rail (relative width, min guaranteed)
   .mr-sidebar__inner = fixed-width nav, centered in the rail */
.mr-sidebar { display:none; }
.mr-sidebar__inner { display:flex; flex-direction:column; width:100%; max-width:var(--mr-sidebar-inner); min-height:0; height:100%; filter:drop-shadow(0 0 2px #fff); }
.mr-sidebar__top { flex-shrink:0; }
.mr-sidebar__logo { display:block; padding:2rem 0 1.75rem; text-align:center; }
.mr-sidebar__logo img { display:block; height:auto; width:100%; max-height:9rem; margin:0 auto; object-fit:contain; object-position:center; }
.mr-sidebar__nav { display:flex; flex-direction:column; border-top:1px solid var(--border); }
.mr-sidebar__link,
.mr-nav__link { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:.2rem; border-bottom:1px solid var(--border); color:var(--text-nav); text-decoration:none; transition:color .2s,background .2s; }
.mr-sidebar__link { min-height:3.75rem; padding:.85rem 0; }
.mr-nav__link { min-height:3rem; padding:.55rem 0; }
.mr-sidebar__en { display:block; font-family:var(--font-display); font-size:1.45rem; font-weight:500; letter-spacing:.12em; line-height:1.2; }
.mr-sidebar__ja { display:block; font-family:var(--font-sans); font-size:.8rem; font-weight:400; letter-spacing:.06em; line-height:1.2; color:var(--text-soft); }
.mr-sidebar__link:hover,
.mr-nav__link:hover { color:var(--brand-teal); }
.mr-sidebar__link:hover .mr-sidebar__ja,
.mr-nav__link:hover .mr-sidebar__ja { color:var(--brand-teal); }
.mr-sidebar__link.is-current,
.mr-nav__link.is-current { color:var(--brand-teal); }
.mr-sidebar__link.is-current .mr-sidebar__ja,
.mr-nav__link.is-current .mr-sidebar__ja { color:var(--brand-teal); }
.mr-sidebar__bottom { display:flex; flex-direction:column; gap:1.25rem; padding:1.5rem 0 2rem; }
.mr-sidebar__phone { display:flex; flex-direction:column; gap:.35rem; text-decoration:none; }
.mr-sidebar__phone-num { display:inline-flex; align-items:center; gap:.35rem; color:var(--brand-teal); font-family:var(--font-sans); font-weight:600; font-size:1.75rem; line-height:1.2; letter-spacing:.02em; }
.mr-sidebar__phone-num .header-phone-icon { width:1rem; height:1rem; }
.mr-sidebar__phone-hours { color:var(--text-muted); font-family:var(--font-sans); font-size:.75rem; line-height:1.45; font-feature-settings:"palt"; }
.mr-nav-cta { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; width:100%; box-sizing:border-box; min-height:3.15rem; padding:.85rem 1.25rem; border:0; border-radius:0; background:rgba(43,143,163,.9); color:#fff; font-family:var(--font-sans); font-size:.875rem; font-weight:500; letter-spacing:.03em; line-height:1.3; text-decoration:none; transition:background .25s ease,opacity .25s ease; }
.mr-nav-cta svg { flex-shrink:0; }
.mr-nav-cta:hover { background:var(--brand-teal-dark); color:#fff; }

/* Mobile top header + overlay nav + bottom CTA */
.mr-header { position:fixed; top:0; left:0; right:0; z-index:50; background:#fff; }
.mr-header__inner { max-width:1200px; margin:0 auto; padding:0 1rem; }
.mr-header__bar { display:flex; align-items:center; justify-content:space-between; height:4rem; }
.mr-header__logo { flex-shrink:0; }
.mr-header__logo img { display:block; height:2.5rem; width:auto; max-height:2.5rem; max-width:14rem; object-fit:contain; }
.mr-header__tools { display:flex; align-items:center; gap:1rem; }
.mr-header__menu { display:block; padding:.5rem; color:var(--text-ui); background:none; border:0; cursor:pointer; }
.mr-header__menu svg { display:block; }
.mr-nav { position:fixed; inset:0; z-index:40; background:#fff; transform:translateX(100%); transition:transform .3s; overflow-x:hidden; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; }
.mr-nav.is-open { transform:translateX(0); }
/* Keep scrollbar gutter while menu is open (avoid SP→PC width jump) */
html.is-mr-nav-open { overflow-y:scroll; overscroll-behavior:none; }
html.is-mr-nav-open body { position:fixed; left:0; right:0; width:100%; }
.mr-nav__inner { box-sizing:border-box; min-height:100%; padding:4.25rem 2rem calc(5.5rem + env(safe-area-inset-bottom,0px)); }
.mr-nav__list { display:flex; flex-direction:column; border-top:1px solid var(--border); }
.mr-nav .mr-nav-cta { margin-top:1.25rem; }
.mr-nav__contact { margin-top:1.25rem; padding-bottom:.5rem; }
.mr-nav__tel { display:flex; align-items:center; gap:.75rem; color:var(--brand-teal); font-family:var(--font-sans); font-size:1.75rem; font-weight:600; text-decoration:none; line-height:1.3; }
.mr-nav__hours { margin-top:.25rem; color:var(--text-soft); font-family:var(--font-sans); font-size:.75rem; }
.mr-mobile-cta { position:fixed; bottom:0; left:0; right:0; z-index:60; display:flex; box-shadow:0 -2px 12px rgba(0,0,0,.12); }
.mr-mobile-cta a { flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.125rem; padding:.875rem .25rem; color:#fff; text-decoration:none; font-family:var(--font-sans); font-size:12px; font-weight:500; }
.mr-mobile-cta__tel { background:var(--text-heading); }
.mr-mobile-cta__tel:active { background:var(--text-ui); }
.mr-mobile-cta__line { background:var(--line); }
.mr-mobile-cta__line:active { opacity:.9; }
.mr-mobile-cta-spacer { height:64px; }
.mr-footer { position:relative; z-index:51; width:100%; background:var(--brand-charcoal); color:#fff; }
.mr-footer__body { padding:4rem 0; }
.mr-footer__inner { width:100%; margin:0 auto; padding:0 1rem; }
.mr-footer__grid { display:grid; grid-template-columns:1fr; gap:2.5rem; }
.mr-footer__logo { display:block; margin-bottom:1.5rem; }
.mr-footer__logo img { display:block; height:2.5rem; width:auto; max-height:2.5rem; max-width:14rem; object-fit:contain; filter:brightness(0) invert(1); }
.mr-footer__address { color:var(--text-muted); font-family:var(--font-sans); font-size:.75rem; font-weight:300; line-height:1.625; }
.mr-footer__address a { color:inherit; text-decoration:none; transition:color .2s; }
.mr-footer__address a:hover { color:#fff; }
.mr-footer__heading { margin:0 0 1.25rem; color:var(--text-soft); font-family:var(--font-display); font-size:.75rem; letter-spacing:.2em; }
.mr-footer__links { margin:0; padding:0; list-style:none; }
.mr-footer__links li+li { margin-top:.75rem; }
.mr-footer__link { color:var(--text-muted); font-family:var(--font-sans); font-size:.75rem; text-align:left; text-decoration:none; transition:color .2s; }
.mr-footer__link:hover { color:#fff; }
.mr-footer__copy-wrap { border-top:1px solid rgba(255,255,255,.1); padding:1.5rem 0; }
.mr-footer__copy { margin:0; color:var(--text-body); font-family:var(--font-display); font-size:.75rem; letter-spacing:.1em; text-align:center; }
@container mr-frame (min-width:640px) {
  .mr-header__inner { padding:0 1.5rem; }
  .mr-footer__inner { padding:0 1.5rem; }
  .mr-footer__grid { grid-template-columns:1fr 1fr; }
  .mr-footer__brand { grid-column:1/-1; }
}
@container mr-frame (min-width:768px) {
  .mr-body { display:flex; align-items:flex-start; width:100%; }
  .mr-sidebar { display:flex; flex-direction:column; align-items:center; position:sticky; top:0; align-self:flex-start; z-index:50; flex:0 0 var(--mr-sidebar-rail); width:var(--mr-sidebar-rail); min-width:var(--mr-sidebar-rail-min); box-sizing:border-box; background:transparent; border-right:0; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .mr-header,
  .mr-nav,
  .mr-mobile-cta,
  .mr-mobile-cta-spacer { display:none; }
  .mr-body > .mr-content { flex:1 1 0; min-width:0; width:auto; max-width:none; overflow:visible; }
  .mr-page > .mr-footer { width:100%; }
  .mr-hero { width:100%; max-width:100%; }
  .mr-main { padding-top:0!important; overflow:visible; }
  /* Solid tint backgrounds — paint rail via ::before (avoids fighting padding shorthand) */
  .mr-bleed-rail { position:relative; }
  .mr-bleed-rail::before { content:""; position:absolute; top:0; bottom:0; left:calc(-1 * var(--mr-sidebar-rail)); width:var(--mr-sidebar-rail); background:inherit; pointer-events:none; z-index:0; }
  .mr-bleed-rail > * { position:relative; z-index:1; }
  .mr-footer__logo img { height:2.75rem; max-height:2.75rem; max-width:15rem; }
  .mr-footer__grid { grid-template-columns:1fr 1fr 1fr; }
  .mr-footer__brand { grid-column:auto; }
}
@container mr-frame (min-width:1024px) {
  .mr-footer__inner { max-width:1100px; padding:0 2rem; }
}

/* TOP features intro — centered, natural wraps by content width */
.features-intro { text-align:center!important; max-width:22rem; margin-left:auto; margin-right:auto; line-height:2!important; }
.features-intro-line { display:block; text-wrap:balance; }
.features-intro-br { display:none; }
@container mr (min-width:480px) {
  .features-intro { max-width:32rem; }
}
@container mr (min-width:768px) {
  .features-intro { max-width:40rem; }
}
@container mr (min-width:1024px) {
  .features-intro { max-width:44rem; }
}

/* contact page phone — match header style, not button */
.contact-phone-display { color:var(--brand-teal); text-decoration:none; width:auto!important; max-width:none!important; padding:0!important; min-height:0!important; border:none!important; background:transparent!important; }
.contact-phone-display:hover { opacity:.85; }

/* Subpage title hero — cover image without tiling */
.js-mr-page-hero,
.mr-page-hero { background-repeat:no-repeat!important; background-size:cover!important; background-position:center; }
@container mr (max-width:767px) {
  .js-mr-page-hero,
  .mr-page-hero { min-height:clamp(15rem,52cqw,18rem); background-position:center 32%!important; }
}

/* Subpage hero subtitle — use full container width */
.mr-page-hero__sub { max-width:100%!important; width:100%; word-break:keep-all; line-break:auto; }
@container mr (min-width:768px) {
  .mr-page-hero__sub { max-width:56rem!important; font-size:1rem!important; line-height:2!important; }
}
.ge-content-br { display:block; }
@container mr (min-width:768px) {
  .ge-content-br { display:block; margin-top:.35rem; }
}
.about-intro-photo-img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.about-intro-grid { display:flex; flex-direction:column; align-items:flex-start; gap:2.5rem; max-width:60rem; margin:0 auto; }
@container mr (min-width:768px) {
  .about-intro-grid { flex-direction:row; gap:3.5rem; }
  .about-intro-photo { width:41%; max-width:24rem; flex-shrink:0; }
  .about-intro-copy { width:59%; flex:1; min-width:0; }
  .about-intro-photo-img { aspect-ratio:4/5; }
}
@container mr (min-width:1024px) {
  .about-intro-grid { gap:4.5rem; max-width:66rem; }
  .about-intro-photo { max-width:26rem; }
}

/* renovation flow step numbers */
.reno-flow-num { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:4rem; height:4rem; border:1px solid var(--brand-teal); }
.reno-flow-num-text { color:var(--brand-teal); font-family:var(--font-display); font-size:1.25rem; line-height:1; letter-spacing:.1em; }
@container mr (min-width:768px) {
  .reno-flow-num { width:5rem; height:5rem; }
  .reno-flow-num-text { font-size:1.75rem; line-height:1; }
}

/* ===== Responsive: phone / tablet ===== */
/* Shell (mr-frame) — chrome around content column */
@container mr-frame (max-width:767px) {
  .mr-page { overflow-x:clip; padding-bottom:calc(4.75rem + env(safe-area-inset-bottom,0px)); }
  .mr-mobile-cta { padding-bottom:env(safe-area-inset-bottom,0); }
  .mobile-cta { min-width:0; padding-left:.35rem; padding-right:.35rem; }
  .mr-mobile-cta span { font-size:11px; letter-spacing:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
}
@container mr-frame (max-width:575px) {
  .mr-mobile-cta span { font-size:10px; }
}
@container mr-frame (min-width:768px) {
  .mr-page { padding-bottom:0; }
}

/* Device-level (viewport) — root typography / iOS input zoom */
@media (max-width:767px) {
  html { font-size:15.5px; }
  body { font-size:1.05rem; overflow-x:clip; }
  #root { overflow-x:clip; }
  input,
  textarea,
  select { font-size:16px!important; max-width:100%; }
}
@media (min-width:768px) and (max-width:1023px) {
  html { font-size:16px; }
  body { font-size:1.08rem; }
}

/* Content column (container) */
@container mr (max-width:1023px) {
  .container { padding-left:1.25rem!important; padding-right:1.25rem!important; }
}
@container mr (max-width:767px) {
  #root main section { padding-top:3.25rem; padding-bottom:3.25rem; }
  #root #news { padding-top:2.5rem; padding-bottom:2.5rem; }
  #root main section.mr-page-hero { padding-top:3.5rem!important; padding-bottom:3.5rem!important; }
  #root main section.mr-hero { padding-top:0!important; padding-bottom:0!important; }
  #root main > section.mr-page-hero { margin-top:0!important; }
  h1,
  h2,
  h3 { overflow-wrap:break-word; word-break:keep-all; line-break:auto; text-wrap:balance; line-height:1.45; }
  p { overflow-wrap:break-word; word-break:normal; line-break:auto; }
  #root main .mr-heading:not(.mr-heading--cta) { font-size:clamp(1.28rem,4.5cqw,1.5rem)!important; line-height:1.5!important; letter-spacing:.04em!important; }
  #root main .mr-heading--lg { font-size:clamp(1.32rem,4.8cqw,1.65rem)!important; line-height:1.48!important; }
  .js-mr-about-title { font-size:1.28rem!important; line-height:1.52!important; }
  .btn-outline,
  .btn-teal,
  .btn-teal-filled,
  .btn-line-filled { width:100%; max-width:22rem; padding:.95rem 1.35rem!important; min-height:3.15rem; }
  .mr-hero__btn { width:auto!important; max-width:none!important; min-height:2.4rem; padding:.55rem .4rem .55rem .7rem!important; font-size:.6875rem!important; letter-spacing:.02em!important; gap:.55rem; }
  .president-photo-aspect { max-width:19rem; margin-inline:auto; display:block; }
  #renovation .reno-type-main-img { height:15.5rem!important; min-height:15.5rem; position:relative; }
  #renovation .reno-type-main-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  iframe { width:100%!important; max-width:100%; }
  .mr-hero__copy { left:1rem; right:1rem; bottom:calc(1.25rem + 3rem); }
  .mr-hero__cta { left:1rem; right:1rem; bottom:1.25rem; flex-wrap:nowrap; gap:.4rem; }
  .mr-hero__title { font-size:clamp(1.45rem,6.2cqw,1.85rem)!important; }
  .mr-hero__sub { font-size:.875rem!important; }
  .mr-page-hero__en { letter-spacing:.14em!important; }
  .mr-page-hero__title { font-size:clamp(1.45rem,5cqw,1.65rem)!important; line-height:1.45!important; }
  form input,
  form textarea,
  form select,
  form button[type="submit"] { width:100%; max-width:100%; box-sizing:border-box; }
  footer p,
  footer a,
  footer li { overflow-wrap:anywhere; }
}
@container mr (max-width:379px) {
  .mr-hero__title { font-size:1.35rem!important; }
  .mr-hero__cta { left:.75rem; right:.75rem; bottom:1.25rem; gap:.3rem; }
  .mr-hero__copy { left:.75rem; right:.75rem; bottom:calc(1.25rem + 3rem); }
  .mr-hero__btn { min-height:2.25rem; padding:.45rem .3rem .45rem .55rem!important; font-size:.8rem!important; gap:.4rem; }
}
@container mr (min-width:480px) and (max-width:767px) {
  .btn-outline,
  .btn-teal,
  .btn-teal-filled,
  .btn-line-filled { width:auto; min-width:10.5rem; max-width:none; }
  .mr-hero__title { font-size:1.95rem!important; }
  .mr-hero__copy { left:1.5rem; right:1.5rem; bottom:calc(1.25rem + 3.25rem); }
  .mr-hero__cta { left:1.5rem; right:auto; bottom:1.25rem; gap:.5rem; }
  .mr-hero__btn { min-height:2.6rem; padding:.65rem .5rem .65rem .95rem!important; font-size:.8rem!important; gap:.7rem; }
}
@container mr (min-width:768px) and (max-width:1023px) {
  .container { padding-left:1.75rem!important; padding-right:1.75rem!important; }
  #root main section { padding-top:4.25rem; padding-bottom:4.25rem; }
  #root main section.mr-hero { padding-top:0!important; padding-bottom:0!important; }
  .president-photo-col { width:36%!important; max-width:17.5rem!important; }
  .president-copy-col { width:64%!important; }
  .btn-outline,
  .btn-teal,
  .btn-teal-filled,
  .btn-line-filled { padding:.95rem 2.35rem!important; }
}

/* PDF flip viewer */
body.ge-pdf-open { overflow:hidden; }
.ge-pdf-viewer { position:fixed; inset:0; z-index:10000; display:none; align-items:center; justify-content:center; padding:1rem; }
.ge-pdf-viewer.is-open { display:flex; }
.ge-pdf-viewer__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.72); }
.ge-pdf-viewer__dialog { position:relative; z-index:1; width:min(960px,96vw); max-height:92vh; background:#111; color:#fff; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.45); display:flex; flex-direction:column; overflow:hidden; }
.ge-pdf-viewer__close { position:absolute; top:.6rem; right:.8rem; z-index:2; width:2.5rem; height:2.5rem; border:0; border-radius:999px; background:rgba(255,255,255,.12); color:#fff; font-size:1.6rem; line-height:1; cursor:pointer; }
.ge-pdf-viewer__close:hover { background:rgba(255,255,255,.22); }
.ge-pdf-viewer__title { margin:0; padding:1rem 3.5rem .5rem 1.25rem; font-family:var(--font-serif); font-size:1.05rem; font-weight:500; color:#fff; }
.ge-pdf-viewer__stage { position:relative; flex:1; min-height:0; display:flex; align-items:center; justify-content:center; padding:0 .5rem 0; }
.ge-pdf-viewer__page-wrap { flex:1; min-width:0; max-height:calc(92vh - 7rem); display:flex; align-items:center; justify-content:center; background:#000; }
.ge-pdf-viewer__page { max-width:100%; max-height:calc(92vh - 7rem); width:auto; height:auto; object-fit:contain; user-select:none; -webkit-user-drag:none; }
.ge-pdf-viewer__nav { flex:0 0 auto; width:3rem; height:3rem; margin:0 .25rem; border:0; border-radius:999px; background:rgba(255,255,255,.14); color:#fff; font-size:2rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.ge-pdf-viewer__nav:hover:not(:disabled) { background:var(--brand-teal); }
.ge-pdf-viewer__nav:disabled { opacity:.28; cursor:default; }
.ge-pdf-viewer__footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 1.25rem 1rem; font-family:var(--font-sans); font-size:.95rem; color:rgba(255,255,255,.85); }
.ge-pdf-viewer__download { color:#9fd7e4; text-decoration:none; }
.ge-pdf-viewer__download:hover { text-decoration:underline; }
@media (max-width:640px) {
  .ge-pdf-viewer__nav { width:2.5rem; height:2.5rem; font-size:1.6rem; }
  .ge-pdf-viewer__title { font-size:.95rem; padding-right:3rem; }
}

/* Store section Google Map */
.store-map { height:320px; }
@container mr (min-width:768px) {
  .store-map { height:450px; }
}

/* TEMP: hide news section (restore by removing this rule) */
#news { display:none!important; }

/* Toast/notification host must not consume document flow (was causing ~100px header gap) */
section[aria-label*="Notifications"] { position:fixed!important; inset:auto 0 0 0; top:0; height:0!important; width:100%; padding:0!important; margin:0!important; overflow:visible!important; pointer-events:none; z-index:9999; }
section[aria-label*="Notifications"] * { pointer-events:auto; }
.mr-crumb { display:none; }

/* LineSection contact CTAs — centered balanced layout */
.line-cta-block { display:flex; flex-direction:column; align-items:center; gap:1.75rem; max-width:44rem; margin:0 auto; text-align:center; }
.line-cta-phone { display:flex; flex-direction:column; align-items:center; gap:.4rem; }
.line-cta-tel { font-size:1.75rem!important; /* 28px */ }
@container mr (min-width:768px) {
  .line-cta-tel { font-size:2rem!important; }
  /* 32px */
}
.line-cta-btns { display:flex; flex-direction:column; align-items:stretch; gap:1rem; width:100%; max-width:22rem; }
.line-cta-btn { width:100%!important; max-width:none!important; min-width:0!important; justify-content:center!important; white-space:nowrap!important; box-sizing:border-box; }
@container mr (min-width:640px) {
  .line-cta-btns { flex-direction:row; justify-content:center; max-width:none; gap:1.25rem; }
  .line-cta-btn { width:auto!important; min-width:17.5rem!important; flex:0 0 auto; }
}

/* FAQ Q/A sizes */
.faq-q-label,
.faq-a-label { font-size:1.35rem!important; line-height:1.3!important; }
.faq-q { font-size:1.125rem!important; line-height:1.7!important; }
.faq-a { font-size:1.0625rem!important; line-height:1.9!important; }
@container mr (min-width:768px) {
  .faq-q-label,
  .faq-a-label { font-size:1.5rem!important; }
  .faq-q { font-size:1.25rem!important; }
  .faq-a { font-size:1.125rem!important; }
}

/* Feature checklist (TOP + Features page) */
.feature-check { font-size:1.0625rem!important; line-height:1.7!important; }
.feature-check-icon { color:var(--brand-teal); flex-shrink:0; }
.feature-check-title { font-size:1.0625rem!important; line-height:1.55!important; font-weight:600; }
.feature-check-desc { font-size:.9375rem!important; line-height:1.85!important; }
@container mr (min-width:768px) {
  .feature-check { font-size:1.125rem!important; }
  .feature-check-title { font-size:1.125rem!important; }
  .feature-check-desc { font-size:1rem!important; }
}

/* Footer LINE CTA button (white bg / green text) */
.footer-line-btn { color:var(--line)!important; }
.footer-line-btn:hover { color:var(--line-dark)!important; }

/* Contact form (ge-contact-form) */
.ge-contact-form { background:#fff; padding:2rem 1.5rem 2.25rem; border:1px solid var(--border-form); border-radius:2px; font-family:var(--font-sans); }
@container mr (min-width:768px) {
  .ge-contact-form { padding:2.5rem 2.75rem 2.75rem; }
}
.ge-form-section+.ge-form-section { margin-top:2.5rem; padding-top:2.5rem; border-top:1px solid var(--border-form); }
.ge-form-section-head { margin-bottom:1.5rem; }
.ge-form-section-title { margin:0 0 .45rem; font-family:var(--font-serif); font-size:1.125rem; font-weight:600; color:var(--brand-charcoal); letter-spacing:.04em; word-break:keep-all; text-wrap:balance; }
.ge-form-section-desc { margin:0; font-size:.875rem; line-height:1.75; color:var(--brand-gray); font-weight:300; }
.ge-form-section-body { display:flex; flex-direction:column; gap:0; }
.ge-field { margin:0 0 1.75rem; }
.ge-field:last-child { margin-bottom:0; }
.ge-field-head { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem .625rem; margin-bottom:.65rem; }
.ge-field-label { font-size:.9375rem; font-weight:500; color:var(--text-nav); line-height:1.5; }
.ge-required-badge { display:inline-flex; align-items:center; justify-content:center; min-width:2.25rem; padding:.12rem .45rem; border-radius:2px; background:var(--error); color:#fff; font-size:.625rem; font-weight:700; letter-spacing:.06em; line-height:1.4; }
.ge-field-hint { margin:-.25rem 0 .65rem; font-size:.8125rem; line-height:1.65; color:var(--text-hint); font-weight:300; }
.ge-field-control { width:100%; }
.ge-input,
.ge-select,
.ge-textarea { box-sizing:border-box; width:100%; border:1px solid #d9d5cd; border-radius:2px; background:#fff; color:var(--brand-charcoal); font-family:var(--font-sans); font-size:1rem; line-height:1.5; padding:.95rem 1rem; min-height:3.25rem; outline:none; transition:border-color .2s,box-shadow .2s,background-color .2s; -webkit-appearance:none; appearance:none; }
.ge-textarea { min-height:9rem; resize:vertical; line-height:1.75; }
.ge-select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23666' d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; cursor:pointer; }
.ge-input::placeholder,
.ge-textarea::placeholder { color:#aaa; }
.ge-input:hover,
.ge-select:hover,
.ge-textarea:hover { border-color:#b8b0a4; }
.ge-input:focus,
.ge-select:focus,
.ge-textarea:focus { border-color:var(--brand-teal); box-shadow:0 0 0 3px var(--brand-teal-soft); }
.ge-form-row { display:grid; grid-template-columns:1fr; gap:0; }
@container mr (min-width:640px) {
  .ge-form-row { grid-template-columns:1fr 1fr; gap:1.25rem; }
  .ge-form-row .ge-field { margin-bottom:1.75rem; }
  .ge-form-row--zip { grid-template-columns:11rem 1fr; }
}
.ge-address-block { margin-bottom:1.75rem; padding:1.25rem 1rem 0; background:#faf8f4; border:1px solid var(--border-form); border-radius:2px; }
@container mr (min-width:640px) {
  .ge-address-block { padding:1.35rem 1.25rem .25rem; }
}
.ge-address-block>.ge-field-head { margin-bottom:.45rem; }
.ge-address-block>.ge-field-hint { margin-bottom:1rem; }
.ge-zip-lookup { display:flex; flex-direction:column; gap:.65rem; }
.ge-zip-input-row { display:flex; flex-direction:column; gap:.65rem; }
@container mr (min-width:640px) {
  .ge-zip-input-row { flex-direction:row; align-items:stretch; gap:.75rem; }
  .ge-zip-input-row .ge-input { flex:1; min-width:0; }
}
.ge-zip-lookup-btn { flex-shrink:0; min-height:3.25rem; padding:0 1.15rem; border:1px solid var(--brand-teal); border-radius:2px; background:#fff; color:var(--brand-teal); font-family:var(--font-sans); font-size:.875rem; font-weight:600; line-height:1.4; white-space:nowrap; cursor:pointer; transition:background-color .2s,color .2s,border-color .2s,opacity .2s; }
.ge-zip-lookup-btn:hover:not(:disabled) { background:var(--brand-teal); color:#fff; }
.ge-zip-lookup-btn:disabled { opacity:.65; cursor:wait; }
.ge-zip-lookup-status { margin:0; font-size:.8125rem; line-height:1.65; color:var(--text-hint); font-weight:300; }
.ge-zip-lookup-status.is-success { color:var(--brand-teal); }
.ge-zip-lookup-status.is-error { color:var(--error); }
.ge-radio-group { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.ge-radio-option { position:relative; display:flex; align-items:center; justify-content:center; min-height:3.25rem; padding:.85rem 1rem; border:1px solid #d9d5cd; border-radius:2px; background:#fff; cursor:pointer; transition:border-color .2s,background-color .2s,box-shadow .2s; }
.ge-radio-input { position:absolute; opacity:0; pointer-events:none; }
.ge-radio-text { font-size:.9375rem; color:var(--text-nav); font-weight:500; }
.ge-radio-option:has(.ge-radio-input:checked) { border-color:var(--brand-teal); background:var(--brand-teal-wash); box-shadow:0 0 0 1px var(--brand-teal) inset; }
.ge-radio-option:has(.ge-radio-input:focus-visible) { box-shadow:0 0 0 3px var(--brand-teal-soft); }
.ge-blueprint-section .ge-field { margin-bottom:1.25rem; }
.ge-blueprint-file-field { margin-top:-.25rem; }
.ge-file-upload { position:relative; }
.ge-file-input { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.ge-file-trigger { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; min-height:7rem; padding:1.25rem 1rem; border:1px dashed #b8b0a4; border-radius:2px; background:#faf8f4; cursor:pointer; transition:border-color .2s,background-color .2s,box-shadow .2s; text-align:center; }
.ge-file-trigger:hover { border-color:var(--brand-teal); background:var(--brand-teal-wash); }
.ge-file-input:focus-visible + .ge-file-trigger { box-shadow:0 0 0 3px var(--brand-teal-soft); border-color:var(--brand-teal); }
.ge-file-trigger-title { font-size:.9375rem; font-weight:600; color:var(--brand-teal); }
.ge-file-trigger-sub { font-size:.8125rem; line-height:1.6; color:var(--text-hint); font-weight:300; }
.ge-file-list { list-style:none; margin:.75rem 0 0; padding:0; display:flex; flex-direction:column; gap:.45rem; }
.ge-file-item { font-size:.8125rem; line-height:1.55; color:#555; padding:.55rem .75rem; background:#fff; border:1px solid var(--border-form); border-radius:2px; word-break:break-all; }
.ge-form-actions { margin-top:2.75rem; padding-top:2rem; border-top:1px solid var(--border-form); text-align:center; }
.ge-submit-btn { width:100%; max-width:20rem; min-height:3.35rem; padding:.95rem 2rem!important; font-size:1rem!important; }
@container mr (min-width:640px) {
  .ge-submit-btn { width:auto; }
}
.ge-form-note { margin:1rem 0 0; font-size:.8125rem; line-height:1.7; color:var(--text-hint); font-weight:300; }
.ge-contact-success { background:#fff; padding:2.5rem; text-align:center; }
.ge-contact-success svg { display:block; margin:0 auto 1rem; }
.ge-contact-success h3 { margin:0 0 .75rem; color:var(--text-heading); font-family:var(--font-serif); font-size:1.25rem; font-weight:600; }
.ge-contact-success p { margin:0; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
@container mr (max-width:767px) {
  .ge-contact-form { padding:1.35rem 1rem 1.75rem; }
  .ge-form-section+.ge-form-section { margin-top:2rem; padding-top:2rem; }
  .ge-field { margin-bottom:1.5rem; }
  .ge-input,
  .ge-select,
  .ge-textarea { font-size:16px; }
}

/* Google review stars in Voice section */
.voice-stars { display:flex; gap:.15rem; letter-spacing:.05em; }
.voice-star { color:#d4d4d4; font-size:1.05rem; line-height:1; }
.voice-star.is-on { color:#F4B400; }
.voice-text { word-break:break-word; }

/* TOP FeaturesSection: image height matches text column on desktop */
@container mr (min-width:768px) {
  .feature-row { align-items:stretch!important; }
  .feature-row__media { display:flex; align-self:stretch; }
  .feature-row__media img { height:100%; min-height:100%; width:100%; object-fit:cover; }
}

/* Features page — 選ばれる理由 cards */
.features-reason-card { height:100%; padding:1.5rem 1.25rem; border:1px solid #e4e7eb; background:#f7f8fa; transition:border-color .2s ease,box-shadow .2s ease; }
.features-reason-card__num { color:var(--brand-teal); opacity:.35; font-family:var(--font-display); }
.features-reason-card:hover { border-color:#cfd4da; box-shadow:0 4px 20px rgba(26,26,26,.06); }
@container mr (min-width:768px) {
  .features-reason-card { padding:2rem 1.75rem; }
}

/* TOP About — image + copy side by side */
.about-section { background:#fff; }
.about-section__inner { position:relative; z-index:1; }

/* TOP page layout (no Tailwind utilities) */
.mr-main { padding-top:0; }
.mr-heading { margin:0; font-family:var(--font-serif); font-weight:300; font-size:1.5rem; line-height:1.625; letter-spacing:.06em; color:var(--brand-charcoal); }
.mr-heading--sm { font-size:1.25rem; }
.mr-heading--lg { font-size:1.875rem; letter-spacing:.04em; line-height:1.25; }
.mr-heading--cta { font-size:1.25rem; }
.mr-heading--block { font-size:1.5rem; }
.mr-kicker { margin:0 0 1.25rem; color:var(--brand-teal); font-family:var(--font-display); font-size:.75rem; letter-spacing:.28em; text-transform:uppercase; }
.mr-kicker--sm { margin:0 0 .5rem; letter-spacing:.2em; }
.mr-rule { width:3rem; height:1px; margin:0 auto 1.5rem; background:var(--brand-gold); }
.mr-hero { position:relative; width:100%; aspect-ratio:1081/861; overflow:hidden; background:#1a1a1a; }
.mr-hero__slide img { width:100%; height:100%; object-fit:cover; display:block; }
.mr-hero__shade { position:absolute; inset:0; z-index:1; background:linear-gradient(105deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.18) 42%,transparent 68%); pointer-events:none; }
.mr-hero__copy { position:absolute; left:1.5rem; right:1.5rem; bottom:calc(1.75rem + 3.65rem); z-index:2; max-width:100%; margin:0; color:#fff; pointer-events:none; }
.mr-hero__title { margin:0; color:#fff; font-family:var(--font-serif); font-weight:600; font-size:clamp(1.75rem,4.2cqw,2.75rem); line-height:1.35; letter-spacing:.06em; text-shadow:0 2px 18px rgba(0,0,0,.28); }
.mr-hero__sub { margin:1rem 0 0; color:#fff; font-family:var(--font-serif); font-weight:400; font-size:1rem; line-height:1.6; letter-spacing:.04em; text-shadow:0 1px 12px rgba(0,0,0,.35); font-weight:bold; }
.mr-hero__cta { position:absolute; left:1.5rem; bottom:1.75rem; z-index:3; display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; opacity:0; transform:translateY(1rem); transition:opacity .8s ease .15s,transform .8s ease .15s; }
.mr-hero__cta.is-in { opacity:1; transform:none; }
.mr-hero__btn { display:inline-flex; align-items:center; justify-content:flex-start; gap:1.25rem; min-height:2.5rem; padding:.75rem .7rem .75rem 1.35rem; border:0; border-radius:0; font-family:var(--font-sans); font-size:.875rem; font-weight:bold; letter-spacing:.04em; line-height:1.3; text-decoration:none; white-space:nowrap; transition:opacity .25s ease,filter .25s ease; }
.mr-hero__btn:hover { opacity:.9; filter:brightness(1.05); }
.mr-hero__btn--dark { background:rgba(17,17,17,.9); color:#fff; }
.mr-hero__btn--light { background:rgba(255,255,255,.9); color:#111; }
.mr-hero__btn-icon { display:inline-flex; align-items:center; justify-content:center; width:13px; height:13px; margin-left:auto; border-radius:50%; flex-shrink:0; }
.mr-hero__btn--dark .mr-hero__btn-icon { background:#fff; color:#111; }
.mr-hero__btn--light .mr-hero__btn-icon { background:#111; color:#fff; }
@container mr (max-width:767px) {
  .mr-hero__copy { bottom:calc(1.25rem + 3rem); }
  .mr-hero__cta { bottom:1.25rem; }
}
@container mr (max-width:379px) {
  .mr-hero__copy { bottom:calc(1.25rem + 2.75rem); }
  .mr-hero__cta { bottom:1.25rem; }
}
@container mr (min-width:480px) and (max-width:767px) {
  .mr-hero__copy { bottom:calc(1.25rem + 3.25rem); }
  .mr-hero__cta { bottom:1.25rem; }
}
.mr-about { padding:5rem 0; background:#fff; }
.mr-about__row { display:flex; flex-direction:column; align-items:stretch; gap:2.5rem; }
.mr-about__media { width:100%; overflow:hidden; }
.mr-about__media img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; object-position:right center; }
.mr-about__body { width:100%; min-width:0; text-align:left; }
.mr-about .section-label { margin-bottom:1.25rem; }
.mr-about .mr-heading { margin-bottom:1.5rem; }
.mr-about .mr-rule--left { margin-left:0; margin-right:auto; }
.js-mr-about-title,
.js-mr-contact-title { word-break:keep-all; overflow-wrap:normal; }
.mr-heading__unit { display:inline-block; }
.js-mr-about-brand { color:var(--brand-teal); }
.mr-about__text { text-align:left; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-about__text p+p { margin-top:1.25rem; }
.mr-about__btns { display:flex; flex-direction:column; flex-wrap:wrap; align-items:flex-start; justify-content:flex-start; gap:.75rem; margin-top:2.5rem; }
.mr-works { padding:5rem 0; background:var(--brand-cream); }
.mr-works__head { display:flex; flex-direction:column; gap:1rem; margin-bottom:3.5rem; }
.mr-works__head .section-label { margin-bottom:.75rem; }
.mr-works__lead { margin:.75rem 0 0; max-width:28rem; color:var(--text-soft); font-family:var(--font-sans); font-weight:300; font-size:.875rem; }
.mr-works__viewport { overflow:hidden; }
.mr-works__track { display:flex; transition:transform .5s cubic-bezier(.23,1,.32,1); }
.mr-works__item { flex-shrink:0; padding:0 .75rem; box-sizing:border-box; }
.mr-works__card { display:block; color:inherit; text-decoration:none; cursor:pointer; }
.mr-works__photo { overflow:hidden; margin-bottom:1rem; }
.mr-works__photo img { display:block; width:100%; height:15rem; object-fit:cover; transition:transform .5s; }
.mr-works__card:hover img { transform:scale(1.05); }
.mr-works__label { display:block; margin-bottom:.5rem; color:var(--brand-teal); font-family:var(--font-display); font-size:.75rem; letter-spacing:.15em; }
.mr-works__card h3 { margin:0 0 .5rem; color:var(--text-heading); font-family:var(--font-sans); font-size:.875rem; font-weight:500; line-height:1.375; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.mr-works__card p { margin:0; color:var(--text-soft); font-family:var(--font-sans); font-weight:300; font-size:.75rem; line-height:1.625; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.mr-works__pager { display:flex; align-items:center; justify-content:center; gap:1rem; margin-top:2.5rem; }
.mr-works__arrow { display:flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; border:1px solid #d1d5db; background:#fff; color:var(--text-body); cursor:pointer; transition:border-color .2s,color .2s; }
.mr-works__arrow:hover { border-color:var(--text-heading); color:var(--text-heading); }
.mr-works__arrow:disabled { opacity:.3; cursor:not-allowed; }
.mr-works__dots { display:flex; gap:.375rem; }
.mr-works__dot { width:1rem; height:2px; padding:0; border:0; background:#d1d5db; cursor:pointer; transition:width .3s,background .3s; }
.mr-works__dot.is-on { width:2rem; background:var(--text-heading); }
.mr-features { padding:5rem 0; background:#fff; }
.mr-features__intro { margin-bottom:5rem; text-align:center; }
.mr-features__intro .section-label { margin-bottom:1.25rem; }
.mr-features__intro .mr-heading { margin-bottom:1.5rem; }
.mr-features__intro .mr-rule { margin-bottom:1.5rem; }
.features-intro { color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; }
.mr-features__rows { display:flex; flex-direction:column; gap:5rem; }
.mr-feature-row { display:flex; flex-direction:column; align-items:center; gap:2.5rem; }
.feature-row__media { width:100%; overflow:hidden; }
.feature-row__media img { display:block; width:100%; height:18rem; object-fit:cover; transition:transform .7s; }
.feature-row__media:hover img { transform:scale(1.05); }
.mr-feature-row__copy { width:100%; }
.mr-feature-row__numwrap { margin-bottom:1.5rem; }
.mr-feature-row__num { display:block; margin-bottom:.5rem; color:var(--border); font-family:var(--font-display); font-size:3.75rem; font-weight:300; line-height:1; }
.feature-block-heading { margin:0 0 1.25rem; color:var(--brand-charcoal); font-family:var(--font-serif); font-size:1.5rem; font-weight:300; line-height:1.625; }
.feature-block-desc { margin:0 0 1.75rem; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:1rem; line-height:2; }
.mr-feature-row__list { margin:0 0 2.25rem; padding:0; list-style:none; }
.mr-feature-row__list li+li { margin-top:.625rem; }
.feature-check { display:flex; align-items:flex-start; gap:.75rem; color:var(--text-ui); font-family:var(--font-sans); }
.mr-reno { padding:5rem 0; background:var(--brand-cream); }
.mr-reno__head { margin-bottom:3.5rem; }
.mr-reno__head-row { display:flex; flex-direction:column; gap:1.5rem; }
.mr-reno__lead { margin:0; max-width:20rem; color:var(--text-soft); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-reno__line { width:100%; height:1px; margin-top:2rem; background:var(--border); }
.mr-reno__types { display:grid; grid-template-columns:1fr; gap:1.5rem; align-items:stretch; }
.reno-type-main,
.reno-type-side-card { display:flex; flex-direction:column; height:100%; color:inherit; text-decoration:none; cursor:pointer; }
.reno-type-main-img { position:relative; overflow:hidden; flex:1; height:18rem; margin-bottom:1.25rem; }
.reno-type-main-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.reno-type-main:hover img,
.reno-type-side-card:hover img { transform:scale(1.05); }
.reno-type-side { display:flex; flex-direction:column; gap:1.5rem; height:100%; }
.reno-type-side-img { overflow:hidden; margin-bottom:1rem; }
.reno-type-side-img img { display:block; width:100%; height:11rem; object-fit:cover; transition:transform .7s; }
.mr-reno__meta { display:flex; align-items:flex-start; justify-content:space-between; }
.reno-type-main h3 { margin:0 0 .75rem; color:var(--text-heading); font-family:var(--font-serif); font-size:1.25rem; font-weight:300; }
.reno-type-main .mr-reno__meta > div:first-child > p:last-child { max-width:24rem; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.reno-type-side-card h3 { margin:0 0 .5rem; color:var(--text-heading); font-family:var(--font-serif); font-size:1rem; font-weight:300; }
.reno-type-side-card .mr-reno__meta > div:first-child > p:last-child { color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.75rem; line-height:2; }
.mr-reno__price { flex-shrink:0; margin-left:1rem; text-align:right; }
.mr-reno__price-label { margin:0 0 .25rem; color:var(--text-muted); font-family:var(--font-display); font-size:.75rem; }
.mr-reno__price-num { margin:0; color:var(--text-heading); font-family:var(--font-display); font-size:1.5rem; font-weight:300; }
.mr-reno__price-num.is-sm { font-size:1.25rem; }
.mr-reno__btns { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; margin-top:3.5rem; }
.mr-voice { padding:5rem 0; background:var(--brand-beige); }
.mr-voice__intro { margin-bottom:4rem; text-align:center; }
.mr-voice__intro .section-label { margin-bottom:1rem; }
.mr-voice__intro .mr-heading { margin-bottom:1.25rem; }
.mr-voice__lead { margin:0 auto; max-width:32rem; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-voice__grid { display:grid; grid-template-columns:1fr; gap:1.5rem; }
.mr-voice__card { position:relative; padding:2rem; background:#fff; }
.mr-voice .voice-stars { margin-bottom:.75rem; }
.mr-voice__card h3 { margin:0 0 1rem; color:var(--text-heading); font-family:var(--font-serif); font-size:.875rem; font-weight:500; line-height:1.625; }
.mr-voice__card .voice-text { margin:0; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-voice__more { margin-top:3rem; text-align:center; }
.mr-store { padding:5rem 0; background:#fff; }
.mr-store-wrap--cream { background:var(--brand-cream); }
.mr-store-wrap--cream .mr-store { background:transparent; }
.mr-store__grid { display:flex; flex-direction:column; align-items:flex-start; gap:3rem; }
.mr-store__mapwrap,
.mr-store__info { width:100%; }
.store-map { overflow:hidden; }
.mr-store__info .section-label { margin-bottom:1rem; }
.mr-store__info .mr-heading { margin-bottom:2rem; }
.mr-store__rows { display:flex; flex-direction:column; gap:1.25rem; }
.mr-store__row { display:flex; align-items:flex-start; gap:1rem; }
.mr-store__icon { display:flex; flex-shrink:0; align-items:center; justify-content:center; width:2rem; height:2rem; border:1px solid var(--brand-teal); }
.mr-store__key { margin:0 0 .25rem; color:var(--text-soft); font-family:var(--font-display); font-size:.75rem; letter-spacing:.05em; }
.mr-store__val { margin:0; color:var(--text-heading); font-family:var(--font-sans); font-size:.875rem; }
.mr-store__tel { color:var(--text-heading); font-family:var(--font-sans); font-size:.875rem; text-decoration:none; transition:color .2s; }
.mr-store__tel:hover { color:var(--brand-teal); }
.mr-store__note { margin:.125rem 0 0; color:var(--text-soft); font-family:var(--font-sans); font-weight:300; font-size:.75rem; }
.mr-store__btns { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.mr-contact { padding:5rem 0; background:var(--brand-cream); }
.mr-contact__inner { max-width:56rem; margin:0 auto; }
.mr-contact__intro { margin-bottom:3.5rem; text-align:center; }
.mr-contact__intro .mr-kicker { margin-bottom:1.5rem; }
.mr-contact__intro .mr-heading { margin-bottom:1.5rem; }
.mr-contact__intro .mr-rule { margin-bottom:2rem; }
.mr-contact__lead { margin:0 auto; max-width:36rem; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-contact__tel { display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-sans); font-weight:700; letter-spacing:.04em; line-height:1; }
.mr-contact__hours { color:var(--text-muted); font-family:var(--font-sans); font-size:11px; }
.mr-news { padding:4rem 0; background:#fff; }
.mr-news__head { display:flex; flex-direction:column; gap:1rem; margin-bottom:2rem; }
.mr-news__head .section-label { margin-bottom:.5rem; }
.mr-news__list { border-top:1px solid var(--border); }
.mr-news__item { display:flex; flex-direction:column; gap:.5rem; padding:1rem 0; border-bottom:1px solid var(--border); }
.mr-news__date { flex-shrink:0; color:var(--text-muted); font-family:var(--font-display); font-size:.75rem; letter-spacing:.1em; }
.mr-news__item p { margin:0; color:var(--text-ui); font-family:var(--font-sans); font-size:.875rem; cursor:pointer; transition:color .2s; }
.mr-news__item p:hover { color:var(--brand-teal); }
@container mr (min-width:640px) {
  .mr-heading { font-size:1.875rem; }
  .mr-heading--sm { font-size:1.5rem; }
  .mr-heading--lg { font-size:2.25rem; }
  .mr-heading--cta { font-size:1.5rem; }
  .mr-heading--block { font-size:1.875rem; }
  .mr-hero__copy { left:2.5rem; right:2.5rem; bottom:calc(2.5rem + 3.8rem); }
  .mr-hero__cta { left:2.5rem; bottom:2.5rem; }
  .mr-hero__title { font-size:clamp(2.1rem,3.6cqw,2.75rem); }
  .mr-hero__sub { font-size:1.0625rem; }
  .mr-about__btns { flex-direction:row; gap:1rem; }
  .mr-works__head { flex-direction:row; align-items:flex-end; justify-content:space-between; }
  .mr-reno__btns { flex-direction:row; }
  .mr-news__head { flex-direction:row; align-items:flex-end; justify-content:space-between; }
  .mr-news__item { flex-direction:row; align-items:center; gap:1.5rem; }
  .mr-page-hero { padding:6rem 0; }
  .mr-page-hero__title { font-size:2.25rem; }
  .mr-works-page__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mr-store-mini { grid-template-columns:1fr 1fr 1fr; }
}
@container mr (min-width:768px) {
  .mr-heading { font-size:1.65rem; }
  .mr-heading--lg { font-size:3rem; }
  .mr-hero__copy { left:3rem; right:3rem; bottom:calc(3rem + 4rem); }
  .mr-hero__cta { left:3rem; bottom:3rem; }
  .mr-hero__title { font-size:clamp(2.4rem,3.4cqw,3.15rem); }
  .mr-hero__sub { font-size:1.5rem; }
  .mr-hero__btn { min-height:3.15rem; padding:.85rem .8rem .85rem 1.5rem; font-size:.9375rem; }
  .mr-about,
  .mr-works,
  .mr-features,
  .mr-reno,
  .mr-voice { padding:8rem 0; }
  .mr-about__row { flex-direction:row; align-items:stretch; gap:3.5rem; }
  .mr-about__media { display:flex; align-self:stretch; width:44%; flex-shrink:0; }
  .mr-about__media img { height:100%; min-height:100%; width:100%; aspect-ratio:auto; object-fit:cover; }
  .mr-about__body { width:56%; flex:1; }
  .mr-store,
  .mr-contact { padding:8rem 0; }
  .mr-news { padding:5rem 0; }
  .mr-about__text { font-size:1rem; }
  .mr-works__photo img { height:17rem; }
  .mr-features__rows { gap:7rem; }
  .mr-feature-row { flex-direction:row; gap:4rem; }
  .mr-feature-row.is-reverse { flex-direction:row-reverse; }
  .feature-row__media { width:55%; }
  .mr-feature-row__copy { width:45%; }
  .feature-block-heading { font-size:1.875rem; }
  .features-intro { font-size:1rem; }
  .mr-reno__head-row { flex-direction:row; align-items:flex-end; justify-content:space-between; }
  .mr-reno__types { grid-template-columns:7fr 5fr; gap:2rem; }
  .reno-type-main h3 { font-size:1.5rem; }
  .reno-type-side-img img { height:12rem; }
  .mr-voice__grid { grid-template-columns:1fr 1fr 1fr; gap:2rem; }
  .mr-voice__card { padding:2.5rem; }
  .mr-store__grid { flex-direction:row; gap:4rem; }
  .mr-store__mapwrap,
  .mr-store__info { width:50%; }
  .mr-heading--cta { font-size:1.875rem; }
  .mr-heading--block { font-size:1.875rem; }
  .mr-sec { padding:7rem 0; }
  .mr-cta-band { padding:5rem 0; }
  .mr-page-hero { padding:9rem 0; }
  .mr-page-hero__title { font-size:3rem; }
  .mr-president { flex-direction:row; align-items:center; gap:4rem; }
  .mr-reasons { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .mr-split { flex-direction:row; gap:4rem; }
  .mr-split.is-reverse { flex-direction:row-reverse; }
  .mr-split__media,
  .mr-split__copy { width:50%; }
  .mr-split__media img { height:18rem; }
  .mr-flow { gap:2.5rem; }
  .mr-works-page__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
  .mr-touch { grid-template-columns:1fr 1fr; }
}
@container mr (min-width:1024px) {
  .mr-hero__copy { left:3.5rem; right:3.5rem; bottom:calc(3.25rem + 4.1rem); }
  .mr-hero__cta { left:3.5rem; bottom:3.25rem; }
  .mr-hero__title { font-size:3.35rem; }
}

/* Subpages (no Tailwind utilities) */
.mr-heading--block { margin-bottom:1rem; line-height:1.625; }
.mr-sec .mr-heading,
.mr-cta-band .mr-heading,
.about-intro-copy .mr-heading,
.president-copy-col .mr-heading,
.mr-split .mr-heading,
.mr-plan-intro .mr-heading { font-weight:600; }
.mr-kicker--tight { margin-bottom:.75rem; }
.mr-rule--left { margin-left:0; margin-right:auto; }
.mr-rule--sm { width:2.5rem; margin-bottom:1.25rem; }
.mr-sec { padding:5rem 0; }
.mr-sec--white { background:#fff; }
.mr-sec--cream { background:var(--brand-cream); }
.mr-sec--beige { background:var(--brand-beige); }
.mr-sec--plan { padding:4rem 0; }
.mr-sec--plan .mr-split { gap:2.5rem; }
.mr-sec--plan .mr-heading--block { margin-bottom:.5rem; }
.mr-sec--plan .mr-split__lead { margin-bottom:1.5rem; }
.mr-sec--plan .mr-split__media img { height:16rem; }
.mr-sec-head { margin-bottom:4rem; text-align:center; }
.mr-sec-head .mr-kicker { margin-bottom:1rem; }
.mr-sec-head .mr-heading { margin-bottom:1rem; }
.mr-sec--contact { padding:4rem 0; }
.mr-sec--store { padding:4rem 0; }
.mr-sec-head--touch { margin-bottom:3rem; }
.mr-sec-head--touch .mr-rule { margin-bottom:1.5rem; }
.mr-sec-head--touch .mr-sec-head__lead { margin-top:0; }
.mr-sec-head--form { margin-bottom:2.5rem; }
.mr-sec-head--form .mr-rule { margin-bottom:0; }
.mr-sec-head__lead { margin:1.5rem auto 0; max-width:32rem; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-page-hero { position:relative; display:flex; align-items:center; padding:4rem 0; }
.mr-page-hero__dim { position:absolute; inset:0; background:rgba(0,0,0,.5); }
.mr-page-hero__body { position:relative; z-index:1; }
.mr-page-hero__en { margin:0 0 1.25rem; color:rgba(255,255,255,.7); font-family:var(--font-display); font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; }
.mr-page-hero__title { margin:0 0 1rem; color:#fff; font-family:var(--font-serif); font-weight:600; font-size:1.5rem; line-height:1.25; letter-spacing:.06em; }
.mr-page-hero__sub { margin:0; max-width:36rem; color:rgba(255,255,255,.85); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.about-intro-copy .mr-heading { margin-bottom:2rem; }
.mr-prose { color:var(--text-body); font-family:var(--font-sans); font-weight:300; line-height:2; }
.mr-prose p+p { margin-top:1.25rem; }
.mr-prose--md { color:var(--text-ui); font-size:1.05rem; }
.mr-flow { margin:0 auto; padding:0; max-width:48rem; list-style:none; }
.mr-flow__item { display:flex; gap:1.5rem; }
.mr-flow__rail { display:flex; flex-direction:column; align-items:center; flex-shrink:0; }
.mr-flow__line { flex:1; width:1px; min-height:2rem; margin:.5rem 0; background:var(--border); }
.mr-flow__body { padding-bottom:2.5rem; }
.mr-flow__item:last-child .mr-flow__body { padding-bottom:0; }
.mr-flow__body h3 { margin:0 0 .5rem; color:var(--text-heading); font-family:var(--font-serif); font-size:1.125rem; font-weight:600; }
.mr-flow__body p { margin:0; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-faq { margin:0 auto; max-width:48rem; border-top:1px solid var(--border); }
.mr-faq__item { padding:2rem 0; border-bottom:1px solid var(--border); }
.mr-faq__q,
.mr-faq__a { display:flex; gap:1.25rem; }
.mr-faq__q { margin-bottom:1rem; }
.faq-q-label { flex-shrink:0; color:var(--brand-teal); font-family:var(--font-display); font-size:1.25rem; font-weight:600; line-height:1.3; }
.faq-a-label { flex-shrink:0; color:var(--text-muted); font-family:var(--font-display); font-size:1.25rem; font-weight:600; line-height:1.3; }
.faq-q { margin:0; color:var(--text-heading); font-family:var(--font-serif); font-size:1.125rem; font-weight:600; }
.faq-a { margin:0; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:1rem; line-height:2; }
.mr-cta-band { padding:4rem 0; background:var(--brand-beige); text-align:center; }
.mr-cta-band__inner { text-align:center; }
.mr-cta-band .mr-heading { margin-bottom:1rem; }
.mr-cta-band__lead { margin:0 0 2rem; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-president { display:flex; flex-direction:column; align-items:center; gap:3rem; }
.president-photo-col { width:100%; flex-shrink:0; }
.president-copy-col { width:100%; }
.president-copy-col .mr-heading { margin-bottom:1.5rem; }
.mr-president__sign { margin:2.5rem 0 0; text-align:right; color:var(--text-heading); font-family:var(--font-serif); }
.mr-president__sign .small { font-size:.875rem; }
.mr-reasons { display:grid; grid-template-columns:1fr; gap:2rem; }
.mr-reasons__card { display:flex; gap:1.25rem; }
.mr-reasons__num { flex-shrink:0; margin-top:.25rem; color:var(--brand-teal); opacity:.35; font-family:var(--font-display); font-size:2.25rem; font-weight:300; line-height:1; }
.mr-reasons__card h3 { margin:0 0 .75rem; color:var(--text-heading); font-family:var(--font-serif); font-size:1.125rem; font-weight:600; }
.mr-reasons__card p { margin:0; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-split { display:flex; flex-direction:column; align-items:center; gap:3rem; }
.mr-split__media,
.mr-split__copy { width:100%; }
.mr-split__media { overflow:hidden; }
.mr-split__media img { display:block; width:100%; height:18rem; object-fit:cover; }
.mr-split__lead { margin:0 0 1.75rem; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-checks { margin:0; padding:0; list-style:none; }
.mr-checks li { display:flex; gap:.75rem; }
.mr-checks li+li { margin-top:1rem; }
.mr-plan-intro { max-width:48rem; margin:0 auto; text-align:center; }
.mr-plan-intro .mr-kicker { margin-bottom:1.25rem; }
.mr-plan-intro .mr-heading { margin-bottom:1.5rem; }
.mr-plan-intro .mr-rule { margin-bottom:1.75rem; }
.mr-plan-intro__lead { margin:0; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-plan-meta { display:flex; gap:1.5rem; margin:0 0 1.25rem; }
.mr-plan-meta__label { margin:0 0 .25rem; color:var(--text-muted); font-family:var(--font-display); font-size:.75rem; }
.mr-plan-meta__val { margin:0; color:var(--text-heading); font-family:var(--font-display); font-size:1.25rem; font-weight:300; }
.mr-plan-meta__div { width:1px; background:var(--border); }
.mr-dots { margin:0; padding:0; list-style:none; }
.mr-dots li { display:flex; align-items:center; gap:.5rem; color:var(--text-ui); font-family:var(--font-sans); font-size:.875rem; }
.mr-dots li+li { margin-top:.5rem; }
.mr-dots li::before { content:""; flex-shrink:0; width:.25rem; height:.25rem; border-radius:50%; background:var(--brand-teal); }
.mr-works-page__filters { display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem; margin-bottom:3rem; }
.js-mr-works-filter { padding:.5rem 1.25rem; border:1px solid #ddd; background:#fff; color:var(--brand-gray); font-family:var(--font-sans); font-size:.875rem; letter-spacing:.05em; cursor:pointer; transition:background .2s,color .2s,border-color .2s; }
.js-mr-works-filter.is-on { border-color:var(--brand-teal); background:var(--brand-teal); color:#fff; }
.mr-works-page__grid { display:grid; grid-template-columns:minmax(0,1fr); gap:1.5rem; }
.mr-works-page__card { min-width:0; cursor:pointer; }
.mr-works-page__card.is-off { display:none; }
.mr-works-page__empty { margin:2.5rem 0 0; text-align:center; color:var(--text-soft); font-family:var(--font-sans); font-weight:300; font-size:.9375rem; line-height:1.8; }
.mr-works-page__photo { overflow:hidden; margin-bottom:1rem; }
.mr-works-page__photo img { display:block; width:100%; height:15rem; object-fit:cover; transition:transform .5s; }
.mr-works-page__card:hover img { transform:scale(1.05); }
.mr-works-page__meta { display:flex; align-items:center; gap:.5rem; margin-bottom:.5rem; }
.mr-works-page__tag { padding:.125rem .5rem; border:1px solid var(--brand-teal); color:var(--brand-teal); font-family:var(--font-sans); font-size:.75rem; }
.mr-works-page__area { color:var(--text-muted); font-family:var(--font-display); font-size:.75rem; }
.mr-works-page__card h3 { margin:0 0 .5rem; color:var(--text-heading); font-family:var(--font-serif); font-size:1rem; font-weight:600; line-height:1.375; overflow-wrap:anywhere; word-break:normal; }
.mr-works-page__stats { display:flex; gap:1rem; color:var(--text-soft); font-family:var(--font-display); font-size:.75rem; }
.mr-touch { display:grid; grid-template-columns:1fr; gap:1.5rem; max-width:42rem; margin:0 auto 3.5rem; }
.mr-touch__card { padding:2rem; border:1px solid var(--border); text-align:center; }
.mr-touch__card>.icon-line,
.mr-touch__card>.store-info-icon { display:block; margin:0 auto 1rem; }
.mr-touch__card h3 { margin:0 0 .75rem; color:var(--text-heading); font-family:var(--font-serif); font-size:1.125rem; font-weight:600; }
.mr-touch__card>p { margin:0 0 1.25rem; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:.875rem; line-height:2; }
.mr-touch__tel { display:flex; flex-direction:column; align-items:center; gap:.25rem; }
.mr-touch__tel .contact-phone-display { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-family:var(--font-sans); font-size:24px; font-weight:700; letter-spacing:.04em; line-height:1; }
.mr-touch__tel p { margin:0; color:var(--text-muted); font-family:var(--font-sans); font-size:.75rem; }
.mr-before { max-width:36rem; margin:0 auto; padding:2rem; border:1px solid var(--border-light); background:var(--brand-cream); }
.mr-before .mr-kicker { margin-bottom:1rem; }
.mr-before__title { margin:0 0 1rem; color:var(--text-heading); font-family:var(--font-serif); font-size:1rem; font-weight:600; }
.mr-before ul { margin:0; padding:0; list-style:none; }
.mr-before li { display:flex; align-items:flex-start; gap:.75rem; color:var(--text-body); font-family:var(--font-sans); font-weight:300; font-size:1rem; }
.mr-before li+li { margin-top:.75rem; }
.mr-form-wrap { max-width:42rem; margin:0 auto; }
.mr-store-mini { display:grid; grid-template-columns:1fr; gap:1.5rem; text-align:center; }
.mr-store-mini__item { display:flex; flex-direction:column; align-items:center; gap:.75rem; }
.mr-store-mini__label { margin:0 0 .25rem; color:var(--text-muted); font-family:var(--font-display); font-size:.75rem; }
.mr-store-mini__item p:not(.mr-store-mini__label) { margin:0; color:var(--text-ui); font-family:var(--font-sans); font-size:.875rem; line-height:1.625; }
.mr-store-mini__item a { color:var(--text-ui); font-family:var(--font-sans); font-size:.875rem; text-decoration:none; transition:color .2s; }
.mr-store-mini__item a:hover { color:var(--brand-teal); }
.mr-store-mini__item span { color:var(--text-muted); font-size:.75rem; }
.mr-staff { display:grid; grid-template-columns:minmax(0,1fr); gap:2.5rem; }
.mr-staff__unit { display:flex; flex-direction:column; gap:1.5rem; padding:1.75rem; background:var(--brand-cream); }
.mr-staff__photo { overflow:hidden; }
.mr-staff__photo img { display:block; width:100%; height:auto; aspect-ratio:470/594; object-fit:cover; object-position:center top; }
.mr-staff__name { margin-bottom:1rem; padding-bottom:1rem; border-bottom:1px solid var(--border); text-align:center; }
.mr-staff__job { display:inline-block; margin-bottom:.5rem; color:var(--brand-teal); font-family:var(--font-sans); font-size:.875rem; font-weight:500; letter-spacing:.04em; }
.mr-staff__title { margin:0; color:var(--text-heading); font-family:var(--font-serif); font-size:1.5rem; font-weight:600; line-height:1.4; }
.mr-staff__intro { margin:0 0 1.25rem; color:var(--text-heading); font-family:var(--font-sans); font-weight:300; font-size:.9rem; line-height:2; }
.mr-staff__detail { display:flex; flex-direction:column; gap:1rem; }
.mr-staff__detail dl { display:flex; flex-direction:column; gap:.35rem; margin:0; padding:1rem 1.25rem; background:#fff; }
.mr-staff__detail dt { flex-shrink:0; color:var(--brand-teal); font-family:var(--font-sans); font-size:.875rem; font-weight:600; letter-spacing:.04em; }
.mr-staff__detail dd { margin:0; color:var(--text-heading); font-family:var(--font-sans); font-weight:300; font-size:1rem; line-height:1.7; }
.mr-company { max-width:48rem; margin:0 auto; }
.mr-company__tbl { width:100%; border-collapse:collapse; border-top:1px solid var(--border); }
.mr-company__tbl th,
.mr-company__tbl td { padding:1.1rem 0; text-align:left; vertical-align:top; font-family:var(--font-sans); font-size:.9375rem; line-height:1.8; }
.mr-company__tbl th { display:block; width:auto; padding:1rem 0 .25rem; border-bottom:0; color:var(--brand-teal); font-weight:600; letter-spacing:.04em; white-space:normal; }
.mr-company__tbl td { display:block; padding:.25rem 0 1rem; border-bottom:1px solid var(--border); color:var(--text-heading); font-weight:300; }
.mr-company__tbl tr:first-child th { padding-top:1.1rem; }
.mr-company__tel { color:var(--text-heading); text-decoration:none; transition:color .2s; }
.mr-company__tel:hover { color:var(--brand-teal); }
@container mr (min-width:640px) {
  .mr-works-page__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mr-store-mini { grid-template-columns:1fr 1fr 1fr; }
  .mr-staff { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
  .mr-page-hero { padding:6rem 0; }
  .mr-page-hero__title { font-size:2.25rem; }
}
@container mr (min-width:768px) {
  .mr-president { flex-direction:row; align-items:center; gap:4rem; }
  .mr-reasons { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .mr-split { flex-direction:row; gap:4rem; }
  .mr-split.is-reverse { flex-direction:row-reverse; }
  .mr-split__media,
  .mr-split__copy { width:50%; }
  .mr-split__media img { height:18rem; }
  .feature-row.mr-split { align-items:stretch; }
  .feature-row.mr-split .feature-row__media { display:flex; align-self:stretch; width:50%; }
  .feature-row.mr-split .feature-row__media img { height:100%; min-height:100%; width:100%; object-fit:cover; }
  .mr-works-page__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
  .mr-touch { grid-template-columns:1fr 1fr; }
  .mr-staff { gap:2.5rem; }
  .mr-staff__unit { padding:2rem; }
  .mr-staff__title { font-size:1.75rem; }
  .mr-staff__detail dl { flex-direction:row; align-items:flex-start; gap:1.25rem; padding:1.15rem 1.5rem; }
  .mr-staff__detail dt { width:3.5rem; }
  .mr-staff__detail dd { flex:1; min-width:0; }
  .mr-company__tbl th,
  .mr-company__tbl td { display:table-cell; padding:1.25rem 0; border-bottom:1px solid var(--border); font-size:1rem; }
  .mr-company__tbl th { width:11rem; padding-right:2rem; white-space:nowrap; }
  .mr-company__tbl td { padding-left:0; }
  .mr-company__tbl tr:first-child th { padding-top:1.25rem; }
  .mr-page-hero { padding:9rem 0; }
  .mr-page-hero__title { font-size:3rem; }
  .mr-sec { padding:7rem 0; }
  .mr-sec--plan { padding:6rem 0; }
  .mr-sec--plan .mr-split__media img { height:20rem; }
  .mr-sec--contact { padding:6rem 0; }
  .mr-sec--store { padding:5rem 0; }
}
