/*
Theme Name: EIKI FUDOSAN Renewal
Description: Existing Keni theme child theme for the EIKI FUDOSAN renewal.
Template: keni62_wp_corp_150326
Version: 1.0.0
Text Domain: eiki-fudosan-renewal
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&display=swap');
:root {
  --green:#005444;
  --green-dark:#004536;
  --green-light:#008062;
  --lime:#42b300;
  --ink:#252525;
  --muted:#777;
  --line:#ddd;
  --cream:#f4efe3;
  --gray:#f2f3f1;
  --page:1200px
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  color:var(--ink);
  background:#fff;
  font-family:"Noto Sans JP",Meiryo,sans-serif;
  font-size:14px;
  line-height:1.7
}

a {
  color:inherit;
  text-decoration:none
}

img {
  display:block;
  max-width:100%
}

.skip-link {
  position:fixed;
  top:-80px;
  left:16px;
  z-index:1000;
  background:#fff;
  padding:8px 14px
}

.skip-link:focus {
  top:16px
}

.section {
  width:min(var(--page),calc(100% - 48px));
  margin:auto;
  padding:78px 0
}

.site-header {
  position:sticky;
  z-index:30;
  top:0;
  background:#fff;
  border-bottom:1px solid #eee
}

.header-inner {
  display:flex;
  align-items:center;
  width:min(1400px,calc(100% - 40px));
  height:74px;
  margin:auto
}

.brand {
  display:block;
  width:175px;
  flex:0 0 auto
}

.brand img {
  width:100%;
  height:auto
}

.main-nav {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:21px;
  margin-left:auto;
  font-size:11px;
  font-weight:600;
  white-space:nowrap
}

.main-nav a {
  padding:8px 0
}

.main-nav a:hover {
  color:var(--green)
}

.header-actions {
  display:flex;
  gap:5px;
  margin-left:22px;
  font-size:11px;
  font-weight:700;
  white-space:nowrap
}

.header-actions a {
  padding:9px 11px;
  color:#fff
}

.header-mail {
  background:var(--green)
}

.header-tel {
  background:var(--lime)
}

.menu-button,.mobile-nav {
  display:none
}

.hero {
  position:relative;
  line-height:0
}

.hero picture,.hero img {
  display:block;
  width:100%
}

.hero-contact {
  position:absolute;
  left:50%;
  bottom:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:170px;
  padding:15px 25px;
  transform:translateX(-50%);
  border-radius:50px;
  background:var(--green);
  color:#fff;
  font-size:14px;
  font-weight:700;
  line-height:1;
  box-shadow:0 4px 14px #003d3373
}

.hero-contact span {
  font-size:17px
}

.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:28px
}

.section-heading p {
  margin:0 0 4px;
  color:var(--green);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em
}

.section-heading h1 {
  margin:0;
  font-size:26px;
  line-height:1.25;
  letter-spacing:.08em
}

.section-heading h1:after {
  display:block;
  width:34px;
  height:2px;
  margin-top:12px;
  background:var(--green);
  content:""
}

.section-heading>a {
  font-size:11px;
  font-weight:600
}

.section-heading>a span {
  color:var(--green);
  font-size:17px;
  vertical-align:-1px
}

.property-grid {
  display:grid;
  gap:20px
}

.pickup-grid {
  grid-template-columns:repeat(3,1fr);
  max-width:950px;
  margin:auto
}

.property-card {
  border:1px solid #e0e0e0;
  background:#fff
}

.property-card>a {
  display:block
}

.property-card img {
  width:100%;
  aspect-ratio:1.55;
  object-fit:cover
}

.property-body {
  padding:11px 12px 13px
}

.property-body p {
  margin:0;
  color:#666;
  font-size:10px
}

.property-body h2 {
  margin:3px 0 6px;
  font-size:15px;
  font-weight:600
}

.property-body span {
  display:block;
  color:#777;
  font-size:10px
}

.section-cta {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  width:min(250px,100%);
  margin:28px auto 0;
  padding:12px 20px;
  background:var(--green);
  color:#fff;
  font-size:12px;
  font-weight:700
}

.section-cta span {
  font-size:24px;
  line-height:0
}

.listing {
  padding-top:55px;
  padding-bottom:28px
}

.four-cards {
  grid-template-columns:repeat(4,1fr);
  gap:14px
}

.compact img {
  aspect-ratio:1.42
}

.compact .property-body {
  padding:9px 10px 12px
}

.compact .property-body h2 {
  font-size:13px
}

.detail-button {
  display:block;
  margin-top:10px;
  padding:6px;
  border:1px solid #888;
  text-align:center;
  font-size:10px
}

.detail-button:hover {
  border-color:var(--green);
  background:var(--green);
  color:#fff
}

.rent-section {
  padding-bottom:75px
}

.sell-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  width:min(var(--page),calc(100% - 48px));
  margin:0 auto 74px;
  background:var(--cream)
}

.sell-main {
  padding:45px 55px
}

.sell-main>p {
  margin:0;
  color:var(--green);
  font-size:10px;
  font-weight:700;
  letter-spacing:.13em
}

.sell-main h1 {
  margin:4px 0 0;
  font-size:29px;
  letter-spacing:.1em
}

.title-line {
  display:block;
  width:120px;
  height:2px;
  margin:18px 0;
  background:#777
}

.sell-main a,.sell-main .form-pending {
  display:block;
  width:min(300px,100%);
  margin-top:10px;
  padding:10px 16px;
  text-align:center;
  color:#fff;
  font-size:12px;
  font-weight:700
}

.sell-main .form-pending {
  background:#87948f
}

.sell-mail {
  background:var(--green)
}

.sell-tel {
  background:var(--lime)
}

.sell-points {
  padding:45px 42px;
  border-left:1px solid #e4ddcf
}

.sell-points>p {
  margin:0 0 14px;
  color:var(--green);
  font-size:12px;
  font-weight:700
}

.sell-points ol {
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:sell
}

.sell-points li {
  position:relative;
  padding:10px 0 10px 30px;
  border-bottom:1px solid #d8d2c6;
  font-size:11px
}

.sell-points li:before {
  position:absolute;
  left:0;
  color:var(--green);
  font-weight:700;
  counter-increment:sell;
  content:"0" counter(sell)
}

.stories {
  padding-top:20px
}

.story-card {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:25px 30px;
  border-top:1px solid #bbb;
  border-bottom:1px solid #bbb
}

.story-card span {
  color:var(--green);
  font-size:11px;
  font-weight:700
}

.story-card strong {
  font-size:13px;
  font-weight:500
}

.story-card i {
  font-size:27px;
  font-style:normal
}

.company {
  display:grid;
  grid-template-columns:1fr 2.2fr;
  gap:60px;
  width:100%;
  padding:48px max(24px,calc((100% - var(--page))/2));
  background:var(--gray)
}

.company-logo {
  align-self:start;
  padding-top:8px
}

.company-logo img {
  width:210px
}

.company-details>div h1 {
  margin:0;
  font-size:18px
}

.company-details>div p {
  margin:3px 0 18px;
  color:#666;
  font-size:11px
}

.company dl {
  display:grid;
  grid-template-columns:1.2fr .7fr 1fr;
  gap:20px;
  margin:0
}

.company dl div {
  border-left:1px solid #c8c8c8;
  padding-left:14px
}

.company dt {
  margin-bottom:4px;
  color:#777;
  font-size:10px
}

.company dd {
  margin:0;
  font-size:11px
}

.company dd a {
  font-size:15px;
  font-weight:700
}

.site-footer {
  padding:20px max(24px,calc((100% - var(--page))/2));
  background:var(--green-dark);
  color:#fff;
  text-align:center
}

.site-footer nav {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 20px;
  font-size:10px
}

.site-footer p {
  margin:13px 0 0;
  color:#bad1ca;
  font-size:9px
}

.mobile-cta {
  display:none
}

@media(max-width:1050px) {
  .main-nav {
    gap:13px;
    font-size:10px
  }
  .header-actions {
    margin-left:13px
  }
  .header-actions a {
    padding:8px
  }
  .section {
    padding-top:62px
  }
  .sell-main {
    padding:38px
  }
  .sell-points {
    padding:38px 30px
  }
}

@media(max-width:760px) {
  body {
    padding-bottom:57px;
    font-size:13px
  }
  .site-header {
    position:sticky
  }
  .header-inner {
    width:calc(100% - 28px);
    height:60px
  }
  .brand {
    width:150px
  }
  .main-nav,.header-actions {
    display:none
  }
  .menu-button {
    display:grid;
    grid-template-columns:23px auto;
    grid-template-rows:repeat(3,2px);
    gap:5px 7px;
    align-items:center;
    margin-left:auto;
    padding:0;
    border:0;
    background:transparent;
    color:var(--ink)
  }
  .menu-button span {
    width:23px;
    height:1px;
    background:currentColor;
    transition:.2s
  }
  .menu-button b {
    grid-column:2;
    grid-row:1/4;
    font-size:8px;
    letter-spacing:.1em
  }
  .menu-button.is-open span:nth-child(1) {
    transform:translateY(7px) rotate(45deg)
  }
  .menu-button.is-open span:nth-child(2) {
    opacity:0
  }
  .menu-button.is-open span:nth-child(3) {
    transform:translateY(-7px) rotate(-45deg)
  }
  .mobile-nav {
    position:absolute;
    top:60px;
    left:0;
    display:grid;
    width:100%;
    max-height:0;
    padding:0 14px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 7px 16px #0002;
    transition:.25s
  }
  .mobile-nav.is-open {
    max-height:420px;
    padding:7px 14px 14px
  }
  .mobile-nav a {
    padding:10px 3px;
    border-bottom:1px solid #ececec;
    font-size:12px;
    font-weight:600
  }
  .hero-contact {
    bottom:14px;
    min-width:150px;
    padding:12px 19px;
    font-size:12px
  }
  .section {
    width:calc(100% - 34px);
    padding:50px 0
  }
  .section-heading {
    margin-bottom:20px
  }
  .section-heading h1 {
    font-size:22px
  }
  .pickup-grid,.four-cards {
    display:flex;
    gap:12px;
    overflow:auto;
    margin-right:calc((100vw - 100%)*-1);
    padding-right:17px;
    scroll-snap-type:x mandatory
  }
  .property-card {
    min-width:72%;
    scroll-snap-align:start
  }
  .four-cards .property-card {
    min-width:61%
  }
  .section-cta {
    margin-top:20px
  }
  .listing {
    padding-top:39px;
    padding-bottom:12px
  }
  .rent-section {
    padding-bottom:50px
  }
  .sell-section {
    grid-template-columns:1fr;
    width:100%;
    margin-bottom:50px
  }
  .sell-main {
    padding:35px 26px
  }
  .sell-main h1 {
    font-size:25px
  }
  .sell-points {
    padding:31px 26px;
    border-top:1px solid #e4ddcf;
    border-left:0
  }
  .stories {
    padding-top:0
  }
  .story-card {
    align-items:flex-start;
    padding:20px 8px;
    gap:14px
  }
  .story-card {
    display:grid;
    grid-template-columns:1fr auto
  }
  .story-card strong {
    grid-column:1;
    font-size:12px
  }
  .story-card i {
    grid-column:2;
    grid-row:1/3;
    align-self:center
  }
  .company {
    grid-template-columns:1fr;
    gap:24px;
    padding:35px 24px
  }
  .company-logo img {
    width:190px
  }
  .company dl {
    grid-template-columns:1fr;
    gap:11px
  }
  .company dl div {
    padding:0 0 11px;
    border-bottom:1px solid #ccc;
    border-left:0
  }
  .site-footer {
    padding:18px 20px
  }
  .site-footer nav {
    gap:7px 13px;
    font-size:9px
  }
  .mobile-cta {
    position:fixed;
    z-index:35;
    bottom:0;
    left:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
    height:57px;
    color:#fff;
    font-size:11px;
    font-weight:700;
    text-align:center
  }
  .mobile-cta a {
    display:grid;
    place-items:center;
    background:var(--green)
  }
  .mobile-cta a:last-child {
    background:var(--lime)
  }
}

.about-hero {
  display:grid;
  place-items:center;
  min-height:260px;
  background:var(--cream);
  text-align:center
}

.about-hero p,.about-kicker {
  margin:0;
  color:var(--green);
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em
}

.about-hero h1 {
  margin:9px 0 0;
  font-size:32px;
  letter-spacing:.1em
}

.about-lead {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:start
}

.about-lead h1 {
  margin:5px 0 0;
  font-size:28px;
  line-height:1.55;
  letter-spacing:.08em
}

.about-lead>div:last-child p {
  margin:0 0 14px;
  color:#555
}

.about-services {
  padding-top:8px
}

.about-service-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}

.about-service-grid article {
  padding:28px 25px;
  background:var(--gray)
}

.about-service-grid span {
  color:var(--green);
  font-size:12px;
  font-weight:700
}

.about-service-grid h2 {
  margin:23px 0 6px;
  font-size:18px
}

.about-service-grid p {
  margin:0;
  color:#666;
  font-size:12px
}

.about-contact {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:45px;
  width:min(var(--page),calc(100% - 48px));
  margin:0 auto 70px;
  padding:38px 44px;
  background:var(--cream)
}

.about-contact h1 {
  margin:0;
  font-size:24px;
  letter-spacing:.08em
}

.about-contact p {
  margin:8px 0 0;
  color:#666;
  font-size:12px
}

.about-contact a {
  display:block;
  width:270px;
  margin:8px 0;
  padding:10px 16px;
  text-align:center;
  color:#fff;
  font-size:12px;
  font-weight:700
}

@media(max-width:760px) {
  .about-hero {
    min-height:190px
  }
  .about-hero h1 {
    font-size:26px
  }
  .about-lead {
    grid-template-columns:1fr;
    gap:23px
  }
  .about-lead h1 {
    font-size:24px
  }
  .about-services {
    padding-top:0
  }
  .about-service-grid {
    grid-template-columns:1fr;
    gap:10px
  }
  .about-service-grid article {
    padding:22px
  }
  .about-contact {
    display:block;
    width:100%;
    margin-bottom:45px;
    padding:30px 24px
  }
  .about-contact h1 {
    font-size:21px
  }
  .about-contact a {
    width:100%;
    margin-top:12px
  }
  .about-contact a+a {
    margin-top:8px
  }
}

.property-search {
  position:relative;
  z-index:2;
  width:min(var(--page),calc(100% - 48px));
  margin:-24px auto 0;
  padding:0 0 64px
}

.property-search-inner {
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  background:#fff;
  box-shadow:0 9px 25px #003d3317
}

.search-intro {
  padding:42px 46px;
  background:var(--green);
  color:#fff
}

.search-intro>p:first-child {
  margin:0;
  color:#c6ded8;
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em
}

.search-intro h1 {
  margin:5px 0 0;
  font-size:26px;
  letter-spacing:.09em
}

.search-intro i {
  display:block;
  width:38px;
  height:2px;
  margin:18px 0;
  background:#d4e8e2
}

.search-intro>p:last-child {
  margin:0;
  font-size:12px;
  line-height:1.9
}

.search-panel {
  padding:0 38px 17px;
  border:1px solid #e1e7e5;
  border-left:0
}

.search-tabs {
  display:grid;
  grid-template-columns:1fr 1fr;
  margin:0 -38px 23px;
  border-bottom:1px solid #d9e1df
}

.search-tabs button {
  padding:15px;
  border:0;
  border-bottom:3px solid transparent;
  background:#f7f9f8;
  color:#68736f;
  font:700 15px inherit;
  cursor:pointer
}

.search-tabs button+button {
  border-left:1px solid #d9e1df
}

.search-tabs button.active {
  border-bottom-color:var(--green);
  background:#fff;
  color:var(--green)
}

.search-label {
  margin:0 0 10px;
  color:var(--green);
  font-size:12px;
  font-weight:700
}

.search-link-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px
}

.search-link-grid a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:8px 11px;
  border:1px solid #dce4e1;
  color:#333;
  font-size:11px;
  transition:.2s
}

.search-link-grid a:hover {
  border-color:var(--green);
  background:#f3f8f6
}

.search-link-grid b {
  color:var(--green);
  font-size:18px;
  line-height:1
}

.search-all {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  width:min(310px,100%);
  margin:18px auto 0;
  padding:11px 18px;
  background:var(--green);
  color:#fff;
  font-size:12px;
  font-weight:700
}

.search-all b {
  font-size:22px;
  line-height:.5
}

.search-note {
  margin:14px 0 0;
  color:#7b8582;
  font-size:9px;
  line-height:1.6;
  text-align:center
}

@media(max-width:760px) {
  .property-search {
    width:calc(100% - 28px);
    margin:-10px auto 0;
    padding-bottom:46px
  }
  .property-search-inner {
    grid-template-columns:1fr
  }
  .search-intro {
    padding:27px 25px
  }
  .search-intro h1 {
    font-size:23px
  }
  .search-intro i {
    margin:12px 0
  }
  .search-intro>p:last-child {
    font-size:11px
  }
  .search-panel {
    padding:0 17px 14px;
    border-left:1px solid #e1e7e5
  }
  .search-tabs {
    margin:0 -17px 18px
  }
  .search-tabs button {
    padding:13px;
    font-size:14px
  }
  .search-link-grid {
    gap:7px
  }
  .search-link-grid a {
    min-height:45px;
    padding:7px 9px;
    font-size:10px
  }
  .search-all {
    margin-top:15px;
    padding:10px;
    font-size:11px
  }
  .search-note {
    font-size:8px
  }
}

.search-link-grid a.is-unavailable,.search-all.is-unavailable {
  opacity:.58;
  cursor:not-allowed
}

.search-link-grid a.is-unavailable:hover {
  border-color:#dce4e1;
  background:#fff
}

/* Annotated renewal structure */
.renewal-page {
  font-size:17px;
  line-height:1.8
}

.renewal-page .main-nav {
  font-size:12px
}

.renewal-page .nav-priority {
  color:var(--green);
  font-weight:800
}

.renewal-page .header-actions {
  font-size:12px
}

.renewal-page .header-mail {
  background:#c89718;
  color:#1f2418
}

.renewal-page .header-tel {
  background:var(--green);
  color:#fff
}

.renewal-hero {
  min-height:560px;
  overflow:hidden;
  background:#0c473b
}

.renewal-hero picture,.renewal-hero picture img {
  height:100%;
  min-height:560px;
  object-fit:cover
}

.renewal-hero:after {
  position:absolute;
  inset:0;
  background:none;
  content:""
}

.hero-copy {
  position:absolute;
  z-index:1;
  top:50%;
  left:max(24px,calc((100% - 1200px)/2));
  width:min(560px,calc(100% - 48px));
  transform:translateY(-50%);
  color:#fff;
  line-height:1.55
}

.hero-copy>p:first-child {
  margin:0 0 8px;
  color:#e7d796;
  font-size:13px;
  font-weight:700;
  letter-spacing:.12em
}

.hero-copy h1 {
  margin:0;
  font-size:clamp(30px,3vw,48px);
  line-height:1.45;
  letter-spacing:.04em
}

.hero-lead {
  margin:18px 0 0;
  font-size:16px
}

.hero-cta {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:25px
}

.hero-cta a {
  padding:13px 18px;
  background:#c89718;
  color:#15231e;
  font-size:14px;
  font-weight:800
}

.hero-cta a+ a {
  border:1px solid #fff;
  background:transparent;
  color:#fff
}

.renewal-heading {
  max-width:800px;
  margin:0 auto 32px;
  text-align:center
}

.renewal-heading>p:first-child,.renewal-company>div>p {
  margin:0;
  color:var(--green);
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em
}

.renewal-heading h2,.renewal-company h2 {
  margin:3px 0 0;
  font-size:32px;
  line-height:1.4;
  letter-spacing:.06em
}

.renewal-heading>span,.renewal-company>div>span {
  display:block;
  width:42px;
  height:3px;
  margin:16px auto;
  background:#c89718
}

.renewal-heading>p:last-child {
  margin:0;
  color:#53605b;
  font-size:16px
}

.consult-section {
  padding-top:82px;
  padding-bottom:82px
}

.priority-cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}

.priority-card {
  position:relative;
  display:block;
  min-height:220px;
  padding:27px 25px;
  border:1px solid #ced9d4;
  background:#fff;
  transition:.2s
}

.priority-card:first-child {
  border-color:var(--green);
  background:#f3f7f5
}

.priority-card:hover {
  transform:translateY(-3px);
  box-shadow:0 8px 24px #003d331c
}

.priority-card b {
  display:inline-block;
  padding:3px 8px;
  background:#e7d796;
  color:#36443d;
  font-size:11px
}

.priority-card h3 {
  margin:18px 0 6px;
  font-size:23px;
  line-height:1.4
}

.priority-card p {
  margin:0;
  color:#52615b;
  font-size:15px
}

.priority-card>span {
  position:absolute;
  bottom:21px;
  left:25px;
  color:var(--green);
  font-size:14px;
  font-weight:800
}

.flow-section,.reading-section {
  background:#f2f5f3
}

.flow-inner {
  padding-top:78px;
  padding-bottom:78px
}

.flow-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin:0;
  padding:0;
  list-style:none;
  background:#cfd9d5
}

.flow-grid li {
  min-height:185px;
  padding:25px;
  background:#fff
}

.flow-grid b {
  color:#c89718;
  font-size:24px;
  line-height:1
}

.flow-grid h3 {
  margin:12px 0 5px;
  font-size:19px
}

.flow-grid p {
  margin:0;
  color:#56635d;
  font-size:14px
}

.flow-disclaimer {
  margin:15px 0 0;
  color:#67726d;
  font-size:12px;
  text-align:right
}

.about-pillars {
  padding-top:82px;
  padding-bottom:82px
}

.pillar-grid,.content-grid,.staff-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}

.pillar-grid article {
  padding:28px 25px;
  border-top:4px solid #c89718;
  background:#f7f8f7
}

.pillar-grid h3 {
  margin:0 0 8px;
  font-size:21px
}

.pillar-grid p {
  margin:0;
  color:#53615b;
  font-size:15px
}

.text-link {
  display:block;
  width:max-content;
  margin:27px auto 0;
  color:var(--green);
  font-size:14px;
  font-weight:800
}

.renewal-page .property-search {
  width:auto;
  margin:0;
  padding-top:82px;
  padding-bottom:82px;
  background:#fff;
  box-shadow:none
}

.engine-panel {
  width:min(850px,100%);
  margin:auto;
  border:1px solid #d4dfda;
  background:#fff
}

.engine-panel .search-tabs {
  margin:0;
  border-bottom:1px solid #d5dfda
}

.engine-body {
  padding:27px
}

.engine-body>p {
  margin:0 0 12px;
  color:var(--green);
  font-size:16px;
  font-weight:800
}

.engine-note {
  margin:0;
  padding:0 27px 22px;
  color:#64706b;
  font-size:13px;
  text-align:center
}

.content-section {
  padding-top:82px;
  padding-bottom:82px
}

.content-grid article,.staff-grid article {
  min-height:160px;
  padding:23px;
  border:1px solid #d7dfdb;
  background:#fff
}

.content-grid article>p,.staff-grid b {
  margin:0;
  color:#c89718;
  font-size:12px;
  font-weight:800
}

.content-grid h3,.staff-grid h3 {
  margin:10px 0 24px;
  font-size:20px;
  line-height:1.45
}

.content-grid span,.staff-grid p {
  color:#65716c;
  font-size:13px
}

.reading-section .section {
  padding-top:82px;
  padding-bottom:82px
}

.staff-section {
  padding-top:82px;
  padding-bottom:82px
}

.staff-grid article {
  background:#f6f8f7
}

.staff-grid {
  grid-template-columns: minmax(0, 380px);
  justify-content: center;
}

.staff-grid article {
  text-align: center;
}

.staff-grid h3 {
  margin-bottom:0
}

.staff-grid p {
  margin:5px 0 0
}

.renewal-company {
  display:block;
  width:100%;
  margin:0;
  padding:70px max(24px,calc((100% - var(--page))/2));
  background:#e6ece9
}

.company-inner {
  display:grid;
  grid-template-columns:.8fr 1.8fr;
  gap:70px
}

.renewal-company>div>p {
  color:var(--green)
}

.renewal-company>div>span {
  margin-left:0
}

.renewal-company dl {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  margin:0
}

.renewal-company dl div {
  padding:17px 18px;
  border-top:1px solid #c3ceca
}

.renewal-company dt {
  color:#5b6962;
  font-size:13px
}

.renewal-company dd {
  margin:4px 0 0;
  font-size:15px
}

.renewal-company dd a {
  color:var(--green);
  font-size:18px
}

.renewal-page .site-footer {
  padding-top:25px;
  padding-bottom:25px
}

.renewal-page .site-footer nav,.renewal-page .site-footer p {
  font-size:12px
}

@media(max-width:760px) {
  .renewal-page {
    font-size:16px
  }
  .renewal-page .mobile-nav a {
    font-size:13px
  }
  .renewal-hero {
    min-height:520px
  }
  .renewal-hero picture,.renewal-hero picture img {
    min-height:520px
  }
  .renewal-hero:after {
    background:none
  }
  .hero-copy {
    top:auto;
    bottom:28px;
    left:18px;
    width:calc(100% - 36px);
    transform:none
  }
  .hero-copy>p:first-child {
    font-size:11px
  }
  .hero-copy h1 {
    font-size:29px;
    line-height:1.45
  }
  .hero-lead {
    margin-top:12px;
    font-size:14px
  }
  .hero-cta {
    gap:8px;
    margin-top:17px
  }
  .hero-cta a {
    width:100%;
    padding:11px 13px;
    font-size:13px;
    text-align:center
  }
  .renewal-heading {
    margin-bottom:24px
  }
  .renewal-heading h2,.renewal-company h2 {
    font-size:26px
  }
  .renewal-heading>p:last-child {
    font-size:15px
  }
  .consult-section,.about-pillars,.content-section,.staff-section {
    padding-top:56px;
    padding-bottom:56px
  }
  .priority-cards,.pillar-grid,.content-grid,.staff-grid {
    grid-template-columns:1fr;
    gap:11px
  }
  .priority-card {
    min-height:185px
  }
  .flow-inner,.reading-section .section {
    padding-top:56px;
    padding-bottom:56px
  }
  .flow-grid {
    grid-template-columns:1fr 1fr
  }
  .flow-grid li {
    min-height:145px;
    padding:19px
  }
  .flow-grid h3 {
    margin-top:8px;
    font-size:17px
  }
  .flow-grid p {
    font-size:13px;
    line-height:1.6
  }
  .flow-disclaimer {
    text-align:left;
    font-size:11px
  }
  .renewal-page .property-search {
    padding-top:56px;
    padding-bottom:56px
  }
  .engine-body {
    padding:18px
  }
  .engine-panel .search-tabs button {
    font-size:15px
  }
  .engine-note {
    padding:0 18px 18px;
    font-size:12px
  }
  .content-grid h3 {
    margin-bottom:14px
  }
  .company-inner {
    grid-template-columns:1fr;
    gap:28px
  }
  .renewal-company {
    padding:55px 24px
  }
  .renewal-company dl {
    grid-template-columns:1fr
  }
  .renewal-company dl div {
    padding:14px 0
  }
  .renewal-page .mobile-cta a:first-child {
    background:#c89718;
    color:#17251f
  }
  .renewal-page .mobile-cta a:last-child {
    background:var(--green)
  }
}

/* KVは既存画像の文字を含め、加工せず比率のまま表示する */
.renewal-hero {
  min-height:0;
  overflow:visible;
  background:transparent
}

.renewal-hero picture,.renewal-hero picture img {
  height:auto;
  min-height:0;
  object-fit:initial
}

.renewal-hero:after {
  display:none
}

.renewal-hero .hero-copy {
  display:none
}

.renewal-heading h1 {
  margin:3px 0 0;
  font-size:32px;
  line-height:1.4;
  letter-spacing:.06em
}

.renewal-page .header-line {
  display:flex;
  align-items:center;
  gap:5px;
  padding:9px 11px;
  background:#06c755;
  color:#fff;
  font-size:12px;
  font-weight:800;
  line-height:1
}

.renewal-page .header-line>span {
  display:grid;
  place-items:center;
  width:24px;
  height:16px;
  border-radius:3px;
  background:#fff;
  color:#06c755;
  font-size:7px;
  letter-spacing:-.04em
}

.line-fab {
  position:fixed;
  z-index:31;
  right:24px;
  bottom:24px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 13px;
  border:0;
  border-radius:999px;
  background:#06c755;
  color:#fff;
  font:800 13px/1 "Noto Sans JP",Meiryo,sans-serif;
  box-shadow:0 7px 20px #003d3340;
  cursor:default
}

.line-fab:disabled {
  opacity:1
}

.line-fab-icon {
  display:grid;
  place-items:center;
  width:31px;
  height:22px;
  border-radius:4px;
  background:#fff;
  color:#06c755;
  font-size:8px;
  letter-spacing:-.06em
}

.line-fab small {
  font-size:9px;
  font-weight:700
}

@media(max-width:760px) {
  .renewal-hero {
    min-height:0
  }
  .renewal-hero picture,.renewal-hero picture img {
    min-height:0
  }
  .renewal-heading h1 {
    font-size:26px
  }
  .line-fab {
    right:13px;
    bottom:69px;
    padding:9px 11px;
    font-size:12px
  }
  .line-fab-icon {
    width:28px;
    height:20px
  }
}

/* 注釈版のヒーロー構成を維持し、着色グラデーションのみ除去 */
.renewal-hero {
  min-height:560px;
  overflow:hidden;
  background:#0c473b
}

.renewal-hero picture,.renewal-hero picture img {
  height:100%;
  min-height:560px;
  object-fit:cover
}

.renewal-hero:after {
  display:none
}

.renewal-hero .hero-copy {
  display:block
}

.contact-page {
  max-width:800px
}

.contact-form {
  display:grid;
  gap:18px;
  padding:34px;
  background:#f3f7f5
}

.contact-form label {
  display:grid;
  gap:7px;
  color:#31413a;
  font-size:14px;
  font-weight:800
}

.contact-form label>span {
  display:inline-block;
  width:max-content;
  padding:1px 6px;
  background:#c89718;
  color:#17251f;
  font-size:10px
}

.contact-form input,.contact-form textarea {
  width:100%;
  padding:11px 12px;
  border:1px solid #bdc9c3;
  background:#fff;
  color:#252525;
  font:400 16px/1.6 "Noto Sans JP",Meiryo,sans-serif
}

.contact-form textarea {
  resize:vertical
}

.contact-form p {
  margin:0;
  color:#53605b;
  font-size:13px
}

.contact-form button {
  padding:13px;
  border:0;
  background:#87948f;
  color:#fff;
  font:800 14px/1 "Noto Sans JP",Meiryo,sans-serif
}

.contact-form button:disabled {
  cursor:not-allowed
}

@media(max-width:760px) {
  .renewal-hero {
    min-height:520px
  }
  .renewal-hero picture,.renewal-hero picture img {
    min-height:520px
  }
  .contact-page {
    width:calc(100% - 34px)
  }
  .contact-form {
    gap:15px;
    padding:24px 18px
  }
}

.legal-strip {
  border-top:1px solid #edf0ee;
  background:#f6f8f7;
  color:#52615b
}

.legal-strip>div {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:2px 16px;
  width:min(1400px,calc(100% - 40px));
  margin:auto;
  padding:6px 0;
  font-size:10px;
  font-weight:700;
  line-height:1.55
}

.legal-strip span+span:before {
  margin-right:16px;
  color:#a1ada7;
  content:"｜"
}

@media(max-width:760px) {
  .legal-strip>div {
    display:block;
    width:calc(100% - 28px);
    padding:5px 0;
    font-size:9px;
    line-height:1.6
  }
  .legal-strip span {
    display:block
  }
  .legal-strip span+span:before {
    display:none
  }
}

/* LINE brand icon */
.renewal-page .header-line>img {
  width:20px;
  height:20px;
  flex:none;
  object-fit:contain
}

.line-fab-icon {
  display:block;
  width:26px;
  height:26px;
  flex:none;
  object-fit:contain;
  background:transparent!important
}

@media(max-width:760px) {
  .line-fab-icon {
    width:40px;
    height:40px
  }
}

/* 担当者カードを1名・中央配置にする */
.staff-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 380px) !important;
  justify-content: center !important;
}

.staff-grid article {
  width: 100%;
  margin: 0 auto;
  text-align: center !important;
}

.contact-form .wpcf7-form {
  display: grid;
  gap: 18px;
}

.contact-form label > .wpcf7-form-control-wrap {
  display: block;
  width: auto;
  padding: 0;
  background: transparent;
  color: inherit;
  font-size: inherit;
}

.contact-form label > .required-badge {
  display: inline-block;
  width: max-content;
  padding: 1px 6px;
  background: #c89718;
  color: #17251f;
  font-size: 10px;
}

.contact-form fieldset {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  border: 0;
  color: #31413a;
}

.contact-form legend {
  padding: 0;
  font-size: 14px;
  font-weight: 800;
}

.contact-form input[type="checkbox"] {
  width: auto;
  padding: 0;
  accent-color: #174b38;
}

.contact-form .wpcf7-list-item {
  margin: 0 16px 0 0;
}

.contact-form .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
}

.contact-form input[type="submit"] {
  width: 100%;
  padding: 13px;
  border: 0;
  background: #174b38;
  color: #fff;
  font: 800 14px/1 "Noto Sans JP", Meiryo, sans-serif;
  cursor: pointer;
}

.contact-form .wpcf7-response-output {
  margin: 0;
  padding: 11px 12px;
  font-size: 13px;
}

.contact-form .wpcf7-not-valid-tip {
  margin-top: 5px;
  color: #b3261e;
  font-size: 12px;
}

.contact-form .wpcf7-form > p {
  margin: 0 !important;
}

.contact-form .wpcf7-form-control-wrap,
.contact-form .wpcf7-form-control:not(input[type="checkbox"]) {
  display: block;
  width: 100% !important;
  box-sizing: border-box;
}

.contact-form .wpcf7-form fieldset {
  gap: 3px;
}

.contact-form .wpcf7-form fieldset p {
  margin: 0 !important;
}

/* Contact Form 7：入力欄を送信ボタンと同じ横幅へ揃える */
.contact-form .wpcf7,
.contact-form .wpcf7-form,
.contact-form .wpcf7-form > p,
.contact-form .wpcf7-form > fieldset,
.contact-form .wpcf7-form > p > label,
.contact-form .wpcf7-form-control-wrap {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.contact-form .wpcf7-form-control-wrap {
  display: block;
}

.contact-form .wpcf7-form-control:not(input[type="checkbox"]) {
  width: 100% !important;
  box-sizing: border-box;
}

/* 各フォーム行を「お問い合わせ種別」と同じ親幅に固定する */
.contact-form .wpcf7-form {
  display: block;
}

.contact-form .wpcf7-form > p,
.contact-form .wpcf7-form > fieldset:not(.hidden-fields-container) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 18px !important;
  box-sizing: border-box;
}

.contact-form .wpcf7-form > p > label,
.contact-form .wpcf7-form > p .wpcf7-form-control-wrap {
  display: block;
  width: 100% !important;
  max-width: none !important;
}

.contact-form .wpcf7-form > p input:not([type="checkbox"]),
.contact-form .wpcf7-form > p textarea {
  display: block;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}

.reading-grid h3 a {
  color: inherit;
  text-decoration: none;
}

.reading-grid .reading-link {
  display: inline-block;
  margin-top: 16px;
  color: #174b38;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.reading-article {
  width: min(860px, calc(100% - 34px));
  margin: 0 auto;
  padding-top: 76px;
  padding-bottom: 84px;
}

.reading-article-header {
  padding-bottom: 30px;
  border-bottom: 1px solid #d7dfdb;
}

.reading-article-header > p {
  margin: 0 0 10px;
  color: #174b38;
  font: 800 12px/1 "Noto Sans JP", Meiryo, sans-serif;
  letter-spacing: .16em;
}

.reading-article-header h1 {
  margin: 0;
  color: #17251f;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.45;
}

.reading-article-header time {
  display: block;
  margin-top: 18px;
  color: #69756f;
  font-size: 13px;
}

.reading-article-content {
  margin-top: 42px;
  color: #3b4741;
  font-size: 16px;
  line-height: 2;
}

.reading-article-content h2 {
  margin: 54px 0 20px;
  padding-left: 14px;
  border-left: 4px solid #c89718;
  color: #17251f;
  font-size: 25px;
  line-height: 1.5;
}

.reading-article-content h3 {
  margin: 36px 0 14px;
  color: #174b38;
  font-size: 20px;
  line-height: 1.6;
}

.reading-article-content p,
.reading-article-content ul,
.reading-article-content ol {
  margin: 0 0 24px;
}

.reading-article-content img {
  display: block;
  width: 100%;
  height: auto;
  margin: 36px 0;
}

.reading-article-cta {
  margin-top: 54px;
  padding: 30px;
  background: #edf4f0;
  text-align: center;
}

.reading-article-cta p {
  margin: 0 0 18px;
  color: #31413a;
  font-weight: 800;
}

.reading-article-cta div {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.reading-article-cta a {
  display: inline-block;
  padding: 13px 22px;
  background: #174b38;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}

.reading-article-cta a:last-child {
  background: #06c755;
}

.reading-back {
  margin: 30px 0 0;
  text-align: center;
}

.reading-back a {
  color: #174b38;
  font-weight: 800;
}

@media (max-width: 760px) {
  .reading-article {
    padding-top: 48px;
    padding-bottom: 64px;
  }

  .reading-article-content {
    margin-top: 32px;
    font-size: 15px;
    line-height: 1.9;
  }

  .reading-article-content h2 {
    margin-top: 42px;
    font-size: 22px;
  }

  .reading-article-cta {
    padding: 24px 18px;
  }

  .reading-article-cta div {
    display: grid;
    grid-template-columns: 1fr;
  }
}

.reading-eyecatch {
  margin: 34px 0 0;
}

.reading-eyecatch img {
  display: block;
  width: 100%;
  height: auto;
}

.reading-grid h3 a {
  color: inherit;
  text-decoration: none;
}

.reading-grid .reading-link {
  display: inline-block;
  margin-top: 16px;
  color: #174b38;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.reading-grid .reading-card {
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

.reading-thumbnail {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.reading-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.reading-grid .reading-card > p {
  margin: 20px 23px 0;
}

.reading-grid .reading-card h3 {
  margin: 10px 23px 0;
}

.reading-grid .reading-card .reading-link {
  margin: 16px 23px 23px;
}

/* 読みもの個別記事 */
.reading-article {
  width: min(860px, calc(100% - 34px));
  margin: 0 auto;
  padding-top: 76px;
  padding-bottom: 84px;
}

.reading-article-header {
  padding-bottom: 30px;
  border-bottom: 1px solid #d7dfdb;
}

.reading-article-header > p {
  margin: 0 0 10px;
  color: #174b38;
  font: 800 12px/1 "Noto Sans JP", Meiryo, sans-serif;
  letter-spacing: .16em;
}

.reading-article-header h1 {
  margin: 0;
  color: #17251f;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.45;
}

.reading-article-header time {
  display: block;
  margin-top: 18px;
  color: #69756f;
  font-size: 13px;
}

.reading-eyecatch {
  margin: 34px 0 0;
}

.reading-eyecatch img {
  display: block;
  width: 100%;
  height: auto;
}

.reading-article-content {
  margin-top: 42px;
  color: #3b4741;
  font-size: 16px;
  line-height: 2;
}

.reading-article-content h2 {
  margin: 54px 0 20px;
  padding-left: 14px;
  border-left: 4px solid #c89718;
  color: #17251f;
  font-size: 25px;
  line-height: 1.5;
}

.reading-article-content h3 {
  margin: 36px 0 14px;
  color: #174b38;
  font-size: 20px;
  line-height: 1.6;
}

.reading-article-content p,
.reading-article-content ul,
.reading-article-content ol {
  margin: 0 0 24px;
}

.reading-article-content img {
  display: block;
  width: 100%;
  height: auto;
  margin: 36px 0;
}

.reading-article-cta {
  margin-top: 54px;
  padding: 30px;
  background: #edf4f0;
  text-align: center;
}

.reading-article-cta p {
  margin: 0 0 18px;
  color: #31413a;
  font-weight: 800;
}

.reading-article-cta div {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.reading-article-cta a {
  display: inline-block;
  padding: 13px 22px;
  background: #174b38;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}

.reading-article-cta a:last-child {
  background: #06c755;
}

.reading-back {
  margin: 30px 0 0;
  text-align: center;
}

.reading-back a {
  color: #174b38;
  font-weight: 800;
}

@media (max-width: 760px) {
  .reading-article {
    padding-top: 48px;
    padding-bottom: 64px;
  }

  .reading-article-content {
    margin-top: 32px;
    font-size: 15px;
    line-height: 1.9;
  }

  .reading-article-content h2 {
    margin-top: 42px;
    font-size: 22px;
  }

  .reading-article-cta {
    padding: 24px 18px;
  }

  .reading-article-cta div {
    display: grid;
    grid-template-columns: 1fr;
  }
}