@charset "utf-8";

.footer-contact-photo {
  aspect-ratio: 43 / 20;
  bottom: auto;
  height: auto;
  max-width: 697px;
  overflow: hidden;
  top: 50%;
  transform: translateY(-50%);
  width: 43%;
}

.footer-contact-photo-image {
  object-fit: cover;
  object-position: center;
}

.footer-contact-body {
  max-width: 710px;
  padding-left: max(24px, calc((100% - 1100px) / 2));
  width: 57%;
}

.footer-contact-button,
.site-footer-link,
.site-footer-small-link,
.site-footer-top,
.site-footer-phone {
  text-decoration: none;
}

.footer-contact-button {
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.footer-contact-button:hover {
  color: rgb(255, 255, 255);
  text-decoration: none;
  opacity: 0.86;
  transform: translateY(-2px);
}

.footer-contact-button-secondary:hover {
  color: rgb(79, 74, 66);
}

.site-footer-bottom {
  border-top: 1px solid #454b40;
}

.site-footer-main,
.site-footer-bottom {
  margin-left: auto;
  margin-right: auto;
  max-width: 1180px;
}

.site-footer-logo {
  display: block;
  height: auto;
  width: 138px;
}

.site-footer-brand {
  align-items: center;
  display: flex;
  gap: 14px;
}

.site-footer-brand-copy {
  display: flex;
  flex-direction: column;
}

.site-footer-name {
  color: rgb(255, 255, 255);
  font-family: "Noto Serif JP", serif;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.14em;
  line-height: 1.1;
  margin: 0;
}

.site-footer-sub {
  color: rgb(201, 199, 194);
  font-size: 11px;
  letter-spacing: 0.3em;
  line-height: 1.4;
  margin: 7px 0 0;
}

/* Keep the CTA background full-width, but align its content to the 1100px site grid. */
@media (min-width:768px){
  .footer-contact-body{align-self:center;margin:0;max-width:none;padding:52px 40px 52px 0;width:auto}
  .footer-contact-photo{border-bottom-left-radius:162px;border-top-left-radius:162px;height:100%;max-width:none;position:relative;right:auto;top:auto;transform:none;width:auto}
}

@media (min-width:961px){.footer-contact-body{width:max-content}.footer-contact-title,.footer-contact-actions,.footer-contact-button{white-space:nowrap}.footer-contact-actions{display:flex}.footer-contact-photo{min-width:0;width:100%}}

@media (min-width: 768px) {
  .footer-contact-actions {
    max-width: 100%;
  }

  .footer-contact-button {
    flex: 1 1 0;
    min-width: 0;
  }

  .site-footer-main,
  .site-footer-bottom,
  .site-footer-policy-links {
    display: flex;
  }

  .site-footer {
    padding: 38px 5% 26px;
  }

  .site-footer-info,
  .site-footer-nav,
  .site-footer-social {
    margin-top: 0;
  }

  .site-footer-small-link,
  .site-footer-copyright,
  .site-footer-top {
    display: inline;
    margin: 0 22px 0 0;
  }

  .site-footer-top {
    margin: 0;
  }
}

@media (min-width: 768px) and (max-width: 960px) {
  .footer-contact-actions {
    align-items: stretch;
    flex-direction: column;
    max-width: 270px;
  }

  .footer-contact-button {
    flex: 0 0 auto;
    width: 100%;
  }
}

@media (max-width: 767px) {
  .footer-contact-photo {
    aspect-ratio: 43 / 20;
    bottom: auto;
    height: auto;
    margin-left: auto;
    max-width: none;
    position: relative;
    right: 0;
    top: auto;
    transform: none;
    width: calc(100% - 22px);
  }

  .footer-contact-body {
    max-width: none;
    padding-left: 22px;
    width: 100%;
  }
}

*{box-sizing:border-box}

.footer-contact{background-color:rgb(247,243,236);overflow:hidden;position:relative}

.footer-contact-photo{border-top-left-radius:58% 68%;border-bottom-left-radius:58% 68%;bottom:0px;height:100%;overflow:hidden;position:absolute;right:0px;top:0px;width:43%}

.footer-contact-photo-image{bottom:0px;height:100%;left:0px;position:absolute;right:0px;top:0px;object-fit:cover;object-position:center;width:100%}

.footer-contact-title{overflow-wrap:anywhere;word-break:keep-all;color:rgb(38,56,42);font-family:"Noto Serif JP",serif;font-size:30px;font-weight:500;letter-spacing:0.05em;line-height:1.65;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;margin:0px}

.footer-contact-actions{align-items:center;display:flex;gap:20px;margin-top:28px}

.footer-contact-button{align-items:center;background-color:rgb(38,56,42);border-width:1px;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-style:solid;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-color:rgb(38,56,42);border-top-color:rgb(38,56,42);border-right-color:rgb(38,56,42);border-bottom-color:rgb(38,56,42);border-left-color:rgb(38,56,42);border-top:1px solid rgb(38,56,42);border-right:1px solid rgb(38,56,42);border-bottom:1px solid rgb(38,56,42);border-left:1px solid rgb(38,56,42);border-image:none;border-radius:0px;color:rgb(255,255,255);display:inline-flex;font-size:14px;font-weight:600;justify-content:center;letter-spacing:0.05em;min-width:220px;padding-top:16px;padding-right:22px;padding-bottom:16px;padding-left:22px;padding:16px 22px}

.footer-contact-button-secondary{background-color:transparent;border-color:rgb(100,91,76);border-top-color:rgb(100,91,76);border-right-color:rgb(100,91,76);border-bottom-color:rgb(100,91,76);border-left-color:rgb(100,91,76);color:rgb(79,74,66)}

@media (min-width:768px){.footer-contact-photo{aspect-ratio:auto;bottom:0;height:auto;top:0;transform:none}.footer-contact-photo-image{height:100%}}

@media (min-width:961px){.footer-contact-body{box-sizing:border-box;margin-left:auto;margin-right:auto;max-width:1100px;padding-left:0;width:100%}.footer-contact-photo{border-bottom-left-radius:162px;border-top-left-radius:162px}}

@media (max-width:767px){.site-footer-main{display:block}.site-footer-bottom{display:block}.site-footer-policy-links{display:block}.footer-contact-photo{border-bottom-left-radius:0px;border-top-left-radius:58% 32%;height:230px;margin-left:22px;position:relative;right:auto;top:auto;width:calc(100% - 22px)}.footer-contact-body{padding-top:46px;padding-right:22px;padding-bottom:34px;padding-left:22px;padding:46px 22px 34px;width:100%}.footer-contact-title{font-size:24px;line-height:1.65}.footer-contact-actions{align-items:flex-start;flex-direction:column;gap:12px;margin-top:24px}.footer-contact-button{min-width:0px;width:100%}.site-footer{padding-top:36px;padding-right:22px;padding-bottom:24px;padding-left:22px;padding:36px 22px 24px}.site-footer-info{margin-top:26px}.site-footer-nav{margin-top:26px}.site-footer-social{margin-top:26px}.site-footer-copyright{display:block;margin-top:10px;margin-right:0px;margin-bottom:0px;margin-left:0px;margin:10px 0px 0px}.site-footer-top{display:block;margin-top:10px;margin-right:0px;margin-bottom:0px;margin-left:0px;margin:10px 0px 0px}}

*{box-sizing:border-box}

*{box-sizing:border-box}

/* CTA desktop layout: two flex columns, with independently aligned content and image. */
@media (min-width:768px){
  .footer-contact{align-items:stretch;display:flex;min-height:324px}
  .footer-contact > .footer-contact-body{align-items:stretch;display:flex;flex:0 0 50%;margin:0;max-width:none;padding:0;width:auto}
  .footer-contact > .footer-contact-body > .footer-contact-content{align-self:center;margin-left:auto;padding:52px 16px 52px 24px;width:100%}
  .footer-contact > .footer-contact-photo{border-bottom-left-radius:162px;border-top-left-radius:162px;flex:0 0 calc(50% - 16px);height:auto;margin-left:16px;max-width:none;min-width:0;position:relative;right:auto;top:auto;transform:none;width:auto}
  .footer-contact > .footer-contact-body .footer-contact-title{max-width:none;white-space:normal;width:auto}
  .footer-contact > .footer-contact-body .footer-contact-actions{display:flex;flex-wrap:nowrap}
  .footer-contact > .footer-contact-body .footer-contact-button{flex:0 0 auto;white-space:nowrap}
}

@media (min-width:1100px){
  .footer-contact > .footer-contact-body > .footer-contact-content{padding-left:0;padding-right:0;width:550px}
}

@media (min-width:768px) and (max-width:960px){
  .footer-contact > .footer-contact-body .footer-contact-actions{align-items:stretch;flex-direction:column;max-width:270px}
  .footer-contact > .footer-contact-body .footer-contact-button{width:100%}
}

@media (max-width:767px){
  .footer-contact{display:block}
  .footer-contact > .footer-contact-body{padding:0;width:100%}
  .footer-contact > .footer-contact-body > .footer-contact-content{padding:46px 22px 34px}
  .footer-contact > .footer-contact-photo{border-bottom-left-radius:0;border-top-left-radius:58% 32%;height:230px;margin-left:22px;position:relative;right:auto;top:auto;width:calc(100% - 22px)}
}

/* CTA keeps the text column and full-bleed image column independent. */
@media (min-width:768px){
  .footer-contact{align-items:stretch;display:flex;min-height:324px}
  .footer-contact > .footer-contact-body{align-items:stretch;display:flex;flex:0 0 50%;margin:0;max-width:none;padding:0;width:auto}
  .footer-contact-content{align-self:center;margin-left:auto;padding:52px 16px 52px 24px;width:100%}
  .footer-contact > .footer-contact-photo{border-bottom-left-radius:162px;border-top-left-radius:162px;flex:0 0 calc(50% - 16px);height:auto;margin-left:16px;max-width:none;min-width:0;position:relative;right:auto;top:auto;transform:none;width:auto}
  .footer-contact-title{max-width:none;white-space:nowrap;width:auto}
  .footer-contact-actions{display:flex;flex-wrap:nowrap}
  .footer-contact-button{flex:0 0 auto;white-space:nowrap}
}

@media (min-width:1100px){
  .footer-contact-content{padding-left:0;padding-right:0;width:550px}
}

@media (min-width:768px) and (max-width:960px){
  .footer-contact-actions{align-items:stretch;flex-direction:column;max-width:270px}
  .footer-contact-button{width:100%}
}

@media (max-width:767px){
  .footer-contact{display:block}
  .footer-contact > .footer-contact-body{padding:0;width:100%}
  .footer-contact-content{padding:46px 22px 34px}
  .footer-contact-title{white-space:normal;width:auto}
  .footer-contact > .footer-contact-photo{border-bottom-left-radius:0;border-top-left-radius:58% 32%;height:230px;margin-left:22px;position:relative;right:auto;top:auto;width:calc(100% - 22px)}
}

*{box-sizing:border-box}

/* The CTA text aligns to the shared 1100px grid while the image reaches the viewport edge. */
@media (min-width:768px){
  .footer-contact-body{align-self:center;margin:0;max-width:none;padding:52px 40px 52px max(24px,calc((100vw - 1100px) / 2));width:100%}
  .footer-contact-photo{border-bottom-left-radius:162px;border-top-left-radius:162px;height:100%;max-width:none;position:relative;right:auto;top:auto;transform:none;width:100%}
  .footer-contact-title{max-width:100%;white-space:normal;width:fit-content}
  .footer-contact-actions{display:flex;flex-wrap:nowrap}
  .footer-contact-button{flex:0 0 auto;white-space:nowrap}
}

@media (min-width:961px){
  .footer-contact-body{max-width:598px;width:100%}
}

/* The layout column and the 1100px-aligned CTA content are separate elements. */
.footer-contact-content{box-sizing:border-box;width:100%}

@media (min-width:768px){
  .footer-contact-body{align-items:stretch;display:flex;margin:0;max-width:none;padding:0;width:auto}
  .footer-contact-content{align-self:center;padding:52px 40px;width:100%}
  .footer-contact-photo{border-bottom-left-radius:162px;border-top-left-radius:162px;height:100%;max-width:none;position:relative;right:auto;top:auto;transform:none;width:auto}
  .footer-contact-title{max-width:100%;white-space:normal;width:fit-content}
  .footer-contact-actions{display:flex;flex-wrap:nowrap}
  .footer-contact-button{flex:0 0 auto;white-space:nowrap}
}

@media (min-width:1100px){
  .footer-contact-content{padding-left:max(24px,calc((100vw - 1100px) / 2));padding-right:35px}
}

@media (max-width:767px){
  .footer-contact-body{padding:0;width:100%}
  .footer-contact-content{padding:46px 22px 34px}
}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

/* CTA desktop layout: two flex columns, with independently aligned content and image. */
@media (min-width:768px){
  .footer-contact{align-items:stretch;display:flex;min-height:324px}
  .footer-contact > .footer-contact-body{align-items:stretch;display:flex;flex:0 0 50%;margin:0;max-width:none;padding:0;width:auto}
  .footer-contact > .footer-contact-body > .footer-contact-content{align-self:center;margin-left:auto;padding:52px 16px 52px 24px;width:100%}
  .footer-contact > .footer-contact-photo{border-bottom-left-radius:162px;border-top-left-radius:162px;flex:0 0 calc(50% - 16px);height:auto;margin-left:16px;max-width:none;min-width:0;position:relative;right:auto;top:auto;transform:none;width:auto}
  .footer-contact > .footer-contact-body .footer-contact-title{max-width:none;white-space:normal;width:auto}
  .footer-contact > .footer-contact-body .footer-contact-actions{display:flex;flex-wrap:nowrap}
  .footer-contact > .footer-contact-body .footer-contact-button{flex:0 0 auto;white-space:nowrap}
}

@media (min-width:1100px){
  .footer-contact > .footer-contact-body > .footer-contact-content{padding-left:0;padding-right:0;width:550px}
}

@media (min-width:768px) and (max-width:960px){
  .footer-contact > .footer-contact-body .footer-contact-actions{align-items:stretch;flex-direction:column;max-width:270px}
  .footer-contact > .footer-contact-body .footer-contact-button{width:100%}
}

@media (max-width:767px){
  .footer-contact{display:block}
  .footer-contact > .footer-contact-body{padding:0;width:100%}
  .footer-contact > .footer-contact-body > .footer-contact-content{padding:46px 22px 34px}
  .footer-contact > .footer-contact-photo{border-bottom-left-radius:0;border-top-left-radius:58% 32%;height:230px;margin-left:22px;position:relative;right:auto;top:auto;width:calc(100% - 22px)}
}

/* Final mobile footer layout: stack the existing information blocks vertically. */
@media (max-width:767px){
  .footer-contact > .footer-contact-body > .footer-contact-content{padding:40px 24px 32px}
  .footer-contact-title{font-size:22px}
  .footer-contact > .footer-contact-photo{border-bottom-left-radius:135px 50%;border-top-left-radius:135px 50%;height:270px;margin-left:0;width:100%}
  .site-footer{padding:32px 24px 24px}
  .site-footer-main{align-items:flex-start;display:flex;flex-direction:column;gap:28px}
  .site-footer-info,.site-footer-nav,.site-footer-social{margin-top:0}
  .site-footer-bottom{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-top:32px}
  .site-footer-policy-links{display:block}
  .site-footer-copyright,.site-footer-top{display:block;margin:0}
}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}

*{box-sizing:border-box}
