.c-under-mv {
	padding-top: 19rem;
}
@media screen and (max-width: 767px) {
	.c-under-mv {
		padding-top: 10rem;
	}
}
.c-under-mv__content {
	display: block;
}

.p-contact {
	position: relative;
	padding-bottom: 12rem;
}
.p-contact__content {
	width: 91.4rem;
	max-width: 100%;
	margin: auto auto auto;
}
.p-contact__tbl .inn {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: start;
	    -ms-flex-align: start;
	        align-items: flex-start;
	margin-top: 3rem;
}
@media screen and (max-width: 767px) {
	.p-contact__tbl .inn {
		display: block;
		margin-top: 4rem;
	}
}
.p-contact__tbl .inn:first-of-type {
	margin-top: 0;
}
.p-contact__tbl .inn dt {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: 1rem;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 130%; /* 2.34rem */
	width: 23.4rem;
	-ms-flex-negative: 0;
	    flex-shrink: 0;
	padding-top: 1.8rem;
}
@media screen and (max-width: 767px) {
	.p-contact__tbl .inn dt {
		padding-top: 0;
		margin-bottom: 2rem;
		font-size: 3rem;
		width: 100%;
	}
}
.p-contact__tbl .inn dt .hissu {
	color: #ffffff;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 130%; /* 1.56rem */
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	padding: 0.1rem 1rem 0.2rem;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	background: #A83838;
}
@media screen and (max-width: 767px) {
	.p-contact__tbl .inn dt .hissu {
		font-size: 2.4rem;
		padding-top: 0;
		padding-bottom: 0.3rem;
	}
}
.p-contact__tbl .inn dt .hissu.-nini {
	background: #293235;
}
.p-contact__tbl .inn dd {
	-webkit-box-flex: 1;
	    -ms-flex-positive: 1;
	        flex-grow: 1;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 170%; /* 2.72rem */
}
@media screen and (max-width: 767px) {
	.p-contact__tbl .inn dd {
		font-size: 3rem;
	}
}
.p-contact__tbl .input {
	border-radius: 0.3rem;
	border: 1px solid #C4C4C4;
	background-color: #FFF;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 130%; /* 2.08rem */
	padding: 2rem 3.5rem;
	width: 100%;
}
@media screen and (max-width: 767px) {
	.p-contact__tbl .input {
		border-radius: 0.8rem;
		font-size: max(3rem, 16px);
		padding: 2.5rem 3rem;
	}
}
.p-contact__tbl .input::-webkit-input-placeholder {
	color: #AFAFAF;
}
.p-contact__tbl .input::-moz-placeholder {
	color: #AFAFAF;
}
.p-contact__tbl .input:-ms-input-placeholder {
	color: #AFAFAF;
}
.p-contact__tbl .input::-ms-input-placeholder {
	color: #AFAFAF;
}
.p-contact__tbl .input::placeholder {
	color: #AFAFAF;
}
.p-contact__tbl textarea {
	height: 17rem;
}
@media screen and (max-width: 767px) {
	.p-contact__tbl textarea {
		height: 30rem;
	}
}
.p-contact .policy-check {
	margin-top: 6rem;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 130%;
}
@media screen and (max-width: 767px) {
	.p-contact .policy-check {
		font-size: 3rem;
		line-height: 1.5;
	}
}
.p-contact .policy-check a {
	color: #0069C6;
	text-decoration: underline;
	font-weight: 700;
}
.p-contact .policy-check input[type=checkbox] + span {
	display: block;
	padding-left: 4rem;
}
@media screen and (max-width: 767px) {
	.p-contact .policy-check input[type=checkbox] + span {
		padding-left: 6rem;
	}
}
.p-contact .policy-check input[type=checkbox] + span::after, .p-contact .policy-check input[type=checkbox] + span::before {
	border: none;
	width: 2rem;
	height: 2rem;
	left: 0;
	top: 50%;
	-webkit-transform: translateY(-50%);
	        transform: translateY(-50%);
	background-image: url(../images/contact/img_check-off.svg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	margin: 0;
}
@media screen and (max-width: 767px) {
	.p-contact .policy-check input[type=checkbox] + span::after, .p-contact .policy-check input[type=checkbox] + span::before {
		width: 4rem;
		height: 4rem;
		top: 1rem;
		-webkit-transform: none;
		        transform: none;
	}
}
.p-contact .policy-check input[type=checkbox] + span::after {
	background-image: url(../images/contact/img_check-on.svg);
	opacity: 0;
}
.p-contact .policy-check input[type=checkbox]:checked + span::after {
	opacity: 1;
}
.p-contact .policy-check .wpcf7-list-item {
	margin: 0;
}
.p-contact .btn-area {
	margin-top: 6rem;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	gap: 4rem;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	display: block;
}
@media screen and (max-width: 767px) {
	.p-contact .btn-area {
		-ms-flex-wrap: wrap;
		    flex-wrap: wrap;
		gap: 2rem;
	}
}
.p-contact .btn-area .c-btn {
	display: block;
	width: 48rem;
	height: 7rem;
	margin: auto auto auto;
	background-color: #ffffff;
	border-radius: 100vh;
}
@media screen and (max-width: 767px) {
	.p-contact .btn-area .c-btn {
		width: 100%;
		height: 10rem;
	}
}
@media screen and (max-width: 767px) {
	.p-contact .btn-area .c-btn__inn {
		font-size: 3rem;
	}
}
.p-contact .btn-area input.c-btn {
	background-color: #0069C6;
	color: #ffffff;
	border-radius: 100vh;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.06rem;
	-webkit-transition: 0.3s;
	transition: 0.3s;
	cursor: pointer;
}
@media screen and (max-width: 767px) {
	.p-contact .btn-area input.c-btn {
		font-size: 3rem;
	}
}
@media (any-hover: hover) {
	.p-contact .btn-area input.c-btn:hover {
		opacity: 1;
		background-color: #293235;
	}
}
.p-contact .btn-area input.c-btn.-black {
	border: 1px solid #293235;
	background-color: #293235;
}
@media (any-hover: hover) {
	.p-contact .btn-area input.c-btn.-black:hover {
		background-color: #ffffff;
		color: #293235;
	}
}
.p-contact .btn-area input.c-btn:disabled {
	opacity: 0.5;
	pointer-events: none;
}
.p-contact .btn-area .wpcf7-spinner {
	display: block;
	margin: 4rem auto 0;
}
.p-contact.-confirm {
	padding-top: 4rem;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}
@media screen and (max-width: 767px) {
	.p-contact.-confirm {
		padding-top: 0;
	}
}
.p-contact.-confirm .p-contact__tbl .inn {
	margin-top: 6.7rem;
}
@media screen and (max-width: 767px) {
	.p-contact.-confirm .p-contact__tbl .inn {
		margin-top: 5rem;
	}
}
.p-contact.-confirm .p-contact__tbl .inn dt {
	padding-top: 0;
}
.p-contact.-confirm .btn-area {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	max-width: 64rem;
	margin-right: auto;
	margin-left: auto;
}
@media screen and (max-width: 767px) {
	.p-contact.-confirm .btn-area {
		max-width: 100%;
	}
}
.p-contact.-confirm .btn-area .c-btn {
	width: 30rem;
	margin: 0;
}
@media screen and (max-width: 767px) {
	.p-contact.-confirm .btn-area .c-btn {
		width: 100%;
	}
}
.p-contact.-confirm .btn-area .wpcf7-spinner {
	margin-top: 0;
}
@media screen and (max-width: 767px) {
	.p-contact.-thanks {
		padding-top: 6rem;
	}
}
.p-contact.-thanks .text1 {
	margin-top: -2rem;
	text-align: center;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 6rem; /* 214.286% */
	letter-spacing: 0.084rem;
}
@media screen and (max-width: 767px) {
	.p-contact.-thanks .text1 {
		margin-top: 0;
		font-size: 3.8rem;
	}
}
.p-contact.-thanks .text2 {
	margin-top: 1.7rem;
	text-align: center;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 170%; /* 3.06rem */
}
@media screen and (max-width: 767px) {
	.p-contact.-thanks .text2 {
		margin-top: 6rem;
		font-size: 3.2rem;
	}
}
@media screen and (max-width: 767px) {
	.p-contact.-thanks .btn-area {
		margin-top: 8rem;
	}
}
.p-contact .wpcf7 form.invalid .wpcf7-response-output,
.p-contact .wpcf7 form.unaccepted .wpcf7-response-output,
.p-contact .wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #0069C6;
}
@media screen and (max-width: 767px) {
	.p-contact .wpcf7 form.invalid .wpcf7-response-output,
	.p-contact .wpcf7 form.unaccepted .wpcf7-response-output,
	.p-contact .wpcf7 form.payment-required .wpcf7-response-output {
		font-size: 3rem;
	}
}
.p-contact .wpcf7 form .wpcf7-response-output:empty {
	display: none;
}
/*# sourceMappingURL=contact.css.map */
/* ===== renewal provisional consultation flow ===== */
.p-renewal-contact-wrap{position:relative;overflow:hidden}
.p-renewal-contact-wrap > .c-fixed-bg{pointer-events:none}
.p-renewal-contact-intro{padding:15.5rem 0 6rem;background:#fff}
.p-renewal-contact-intro.-compact{padding-bottom:3rem}
.p-renewal-contact-title{margin-top:5.2rem;color:#293235;font-size:4.4rem;font-weight:900;line-height:1.55;letter-spacing:.10rem}
.p-renewal-contact-lead{max-width:92rem;margin-top:4.2rem;font-size:1.8rem;font-weight:500;line-height:2;letter-spacing:.054rem}
.p-renewal-contact-lead p+p{margin-top:.8rem}
.p-renewal-contact-form{padding:4rem 0 12rem;background:#fff}
.p-renewal-contact-form .p-contact__content{width:91.4rem;max-width:100%;margin:0 auto}
.p-renewal-contact-form-title{padding-bottom:2rem;border-bottom:1px solid #92b1d6;font-size:2.6rem;font-weight:700;line-height:1.5}
.p-renewal-contact-form-title + .wpcf7{margin-top:3.2rem}
.p-renewal-contact-missing{padding:2rem;border:1px solid #d5d5d5;background:#fafafa;font-size:1.6rem}
.p-renewal-contact-thanks{padding:17rem 0 13rem;background:#fff}
.p-renewal-contact-thanks-inner{width:91.4rem;max-width:100%;margin:0 auto}
.p-renewal-contact-thanks-copy{margin-top:5rem;font-size:1.8rem;font-weight:500;line-height:2;text-align:left}
.p-renewal-contact-thanks-copy p+p{margin-top:1rem}
.p-renewal-contact-home{margin:5rem 0 0;width:32rem}
@media screen and (max-width:767px){
  .p-renewal-contact-intro{padding:14rem 0 5rem}
  .p-renewal-contact-intro .l-content-inner,.p-renewal-contact-form .l-content-inner,.p-renewal-contact-thanks .l-content-inner{padding-left:4rem;padding-right:4rem}
  .p-renewal-contact-title{margin-top:5rem;font-size:4.4rem;line-height:1.5;letter-spacing:.08rem}
  .p-renewal-contact-lead{margin-top:4rem;font-size:3rem;line-height:1.8}
  .p-renewal-contact-form{padding:3rem 0 10rem}
  .p-renewal-contact-form-title{font-size:3.6rem}
  .p-renewal-contact-thanks{padding:14rem 0 10rem}
  .p-renewal-contact-thanks-copy{font-size:3rem;line-height:1.8}
  .p-renewal-contact-home{width:100%;margin-top:5rem}
}


/* ===== sitewide v2: reveal shared fixed-wave background on consultation flow ===== */
.p-renewal-contact-wrap > .c-fixed-bg{opacity:.86}
.p-renewal-contact-intro,
.p-renewal-contact-form,
.p-renewal-contact-thanks{background:rgba(255,255,255,.95)}


/* ===== sitewide v3: use the same fixed-wave stacking model as service/about ===== */
.p-renewal-contact-wrap > .c-fixed-bg{opacity:.86}

/* ===== contact v2: title-only alignment rebuilt from the pre-v1 files ===== */
/* Keep Contact Form 7 and form layout untouched. */
.p-renewal-contact-wrap .c-title-wrap.-small {
  padding-left: 0;
}
.p-renewal-contact-wrap .c-title-wrap.-small > .deco {
  display: none;
}
.p-renewal-contact-wrap .c-title-wrap.-small .logo-title .logo {
  position: relative;
  top: .45rem;
}

/* Desktop: two semantic lines. */
.p-renewal-contact-title {
  margin-top: 4.6rem;
}
.p-renewal-contact-title-second {
  white-space: nowrap;
}

/* Tablet: allow the second line to wrap rather than forcing overflow. */
@media screen and (min-width: 768px) and (max-width: 1100px) {
  .p-renewal-contact-title {
    font-size: 4rem;
    letter-spacing: .08rem;
  }
  .p-renewal-contact-title-second {
    white-space: normal;
  }
}

/* Smartphone: three semantic lines without duplicating the title in the DOM. */
@media screen and (max-width: 767px) {
  .p-renewal-contact-title {
    margin-top: 3.2rem;
    line-height: 1.5;
  }
  .p-renewal-contact-title-second {
    display: block;
    white-space: nowrap;
  }
}

/* ===== contact v3: form / confirm / thanks finish =====
   Based on the current root contact.css from the staging renewal theme.
   Contact Form 7 structure and multi-step behavior are intentionally untouched. */

/* Align the intro copy with the form column so the page reads as one flow. */
.p-renewal-contact-intro .c-title-wrap,
.p-renewal-contact-intro .p-renewal-contact-lead{
  width:91.4rem;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
}
.p-renewal-contact-intro{padding-bottom:5.2rem}
.p-renewal-contact-intro.-compact{padding-bottom:3.6rem}
.p-renewal-contact-lead{margin-top:3.4rem}

/* Form block rhythm. */
.p-renewal-contact-form{
  padding-top:3.2rem;
  padding-bottom:9.2rem;
}
.p-renewal-contact-form-title{
  padding-bottom:1.7rem;
  border-bottom:1px solid #d9e0e5;
  color:#293235;
  font-size:2.4rem;
  font-weight:700;
  line-height:1.55;
  letter-spacing:.04rem;
}
.p-renewal-contact-form-title + .wpcf7{margin-top:2.8rem}

/* Rows: quieter, more editorial, and consistent across input / confirmation. */
.p-contact__tbl{
  border-top:1px solid #d9e0e5;
}
.p-contact__tbl .inn,
.p-contact.-confirm .p-contact__tbl .inn{
  margin-top:0;
  padding:2.2rem 0;
  border-bottom:1px solid #d9e0e5;
  align-items:center;
}
.p-contact__tbl .inn dt,
.p-contact.-confirm .p-contact__tbl .inn dt{
  width:22rem;
  padding-top:0;
  gap:.9rem;
  color:#293235;
  font-size:1.5rem;
  font-weight:700;
  line-height:1.55;
}
.p-contact__tbl .inn dd{
  color:#3f4d59;
  font-size:1.5rem;
  line-height:1.8;
}

/* Required / optional badges: remove the old red/black contrast. */
.p-contact__tbl .inn dt .hissu{
  min-width:3.6rem;
  padding:.25rem .7rem .3rem;
  border-radius:.2rem;
  background:#0069c6;
  color:#fff;
  font-size:1rem;
  font-weight:700;
  line-height:1.3;
  letter-spacing:.03rem;
}
.p-contact__tbl .inn dt .hissu.-nini{
  background:#edf1f3;
  color:#596871;
}

/* Input controls. */
.p-contact__tbl .input{
  min-height:5.2rem;
  padding:1.35rem 1.6rem;
  border:1px solid #cfd7dc;
  border-radius:.4rem;
  background:rgba(255,255,255,.92);
  color:#293235;
  font-size:1.5rem;
  font-weight:500;
  line-height:1.55;
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.p-contact__tbl .input:focus{
  border-color:#5c9ab2;
  outline:none;
  background:#fff;
  box-shadow:0 0 0 3px rgba(92,154,178,.10);
}
.p-contact__tbl select.input{
  cursor:pointer;
}
.p-contact__tbl textarea.input{
  height:15rem;
  min-height:15rem;
  resize:vertical;
  line-height:1.8;
}
.p-contact__help{
  display:block;
  margin-bottom:.8rem;
  color:#697783;
  font-size:1.25rem;
  line-height:1.7;
}

/* Privacy consent. */
.p-contact .policy-check{
  margin-top:4.2rem;
  color:#3f4d59;
  font-size:1.4rem;
  line-height:1.75;
}
.p-contact .policy-check a{
  color:#293235;
  font-weight:700;
  text-decoration-color:rgba(41,50,53,.55);
  text-underline-offset:.2em;
}

/* Primary / secondary actions: align with the renewal site's squarer UI. */
.p-contact .btn-area{
  margin-top:4.2rem;
}
.p-contact .btn-area .c-btn,
.p-contact .btn-area input.c-btn{
  width:32rem;
  height:5.6rem;
  border-radius:.4rem;
}
.p-contact .btn-area input.c-btn{
  border:1px solid #293235;
  background:#293235;
  color:#fff;
  font-size:1.5rem;
  font-weight:700;
  letter-spacing:.04rem;
}
.p-contact .btn-area input.c-btn.-black{
  border:1px solid #293235;
  background:#fff;
  color:#293235;
}
@media (any-hover:hover){
  .p-contact .btn-area input.c-btn:hover{
    border-color:#0069c6;
    background:#0069c6;
    color:#fff;
  }
  .p-contact .btn-area input.c-btn.-black:hover{
    border-color:#293235;
    background:#293235;
    color:#fff;
  }
}

/* Confirmation page. */
.p-contact.-confirm{
  display:block;
  padding-top:0;
}
.p-contact.-confirm .p-contact__tbl .inn dd{
  min-height:3rem;
  white-space:pre-wrap;
}
.p-contact.-confirm .btn-area{
  display:flex;
  max-width:68rem;
  gap:2rem;
  margin-left:auto;
  margin-right:auto;
}
.p-contact.-confirm .btn-area .c-btn{
  width:calc(50% - 1rem);
}

/* Completion page. */
.p-renewal-contact-thanks{
  padding-top:15.5rem;
  padding-bottom:10rem;
}
.p-renewal-contact-thanks-inner{
  width:91.4rem;
}
.p-renewal-contact-thanks-copy{
  margin-top:3.8rem;
  color:#3f4d59;
  font-size:1.6rem;
  line-height:2;
}
.p-renewal-contact-home{
  width:28rem;
  height:5.6rem;
  margin-top:4rem;
}
.p-renewal-contact-home .c-btn__inn{
  border:1px solid #293235!important;
  border-radius:.4rem!important;
  background:#293235!important;
  color:#fff!important;
  font-size:1.5rem!important;
  letter-spacing:.04rem!important;
}
@media (any-hover:hover){
  .p-renewal-contact-home .c-btn__inn:hover{
    border-color:#0069c6!important;
    background:#0069c6!important;
  }
}

/* Tablet. */
@media screen and (min-width:768px) and (max-width:1100px){
  .p-renewal-contact-intro .c-title-wrap,
  .p-renewal-contact-intro .p-renewal-contact-lead,
  .p-renewal-contact-form .p-contact__content,
  .p-renewal-contact-thanks-inner{
    width:82rem;
  }
}

/* Smartphone. */
@media screen and (max-width:767px){
  .p-renewal-contact-intro{padding-bottom:4.2rem}
  .p-renewal-contact-intro.-compact{padding-bottom:3rem}
  .p-renewal-contact-lead{margin-top:3.2rem}
  .p-renewal-contact-form{padding-top:2.6rem;padding-bottom:7rem}
  .p-renewal-contact-form-title{padding-bottom:2.4rem;font-size:3.8rem;line-height:1.55}
  .p-renewal-contact-form-title + .wpcf7{margin-top:3rem}

  .p-contact__tbl .inn,
  .p-contact.-confirm .p-contact__tbl .inn{
    display:block;
    padding:3.2rem 0 3.4rem;
  }
  .p-contact__tbl .inn dt,
  .p-contact.-confirm .p-contact__tbl .inn dt{
    width:100%;
    margin-bottom:1.6rem;
    font-size:3rem;
    line-height:1.5;
  }
  .p-contact__tbl .inn dt .hissu{
    min-width:7rem;
    padding:.45rem 1.3rem .55rem;
    border-radius:.5rem;
    font-size:2rem;
  }
  .p-contact__tbl .inn dd{
    font-size:3rem;
    line-height:1.8;
  }
  .p-contact__tbl .input{
    min-height:10rem;
    padding:2.5rem 2.7rem;
    border-radius:.6rem;
    font-size:max(3rem,16px);
    line-height:1.55;
  }
  .p-contact__tbl textarea.input{
    height:27rem;
    min-height:27rem;
  }
  .p-contact__help{
    margin-bottom:1.4rem;
    font-size:2.5rem;
    line-height:1.7;
  }

  .p-contact .policy-check{
    margin-top:5rem;
    font-size:2.8rem;
    line-height:1.7;
  }
  .p-contact .policy-check input[type=checkbox] + span{padding-left:6.5rem}

  .p-contact .btn-area,
  .p-contact.-confirm .btn-area{
    display:grid;
    grid-template-columns:1fr;
    gap:2rem;
    max-width:none;
    margin-top:5rem;
  }
  .p-contact .btn-area .c-btn,
  .p-contact .btn-area input.c-btn,
  .p-contact.-confirm .btn-area .c-btn{
    width:100%;
    height:10rem;
    border-radius:.6rem;
    font-size:3rem;
  }

  .p-renewal-contact-thanks{padding-top:14rem;padding-bottom:9rem}
  .p-renewal-contact-thanks-copy{margin-top:3.6rem;font-size:3rem;line-height:1.85}
  .p-renewal-contact-home{width:100%;height:10rem;margin-top:5rem}
  .p-renewal-contact-home .c-btn__inn{border-radius:.6rem!important;font-size:3rem!important}
}

/* ===== contact v4: continuous fixed-wave surface + stable badges =====
   Keep the approved renewal form layout. Only correct the page surface and
   prevent required/optional badges from wrapping vertically. */
.p-renewal-contact-wrap{
  background:#fffefa;
}
.p-renewal-contact-wrap > .c-fixed-bg{
  opacity:.74!important;
}
.p-renewal-contact-intro,
.p-renewal-contact-form,
.p-renewal-contact-thanks{
  background:transparent!important;
}
.p-contact__tbl .inn dt .hissu{
  flex:0 0 auto;
  white-space:nowrap;
  word-break:keep-all;
}

/* ===== contact v5: mobile confirmation rhythm + completion headline =====
   Keep the approved desktop layout. Tighten only the mobile confirmation rows
   and prevent the completion headline from leaving a lone final character. */
@media screen and (max-width:767px){
  .p-contact.-confirm .p-contact__tbl .inn{
    padding:2.2rem 0 2.4rem;
  }
  .p-contact.-confirm .p-contact__tbl .inn dt{
    margin-bottom:.8rem;
  }
  .p-contact.-confirm .p-contact__tbl .inn dd{
    min-height:0;
    line-height:1.65;
  }
  .p-renewal-contact-thanks .p-renewal-contact-title{
    font-size:3.8rem;
    line-height:1.5;
    letter-spacing:.04rem;
  }
}

/* ===== contact v6: remove legacy mobile confirmation row gaps =====
   The original theme adds margin-top:5rem to every confirmation row on mobile.
   v5 tightened padding but that legacy margin still created oversized gaps. */
@media screen and (max-width:767px){
  .p-contact.-confirm .p-contact__tbl .inn{
    margin-top:0!important;
    padding:2.2rem 0 2.4rem;
  }
}

/* ===== contact v7: keep the completion footer at the viewport bottom =====
   Only the short completion page uses this flex layout.
   The thank-you section grows to fill unused viewport height, so empty space
   stays inside the page surface above the footer instead of below the footer. */
body:has(.p-renewal-contact-thanks){
  min-height:100svh;
  display:flex;
  flex-direction:column;
}
body:has(.p-renewal-contact-thanks) > .l-main{
  flex:1 0 auto;
  display:flex;
  flex-direction:column;
}
body:has(.p-renewal-contact-thanks) > .l-main > .p-renewal-contact-wrap{
  flex:1 0 auto;
  display:flex;
  flex-direction:column;
}
body:has(.p-renewal-contact-thanks) .p-renewal-contact-thanks{
  flex:1 0 auto;
}
body:has(.p-renewal-contact-thanks) > .p-renewal-footer{
  flex:0 0 auto;
}


/* ===== 2026-08-17 contact confirm long-label layout hotfix =====
   The confirmation label cell is a flex row. With a long Japanese label,
   the optional badge can be compressed and wrap vertically. On desktop/tablet,
   reserve a stable badge column and a wider label column instead of relying on
   nowrap alone. Smartphone layout remains unchanged. */
@media screen and (min-width:768px){
  .p-contact.-confirm .p-contact__tbl .inn dt{
    display:grid!important;
    grid-template-columns:max-content minmax(0,1fr)!important;
    align-items:center!important;
    column-gap:.9rem!important;
    width:27rem!important;
    flex:0 0 27rem!important;
  }
  .p-contact.-confirm .p-contact__tbl .inn dt .hissu{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:3.8rem!important;
    width:max-content!important;
    flex:none!important;
    white-space:nowrap!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    writing-mode:horizontal-tb!important;
  }
}

/* ===== 2026-08-17 contact confirm long-label hotfix v3 =====
   Keep desktop/tablet confirmation labels on one line and reserve a fixed
   horizontal width for the required/optional badge. This intentionally uses
   flex rather than grid because the label text is a raw text node beside the
   badge in the Contact Form 7 markup. */
@media screen and (min-width:768px){
  .p-contact.-confirm .p-contact__tbl .inn dt{
    display:flex!important;
    align-items:center!important;
    gap:.9rem!important;
    width:28rem!important;
    flex:0 0 28rem!important;
    white-space:nowrap!important;
  }
  .p-contact.-confirm .p-contact__tbl .inn dt .hissu{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 4.2rem!important;
    width:4.2rem!important;
    min-width:4.2rem!important;
    max-width:4.2rem!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    writing-mode:horizontal-tb!important;
  }
}


/* ===== 2026-08-19 smartphone hierarchy pass =====
   Phone only. Match the renewed site's hierarchy while leaving the CF7 form
   structure, confirmation behavior and desktop/tablet layout untouched. */
@media screen and (max-width:767px){
  .p-renewal-contact-intro .c-title-wrap.-small .logo-title{
    font-size:14px!important;
    line-height:1.5!important;
    font-weight:800!important;
    letter-spacing:.015em!important;
  }
  .p-renewal-contact-intro .c-title-wrap.-small .logo-title .logo{
    width:16px!important;
    height:17px!important;
    top:1px!important;
    flex:0 0 auto;
  }
  .p-renewal-contact-title{
    margin-top:20px!important;
    font-size:31px!important;
    line-height:1.5!important;
    font-weight:900!important;
    letter-spacing:-.012em!important;
    white-space:normal!important;
    text-wrap:pretty!important;
  }
  .p-renewal-contact-title br{
    display:none!important;
  }
  .p-renewal-contact-title-second{
    display:inline!important;
    white-space:normal!important;
  }
  .p-renewal-contact-lead{
    margin-top:18px!important;
    font-size:15.5px!important;
    line-height:1.9!important;
    letter-spacing:.005em!important;
  }
  .p-renewal-contact-form-title{
    font-size:21px!important;
    line-height:1.55!important;
    font-weight:800!important;
    letter-spacing:-.005em!important;
  }
}
