/*
 * Reprorise 2026 — theme overrides.
 * The real stylesheets are the migrated legacy files (common/top_style/layout/sub…).
 * This file only holds (a) rules that were inline <style> blocks in the 2020 templates
 * and (b) small hooks for the new semantic markup.
 *
 */

/* --- accessibility helpers --- */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}
.skip-link:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 100000;
	width: auto;
	height: auto;
	margin: 0;
	padding: 8px 12px;
	background: #21b3b3;
	color: #fff;
	clip: auto;
	clip-path: none;
	white-space: normal;
}
:focus-visible {
	outline: 2px solid #21b3b3;
	outline-offset: 2px;
}

/* --- header top bar (was inline <style> in header.php) --- */
.top_text ul li { float: left; }
.top_text ul li:last-child { float: right; }
.top_text ul li a { background: url(../img/best_line.gif) no-repeat right center; padding: 0 10px; }
.top_text ul li a:last-child { background: none; }
.top_text .noffz_tag { background-color: #21b3b3; color: #fff; padding-left: 10px; padding-right: 10px; }

/* Buttons that replaced <a href="javascript:;"> toggles: keep anchor look. */
button.btn_em_mode { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-align: inherit; }
button.hamburger-btn { background: none; border: 0; padding: 0; line-height: 0; cursor: pointer; }

/* ---------------------------------------------------------------------------
 * Selectors that used to target heading TAGS in the legacy CSS.
 * The new markup uses h1 (single h1 per page) where the 2020 theme used h2/h1/span,
 * so the exact legacy rules are mirrored here. Copied from the live stylesheets on
 * 2026-08-18 including their @media context:
 *   layout.css:5   h2 { font-size:35px; line-height:38px; text-align:center; margin-bottom:10px }
 *   layout.css:356 @media(max-width:640px) h2 { font-size:25px; line-height:35px; margin-bottom:7px }
 *   sub.css:7/126/1226/1396  #s_visual h2  (base / <=767:3em / <=977:4em / <=640:2.2em; later rules win)
 *   sub.css:482/1056/1240    .cd-item-info h2
 *   layout.css:12-13/218/345 .intro_header h2 (base / <=1075:250px / <=767:213px)
 *   layout.css:163/240-241   #footerWrap h1   (base / <=1024)
 *   layout.css:78/225        .noffz_area_con h1 (base / <=1075)
 *   top_style.css:241        .navbar h1, .m_menu_top h1 (<=1075)
 * ------------------------------------------------------------------------- */

/* page title <h1 id="subTitle"> (was h2): size/margins still come from the #subTitle id rules */
h1#subTitle { text-align: center; }

/* hero title <h1 class="s_visual_title"> in #s_visual (was h2) */
#s_visual .s_visual_title { font-size: 47px; line-height: 55px; font-weight: bold; text-shadow: 1px 1px 3px #333; text-align: center; margin-bottom: 10px; }
@media screen and (max-width: 977px) { #s_visual .s_visual_title { font-size: 4em; } }
@media screen and (max-width: 640px) { #s_visual .s_visual_title { font-size: 2.2em; margin-bottom: 7px; } }

/* product title <h1 class="pro_view_title"> in .cd-item-info (was h2) */
.cd-item-info h1.pro_view_title { font-size: 2rem; font-weight: bold; text-align: left; line-height: 38px; margin-bottom: 10px; }
@media screen and (max-width: 1280px) { .cd-item-info h1.pro_view_title { font-size: 1.8rem; margin-bottom: 0; } }
@media screen and (max-width: 640px)  { .cd-item-info h1.pro_view_title { line-height: 35px; } }

/* intro splash logo <h1 class="intro_logo"> in .intro_header (was h2) */
.intro_header .intro_logo { width: 300px; margin: 0 auto; position: relative; padding: 30px 0 0 0; text-align: center; }
.intro_header .intro_logo img { width: 100%; }
@media screen and (max-width: 1075px) { .intro_header .intro_logo { width: 250px; } }
@media screen and (max-width: 767px)  { .intro_header .intro_logo { width: 213px; } }


/* NOFFZ banner logo <div class="noffz_logo"> in .noffz_area_con (was h1) */
.noffz_area_con .noffz_logo { position: relative; top: 105px; }
@media screen and (max-width: 1075px) { .noffz_area_con .noffz_logo { position: relative; top: 0; } }

/* drawer logo <div class="m_menu_logo"> in .m_menu_top (was h1) */
@media screen and (max-width: 1075px) { .m_menu_top .m_menu_logo { position: absolute; top: 50%; left: 50%; width: 32vw; height: auto; transform: translate(-50%, -50%); margin: 0; } }

div#logo, .m_menu_top .m_menu_logo, .noffz_logo { display: block; padding: 0; }
.board_view_area .board_title { display: inline; font: inherit; margin: 0; }
.pro_list .icon_new { float: right; }
.pro_list .price .ask { font-size: 11pt; }

/* category.php inline style */
.list-image { width: 270px; height: 200px; background-size: cover; }

/* page-sale.php inline style */
.sale_list .table_st tr:nth-child(1) td { text-align: center; }
.sale_list .table_st td:nth-last-of-type(1) { text-align: left; }
.sale_list .table_st td:nth-last-of-type(2) { text-align: left; }

/* single-page-promotion.php inline style */
.promotion_single #content { text-align: center; }
@media screen and (max-width: 1280px) {
	.promotion_single #content { padding: 20px 0; }
	.promotion_single #content img { width: 100%; height: auto; }
}

/* page-home.php inline style (Google Maps place card) */
.gm-style .place-card-large { display: none !important; }

/* rental: server-rendered noscript table */
.rental_noscript { margin-top: 20px; }

/* related products under the product detail */
.pro_related { clear: both; padding-top: 40px; }
.pro_related .pro_tit { margin-bottom: 20px; }

/* mobile search toggle is now a <button> (was <a>) — mirror top_style.css:319/366/378 (.m_search_bt a) */
@media screen and (max-width: 1075px) { .m_search_bt button.btn_em_mode { background: #21b3b3; padding: 31px 35px; display: block; border: 0; } }
@media screen and (max-width: 640px)  { .m_search_bt button.btn_em_mode { padding: 25px 22px; } }
@media screen and (max-width: 360px)  { .m_search_bt button.btn_em_mode { padding: 16px; } }

/* catalog list header: #catname is now a <span> (was an invalid <div> inside <h3>).
   sub.css:203 makes .pro_tit span absolute/right — restore the old div-like rendering for the name. */
.pro_tit span#catname { position: static; text-align: left; font-size: inherit; line-height: inherit; display: inline; }

/* directions: keep E-Mail label and address on the same line */
.directions .map_info .map_contact_email {
	display: block;
	white-space: nowrap;
}

/* home: map width + hide legacy overlay card if present */
.map_area {
	max-width: 1300px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}
.map_area .map_conts {
	display: none;
}

/*
 * Home hero (skippr): the plugin adds .skippr on DOM ready. Until then m_banner.css
 * only styles .skippr > div, so all slides stack and .m_tit blocks overlap at center.
 * Mirror the post-init layout for #random:not(.skippr) so the first slide renders correctly.
 */
.hero #random:not(.skippr) {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 100%;
}
.hero #random:not(.skippr) > div {
	position: absolute;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: 50% 62.5%;
}
.hero #random:not(.skippr) > div ~ div {
	visibility: hidden;
	pointer-events: none;
}

/* pill CTA (.bt_mint / .bt_blue): bg arrow at 90% + centered text looked off-axis [layout.css:47-51] */
.bt_mint,
.bt_blue {
	width: auto;
	max-width: 100%;
}
.bt_mint {
	display: inline-block;
	margin: 20px auto 0;
}
.bt_mint a,
.bt_blue a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 180px;
	max-width: 100%;
	padding: 12px 44px 12px 24px;
	line-height: 1.3;
	background-color: #21b3b3;
	background-image: url(../img/bt_mark.png);
	background-repeat: no-repeat;
	background-position: right 16px center;
	text-align: center;
}
.bt_blue a {
	background-color: #0d5284;
}
.bt_mint a:hover {
	background-color: #2fd1d1;
	background-image: url(../img/bt_mark.png);
	background-repeat: no-repeat;
	background-position: right 16px center;
}
.bt_blue a:hover {
	background-color: #0c4873;
	background-image: url(../img/bt_mark.png);
	background-repeat: no-repeat;
	background-position: right 16px center;
}

/* ---------------------------------------------------------------------------
 * Contact form (contact-form/form.html + assets/js/theme/contact.js)
 * Legacy base rules being overridden: common.css:39 (input padding/text-indent/height),
 * sub.css:607-633 (.inquiry_area dl/dt/dd, .lead-send), sub.css:76-111 (agreement box).
 * ------------------------------------------------------------------------- */
.inquiry_area { font-size: 15px; line-height: 1.6; }
.inquiry_area dl { padding: 12px 0; }
.inquiry_area dl dt { font-size: 16px; line-height: 1.5; padding-top: 11px; }
.inquiry_area dl dd { font-size: 15px; }
.rr-form-note { margin: 0 0 6px; font-size: 14px; color: #555; }
.req { display: inline-block; margin-left: 6px; padding: 0 6px; background: #e80032; color: #fff; font-size: 11px; line-height: 18px; font-weight: bold; border-radius: 2px; vertical-align: 2px; }
.rr-form-note .req { margin: 0 4px 0 0; vertical-align: 1px; }

/* text controls: one size, real padding, border-box (legacy uses text-indent + 97% width) */
.inquiry_area dl dd input[type="text"],
.inquiry_area dl dd input[type="tel"],
.inquiry_area dl dd input[type="email"],
.inquiry_area dl dd textarea {
	box-sizing: border-box;
	width: 100%;
	height: auto;
	margin: 0;
	padding: 11px 14px;
	text-indent: 0;
	font: inherit;
	font-size: 15px;
	line-height: 1.5;
	color: #333;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 3px;
	box-shadow: none;
}
.inquiry_area dl dd textarea { min-height: 220px; line-height: 1.7; resize: vertical; }
.inquiry_area dl dd input:focus:not([type="radio"]):not([type="checkbox"]), .inquiry_area dl dd textarea:focus { border-color: #21b3b3; outline: none; box-shadow: 0 0 0 2px rgba(33, 179, 179, .15); } /* the halo made radios/checkboxes look like light-blue boxes on Windows */
.inquiry_area dl dd ::placeholder { color: #aaa; opacity: 1; }
.inquiry_area dl dd .rr-sublabel { display: block; font-size: 14px; font-weight: 600; margin: 0 0 4px; }

/* radio / checkbox: custom-drawn so the checked mark is WHITE on the teal fill
   (accent-color lets the browser pick the glyph colour — on #21b3b3 it chose black) */
.inquiry_area dl dd input[type="radio"],
.inquiry_area dl dd input[type="checkbox"] {
	box-sizing: border-box;
	width: 18px;
	height: 18px;
	margin: 0 6px 0 0;
	padding: 0;
	vertical-align: -3px;
	border: 1px solid #b9c0c7;
	box-shadow: none;
	background: #fff;
	text-indent: 0;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: background .1s, border-color .1s;
}
.inquiry_area dl dd input[type="checkbox"] { border-radius: 3px; }
.inquiry_area dl dd input[type="radio"] { border-radius: 50%; }
.inquiry_area dl dd input[type="checkbox"]:checked {
	border-color: #21b3b3;
	background: #21b3b3 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="none" stroke="%23ffffff" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round" d="M3.2 8.6l3.3 3.2L12.8 5"/></svg>') center / 12px 12px no-repeat;
}
.inquiry_area dl dd input[type="radio"]:checked {
	border-color: #21b3b3;
	background: radial-gradient(circle, #ffffff 0 3.5px, #21b3b3 4.5px);
}
.inquiry_area dl dd input[type="radio"]:focus-visible,
.inquiry_area dl dd input[type="checkbox"]:focus-visible { outline: 2px solid #21b3b3; outline-offset: 2px; }
.inquiry_area dl dd .wpcf7-list-item { display: inline-block; margin: 8px 22px 8px 0; font-size: 15px; }
.inquiry_area dl dd .wpcf7-list-item label { cursor: pointer; }
.inquiry_area dl dd .wpcf7-radio, .inquiry_area dl dd .wpcf7-checkbox { display: block; padding-top: 3px; }

.rr-name-row { display: flex; gap: 14px; }
.rr-name-col { flex: 1 1 0; min-width: 0; }
.rr-address li + li { margin-top: 12px; }
.rr-zip-row { display: flex; align-items: stretch; gap: 8px; }
.rr-zip-row .wpcf7-form-control-wrap { flex: 0 0 180px; }
.rr-zip-btn { padding: 0 16px; font: inherit; font-size: 14px; color: #21b3b3; background: #fff; border: 1px solid #21b3b3; border-radius: 3px; cursor: pointer; white-space: nowrap; }
.rr-zip-btn:hover { background: #21b3b3; color: #fff; }
.rr-zip-btn[disabled] { opacity: .5; cursor: default; }

/* validation: client (.rr-field-error) + CF7 server tips */
.rr-field-error, .wpcf7-not-valid-tip { display: block; margin-top: 5px; color: #d32f2f; font-size: 13px; line-height: 1.5; }
.inquiry_area input.rr-invalid, .inquiry_area textarea.rr-invalid, .inquiry_area .wpcf7-not-valid { border-color: #d32f2f !important; background: #fff5f5; }

/* 個人情報の取り扱い: box + centred agreement */
.inquiry_area .member_agree_box { box-sizing: border-box; width: 100%; height: auto; max-height: 160px; padding: 16px 20px; font-size: 14px; line-height: 1.7; color: #666; }
.inquiry_area .member_agree_box p + p { margin-top: 8px; }
.inquiry_area .lead-agree-choice { text-align: center; margin-top: 18px; font-size: 16px; font-weight: 600; }
.inquiry_area .lead-agree-choice ul li { width: auto; }
.inquiry_area .lead-agree-choice .wpcf7-list-item { margin: 0; }
.inquiry_area .lead-agree-choice label { cursor: pointer; }
.inquiry_area .lead-agree-choice .rr-field-error { text-align: center; font-weight: normal; }

/* buttons: one CTA style site-wide (確認画面へ / 送信する / お問い合わせ / 各種お取引条件 / .bt_mt links) — teal gradient, not the legacy red [sub.css:56, :615-633] */
.lead-send-area { width: 320px; max-width: 100%; margin: 30px auto 0; }
.lead-send, .rr-btn-secondary, .bt_mt a {
	display: block;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 14px 20px;
	font: inherit;
	font-size: 17px;
	font-weight: bold;
	line-height: 1.4;
	color: #fff;
	text-align: center;
	border: 0;
	border-radius: 3px;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background .15s;
}
.lead-send, .bt_mt a { background: linear-gradient(40deg, #1dacad, #319bdf); }
.lead-send:hover, .bt_mt a:hover { color: #fff; background: linear-gradient(40deg, #1dacad, #1dacad); }
.bt_mt.wise300 a { max-width: 320px; margin: 0 auto; }
.rr-btn-secondary { background: #9a9a9a; }
.rr-btn-secondary:hover { background: #777; }
.wpcf7-form.submitting .wpcf7-submit, .wpcf7-submit[disabled] { opacity: .6; cursor: default; }

/* edit / confirm step (JS toggles form.rr-mode-confirm) */
form.wpcf7-form .rr-confirm { display: none; }
form.wpcf7-form.rr-mode-confirm .rr-confirm { display: block; }
form.wpcf7-form.rr-mode-confirm .rr-edit { display: none; }
.rr-confirm-lead { margin-bottom: 10px; font-size: 15px; font-weight: bold; }
.rr-confirm-list dl { padding: 14px 0; border-bottom: 1px solid #eee; }
.rr-confirm-list dl dt { padding-top: 0; }
.rr-confirm-list dl dd { white-space: pre-wrap; word-break: break-all; line-height: 1.6; }
.rr-confirm-actions { display: flex; justify-content: center; align-items: center; gap: 16px; flex-wrap: wrap; clear: both; margin-top: 30px; }
.rr-confirm-actions .lead-send, .rr-confirm-actions .rr-btn-secondary { width: 240px; }
.rr-confirm-actions .wpcf7-spinner { margin: 0; }

@media screen and (max-width: 640px) {
	.inquiry_area dl dt { padding-top: 0; }
	.rr-name-row { flex-direction: column; gap: 10px; }
	.rr-zip-row .wpcf7-form-control-wrap { flex: 1 1 auto; }
	.inquiry_area dl dd .wpcf7-list-item { margin-right: 16px; }
	.rr-confirm-actions { flex-direction: column; }
	.rr-confirm-actions .lead-send, .rr-confirm-actions .rr-btn-secondary { width: 100%; }
}

/* ---------------------------------------------------------------------------
 * 2026-09 alignment / design fixes (legacy rule being overridden in brackets)
 * ------------------------------------------------------------------------- */

/* A. catalog card: centre the オプション / 在庫状況 pill against its value [sub.css:200] */
.pro_txt .option { line-height: 20px; }
.pro_txt .option span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	height: 18px;
	padding: 0;
	line-height: 1;
	vertical-align: middle;
}
/* card box was a fixed 307px/276px and now overflows (extra rows) [sub.css:185, :1052] */
@media screen and (min-width: 978px) {
	.pro_list dl { height: auto; }
	.pro_list dl dd { min-height: 105px; }
}
/* related products under a detail page: never allow the legacy fixed card height at any width */
.pro_related .pro_list dl { height: auto; }

/* C1. list header: count sat 4px below the category name [sub.css:202-203, :1350] */
.pro_tit { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.pro_tit span { position: static; top: auto; }

/* C4. NEW badge: take it out of the line-clamped title so the ellipsis is measured correctly */
.pro_txt .tit { position: relative; padding-right: 54px; }
.pro_list .icon_new { position: absolute; right: 0; top: 1px; float: none; }

/* C2. product spec rows: value rendered 2px lower than its label, and 18%+78%+10px wrapped [sub.css:553-554] */
.cd-item-info ul li { display: flex; align-items: stretch; gap: 10px; }
.cd-item-info ul li .pro_view_tit { display: flex; align-items: center; justify-content: center; flex: 0 0 18%; width: auto; }
.cd-item-info ul li .pro_view_info { display: block; flex: 1 1 auto; width: auto; margin-left: 0; }
@media screen and (max-width: 767px) { .cd-item-info ul li .pro_view_tit { flex-basis: 28%; } }
@media screen and (max-width: 640px) { .cd-item-info ul li .pro_view_tit { flex-basis: 27%; } }
.cd-item-info .summary .summary-text { cursor: pointer; }
.pro_view_price .ask { font-size: 20px; line-height: 1.4; }

/* C3. header phone icon floated above the number [top_style.css:103 + common.css:24 img{vertical-align:top}] */
#side_menu_container .t_call_area dl dt img { vertical-align: middle; margin: 0 5px 0 0; }

/* C6. bullet headings/lists used text-indent (2nd line ran under the bullet) [sub.css:25, :173, :928] */
.sub_conts h3 { text-indent: 0; padding-left: 20px; background-position: left 0.35em; }
.list_st_one li { text-indent: 0; padding-left: 10px; }
.check_box li { text-indent: 0; padding-left: 26px; }
.check_box li p { margin-left: 0; }

/* C7. product keyword search: flex grid + unified field height [top_style.css:154, common.css:34] */
.keyword_area .searchbox,
#m_search_wrap .searchbox,
#subContent #pageCont > .searchbox {
	margin-top: 20px;
	height: auto;
	display: block;
}
.keyword_area .searchbox .input,
#m_search_wrap .searchbox .input,
#subContent #pageCont > .searchbox .input {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 20px;
	align-items: flex-end;
}
.keyword_area .searchbox .input > div,
#m_search_wrap .searchbox .input > div,
#subContent #pageCont > .searchbox .input > div {
	float: none;
	width: auto;
	flex: 1 1 280px;
	min-width: 0;
	margin-bottom: 0;
}
.keyword_area .searchbox .input .price,
#m_search_wrap .searchbox .input .price,
#subContent #pageCont > .searchbox .input .price {
	flex: 1 1 320px;
}
.keyword_area .searchbox h4,
#m_search_wrap .searchbox h4,
#subContent #pageCont > .searchbox h4 {
	margin-bottom: 8px;
}
.keyword_area .searchbox .input .price > div,
.keyword_area .searchbox .rr-price-inputs,
#m_search_wrap .searchbox .input .price > div,
#m_search_wrap .searchbox .rr-price-inputs,
#subContent #pageCont > .searchbox .input .price > div,
#subContent #pageCont > .searchbox .rr-price-inputs {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: nowrap;
}
.keyword_area .searchbox .input .price span,
#m_search_wrap .searchbox .input .price span,
#subContent #pageCont > .searchbox .input .price span {
	flex: 0 0 auto;
	padding: 0;
}
.keyword_area .searchbox .rr-price-inputs > span:not(.rr-price-unit) {
	color: #fff;
}
#m_search_wrap .searchbox .rr-price-inputs > span:not(.rr-price-unit),
#subContent #pageCont > .searchbox .rr-price-inputs > span:not(.rr-price-unit) {
	color: #333;
}
.keyword_area .searchbox input[type="text"],
.keyword_area .searchbox select,
.keyword_area .searchbox .price input[type="number"],
#m_search_wrap .searchbox input[type="text"],
#m_search_wrap .searchbox select,
#m_search_wrap .searchbox .price input[type="number"],
#subContent #pageCont > .searchbox input[type="text"],
#subContent #pageCont > .searchbox select,
#subContent #pageCont > .searchbox .price input[type="number"] {
	box-sizing: border-box;
	width: 100%;
	height: 49px;
	padding: 0 40px 0 14px;
	text-indent: 0;
	border: none;
	border-radius: 5px;
	box-shadow: none;
	font-size: 15px;
	line-height: 1.4;
	background-color: #fff;
	color: #333;
}
.keyword_area .searchbox input[type="text"],
#m_search_wrap .searchbox input[type="text"],
#subContent #pageCont > .searchbox input[type="text"] {
	padding-right: 14px;
}
.keyword_area .searchbox input[type="text"]::placeholder,
#m_search_wrap .searchbox input[type="text"]::placeholder,
#subContent #pageCont > .searchbox input[type="text"]::placeholder {
	color: #777;
	opacity: 1;
}
.keyword_area .searchbox select,
#m_search_wrap .searchbox select,
#subContent #pageCont > .searchbox select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: url(../img/bt_arrow.png) no-repeat calc(100% - 12px) center #fff;
	cursor: pointer;
}
.keyword_area .searchbox .price input[type="number"],
#m_search_wrap .searchbox .price input[type="number"],
#subContent #pageCont > .searchbox .price input[type="number"] {
	flex: 1 1 0;
	min-width: 72px;
	max-width: 110px;
	width: auto;
	padding: 0 12px;
	-moz-appearance: textfield;
	appearance: textfield;
}
.keyword_area .searchbox .price input[type="number"]::-webkit-outer-spin-button,
.keyword_area .searchbox .price input[type="number"]::-webkit-inner-spin-button,
#m_search_wrap .searchbox .price input[type="number"]::-webkit-outer-spin-button,
#m_search_wrap .searchbox .price input[type="number"]::-webkit-inner-spin-button,
#subContent #pageCont > .searchbox .price input[type="number"]::-webkit-outer-spin-button,
#subContent #pageCont > .searchbox .price input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.keyword_area .searchbox .price input[type="number"]::placeholder,
#m_search_wrap .searchbox .price input[type="number"]::placeholder,
#subContent #pageCont > .searchbox .price input[type="number"]::placeholder {
	color: #777;
	opacity: 1;
}
.keyword_area .searchbox .button,
#m_search_wrap .searchbox .button,
#subContent #pageCont > .searchbox .button {
	padding-top: 20px;
}

@media screen and (max-width: 976px) {
	.keyword_area .searchbox .input > div,
	#m_search_wrap .searchbox .input > div,
	#subContent #pageCont > .searchbox .input > div {
		flex: 1 1 100%;
	}
}

@media screen and (max-width: 640px) {
	.keyword_area .searchbox .input .price > div,
	.keyword_area .searchbox .rr-price-inputs,
	#m_search_wrap .searchbox .input .price > div,
	#m_search_wrap .searchbox .rr-price-inputs,
	#subContent #pageCont > .searchbox .input .price > div,
	#subContent #pageCont > .searchbox .rr-price-inputs {
		flex-wrap: wrap;
	}
	.keyword_area .searchbox .price input[type="number"],
	#m_search_wrap .searchbox .price input[type="number"],
	#subContent #pageCont > .searchbox .price input[type="number"] {
		flex: 1 1 calc(50% - 40px);
		max-width: none;
	}
}

/* catalog filter bar (.s_searchbox): flex row keeps select / input / submit at one height [sub.css:639-652] */
.s_searchbox {
	margin-bottom: 55px;
	height: auto;
}
.s_searchbox .input {
	display: flex;
	align-items: stretch;
	flex-wrap: nowrap;
}
.s_searchbox .input > div {
	float: none;
	width: auto;
	margin-bottom: 0;
}
.s_searchbox .input .maker {
	flex: 0 0 30%;
	min-width: 0;
}
.s_searchbox .input .keyword {
	flex: 1 1 70%;
	display: flex;
	align-items: stretch;
	min-width: 0;
	width: auto;
}
.s_searchbox .maker select {
	height: 59px;
	width: 100%;
	padding: 0 40px 0 15px;
	text-indent: 0;
	border: none;
	border-radius: 5px 0 0 5px;
	box-shadow: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: url(../img/bt_arrow2.gif) no-repeat 95% center #07629b;
	color: #fff;
}
.s_searchbox .input .keyword input[type="text"] {
	box-sizing: border-box;
	flex: 1 1 auto;
	width: auto;
	float: none;
	height: 59px;
	padding: 0 15px;
	text-indent: 0;
	border: none;
	border-radius: 0;
	box-shadow: none;
	background: #8c9faa;
	color: #fff;
}
.s_searchbox .input .keyword input[type="submit"] {
	flex: 0 0 52px;
	width: 52px;
	float: none;
	height: 59px;
	border: none;
	border-radius: 0 5px 5px 0;
	box-shadow: none;
	background: url(../img/sub/search_bt.gif) no-repeat center #8c9faa;
	cursor: pointer;
}
/* :focus-visible outline sat outside the bar and looked like a stray green stripe [theme.css:37] */
.s_searchbox input:focus-visible,
.s_searchbox select:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55);
}
.keyword_area .searchbox input:focus-visible,
.keyword_area .searchbox select:focus-visible,
.keyword_area .searchbox .price input[type="number"]:focus-visible,
#m_search_wrap .searchbox input:focus-visible,
#m_search_wrap .searchbox select:focus-visible,
#m_search_wrap .searchbox .price input[type="number"]:focus-visible,
#subContent #pageCont > .searchbox input:focus-visible,
#subContent #pageCont > .searchbox select:focus-visible,
#subContent #pageCont > .searchbox .price input[type="number"]:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 2px #21b3b3;
}

@media screen and (max-width: 640px) {
	.s_searchbox .input {
		flex-wrap: wrap;
	}
	.s_searchbox .input .maker {
		flex: 1 1 100%;
	}
	.s_searchbox .input .keyword {
		flex: 1 1 100%;
	}
	.s_searchbox .maker select {
		border-radius: 5px 5px 0 0;
	}
	.s_searchbox .input .keyword input[type="text"] {
		flex: 1 1 auto;
		width: auto;
		border-radius: 0 0 0 5px;
	}
	.s_searchbox .input .keyword input[type="submit"] {
		flex: 0 0 15%;
		width: 15%;
		border-radius: 0 0 5px 0;
	}
}

/* C8. pagination chips were inline with vertical padding (painted outside the line) [pagenavi.css:6-26] */
.wp-pagenavi { line-height: 0; }
.wp-pagenavi a, .wp-pagenavi span { display: inline-block; line-height: 1.42857143; vertical-align: middle; }
.times_tb + .wp-pagenavi, .board_list + .wp-pagenavi { margin-top: 50px; }

/* C9. sub navigation: item widths by count, home icon height, glyph collisions [sub.css:147-167] */
#s_navi { display: flex; align-items: stretch; }
#s_navi .home { float: none; height: auto; flex: 0 0 70px; }
#s_navi .smenu { float: none; display: flex; width: auto; flex: 1 1 auto; }
#s_navi .smenu li { flex: 1 1 0; width: auto; }
#s_navi .smenu li a { letter-spacing: -0.03em; }


/* C12. back-to-top: shown by JS after 180px instead of an inline display:block [top_style.css:5] */
.btn_top.is-visible { display: block; }

/* Wide legacy tables (repair 他社比較, company group table): #contentWrap is overflow:hidden
   [layout.css:40], so without this wrapper the right-hand columns are clipped on phones. */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-scroll > .table_st { min-width: 640px; }
.table-scroll > .table_st.mt30 { margin-top: 0; }
.table-scroll.mt30 { margin-top: 30px; }

/* C13. headings that had no rule at all (rendered as 16px body text) */
.num_area h4 { font-size: 18px; line-height: 1.5; font-weight: bold; margin-bottom: 8px; }
.solution2 dd h3 { font-size: 18px; line-height: 1.5; font-weight: bold; margin-bottom: 8px; }
.rr-center-lg { text-align: center; font-size: 18px; }

/* C15. table header used line-height as height (2-line headers doubled the row) [sub.css:842, :852] */
.basicV th { line-height: 1.5; }
.basicV td > p.count { position: relative; }

/* C11. pages whose <h1 id="subTitle"> was removed (company/repair/rental/買取) lost the 50px rhythm + divider [sub.css:33-41] */
#pageCont > .clear:first-child + .sub_box { margin-top: 50px; }

/* header logo: the legacy :hover shorthand reset background-size, so the 300px logo overflowed its 250/200px box [top_style.css:36] */
#logo a:hover { background-size: 100%; }

/* right-side quick banner: 「お問い合わせ」(6 chars) wrapped inside the 103px circle (15px side padding) [layout.css:175-176] */
.quick_banner ul li a { padding: 20px 6px 17px; font-size: 13px; letter-spacing: -0.5px; white-space: nowrap; line-height: 1.6; }

/* home company intro: fixed height + absolute CTA cramped copy [layout.css:112-118] */
.company_area { padding: 40px 0; }
.company_area .company_conts {
	height: auto;
	min-height: 0;
	width: 38%;
	padding: 40px 48px 44px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.company_area .company_conts h3 {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 17px;
	line-height: 1.55;
	letter-spacing: 0;
	margin-bottom: 18px;
}
.company_area .company_conts h3 img {
	flex: 0 0 27px;
	width: 27px;
	margin: 0.1em 0 0;
}
.company_area .company_conts h2 {
	line-height: 1.45;
	margin: 0;
}
.company_area .company_conts .add {
	font-size: 15px;
	line-height: 1.75;
	letter-spacing: 0;
	margin-top: 16px;
}
.company_area .company_conts .bt_blue {
	position: static;
	left: auto;
	bottom: auto;
	margin: 28px 0 0;
}

@media screen and (max-width: 1280px) {
	.company_area .company_conts {
		width: 42%;
		padding: 36px 40px 40px;
	}
}

@media screen and (max-width: 1075px) {
	.company_area .company_conts {
		width: min(90%, 640px);
		padding: 32px 28px 36px;
		align-items: center;
	}
	.company_area .company_conts h3 {
		align-self: stretch;
		text-align: left;
	}
	.company_area .company_conts .bt_blue {
		margin-left: auto;
		margin-right: auto;
	}
}

@media screen and (max-width: 1024px) {
	.company_area .company_conts {
		padding-bottom: 36px;
	}
}

@media screen and (max-width: 640px) {
	.company_area .company_conts h3 {
		font-size: 15px;
	}
	.company_area .company_conts .add {
		font-size: 14px;
		letter-spacing: 0;
	}
}

/* service-flow step cards [sub.css:907-919] */
.process_box dl {
	display: inline-block;
	vertical-align: top;
	box-sizing: border-box;
}
.process_box dl dt {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 25px;
	min-width: 0;
}
.process_box dl dt span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 60px;
	width: 60px;
	height: 24px;
	margin: 0;
	padding: 0;
	line-height: 1;
	box-sizing: border-box;
}
.process_box dl dt strong {
	display: block;
	margin: 0;
	padding: 0;
	line-height: 1.3;
	min-width: 0;
}
/* header row: step + title + action button(s) */
.process_box dl:has(.pro_bt) {
	display: inline-grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"title actions"
		"body body";
	column-gap: 12px;
	row-gap: 20px;
	align-items: center;
}
.process_box dl:has(.pro_bt) dt {
	grid-area: title;
	margin-bottom: 0;
}
.process_box dl:has(.pro_bt) .pro_bt {
	grid-area: actions;
	position: static;
	display: flex;
	flex-direction: row-reverse;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	width: auto;
	max-width: 100%;
	margin: 0;
	align-self: center;
}
.process_box dl:has(.pro_bt) .pro_bt li {
	float: none;
	width: auto;
	flex: 0 0 auto;
	margin: 0;
}
.process_box dl:has(.pro_bt) .pro_bt li a {
	display: block;
	padding: 5px 12px;
	font-size: 14px;
	line-height: 1.2;
	white-space: nowrap;
	border-radius: 5px;
}
.process_box dl:has(.pro_bt) dd {
	grid-area: body;
}

@media screen and (max-width: 1280px) {
	.process_box dl:has(.pro_bt) {
		grid-template-columns: 1fr;
		grid-template-areas:
			"title"
			"actions"
			"body";
	}
	.process_box dl:has(.pro_bt) .pro_bt {
		justify-content: flex-start;
	}
}

@media screen and (max-width: 767px) {
	.process_box dl:has(.pro_bt) {
		display: inline-block;
	}
	.process_box dl:has(.pro_bt) dt {
		margin-bottom: 15px;
	}
	.process_box dl:has(.pro_bt) .pro_bt {
		display: block;
		width: 100%;
		margin: 0 0 15px;
	}
	.process_box dl:has(.pro_bt) .pro_bt li {
		display: inline-block;
		width: 47%;
		vertical-align: top;
	}
	.process_box dl:has(.pro_bt) .pro_bt2 li {
		width: 100%;
	}
}

/* ---------------------------------------------------------------------------
 * Footer (template-parts/footer/footer-main.php) — 2026-09 redesign.
 * No legacy rules apply (the old #footerWrap id is gone).
 * ------------------------------------------------------------------------- */
.rr-footer { background: #162431; color: #9aa5ae; font-size: 13px; line-height: 1.8; letter-spacing: 0; padding: 22px 0 22px; }
.rr-footer a { color: #fff; text-decoration: none; transition: color .15s; }
.rr-footer a:hover { color: #21b3b3; }
.rr-footer__inner { max-width: 1300px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
.rr-footer__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.rr-footer__logo { display: inline-block; line-height: 0; }
.rr-footer__logo img { width: 200px; height: auto; }
.rr-footer__tagline { margin: 12px 0 0; font-size: 12px; color: #7b868f; }
.rr-footer__nav { display: flex; flex-wrap: wrap; gap: 6px 28px; padding-top: 6px; font-size: 14px; }
.rr-footer__nav span { display: none; }
.rr-footer__main { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 22px; padding: 18px 110px 0 0; border-top: 1px solid rgba(255, 255, 255, .08); } /* right padding keeps the fixed .btn_top off the marks */
.rr-footer__info { font-style: normal; min-width: 0; }
.rr-footer__info p { margin: 0; }
.rr-footer__company { color: #fff; font-weight: bold; }
.rr-footer__contact span { white-space: nowrap; }
.rr-footer__contact span + span::before { content: "／"; color: #4b5661; margin: 0 10px; }
.rr-footer__copy { margin-top: 10px !important; font-size: 12px; color: #7b868f; }
/* the marks are white JPEGs: group them on one white plate so they read as a badge card, not as holes in the navy */
.rr-footer__certs { display: flex; align-items: center; flex: 0 0 auto; gap: 18px; margin: 0; padding: 8px 14px; list-style: none; background: #fff; border-radius: 6px; }
.rr-footer__certs li { line-height: 0; }
.rr-footer__certs img { height: 72px; width: auto; display: block; }
@media screen and (max-width: 767px) {
	.rr-footer { padding: 26px 0 20px; text-align: center; }
	.rr-footer__top { flex-direction: column; align-items: center; gap: 20px; }
	.rr-footer__logo img { width: 170px; }
	.rr-footer__nav { justify-content: center; gap: 8px 20px; padding-top: 0; }
	.rr-footer__contact span { display: block; white-space: normal; }
	.rr-footer__contact span + span::before { content: none; margin: 0; }
	.rr-footer__main { flex-direction: column; padding-right: 0; gap: 20px; }
	.rr-footer__copy { margin-top: 6px; }
	.rr-footer__certs { justify-content: center; }
}

/* search 価格帯: numeric inputs aligned with keyword/maker fields */
.rr-price-unit {
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
	white-space: nowrap;
}
.keyword_area .rr-price-unit {
	color: #fff;
}

/* ---------------------------------------------------------------------------
 * Contact form tabs (inquiry-category) + tab panels — contact-form/form.html
 * ------------------------------------------------------------------------- */
.rr-form-tabs .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 3px; }
.rr-form-tabs .wpcf7-list-item { margin: 0; }
.rr-form-tabs input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }
.rr-form-tabs .wpcf7-list-item-label { display: inline-block; padding: 9px 20px; border: 1px solid #21b3b3; border-radius: 999px; color: #21b3b3; font-size: 15px; font-weight: bold; line-height: 1.4; cursor: pointer; transition: background .15s, color .15s; }
.rr-form-tabs label:hover .wpcf7-list-item-label { background: rgba(33, 179, 179, .1); }
.rr-form-tabs input:checked + .wpcf7-list-item-label { background: #21b3b3; color: #fff; }
.rr-form-tabs input:focus-visible + .wpcf7-list-item-label { outline: 2px solid #21b3b3; outline-offset: 2px; }
.rr-block.is-hidden { display: none; }
.rr-field-note { margin: 0 0 8px; font-size: 13px; color: #888; }
.inquiry_area dl dd .rr-field-note + a { margin-top: 2px; }
.rr-device-head, .rr-device-row { display: grid; grid-template-columns: 26px 1.4fr 1fr 1fr; gap: 8px; align-items: center; margin-bottom: 8px; }
.rr-device-head { margin-bottom: 4px; font-size: 12px; color: #888; }
.rr-device-num { font-weight: bold; color: #105e96; text-align: center; }
.inquiry_area dl dd .rr-device-row input { width: 100%; }
.rr-pdf-btn { display: inline-block; padding: 10px 18px; font-size: 14px; font-weight: bold; color: #21b3b3; background: #fff; border: 1px solid #21b3b3; border-radius: 3px; text-decoration: none; }
.rr-pdf-btn:hover { background: #21b3b3; color: #fff; }
@media screen and (max-width: 640px) {
	.rr-form-tabs .wpcf7-list-item-label { padding: 8px 14px; font-size: 14px; }
	.rr-device-head { display: none; }
	.rr-device-row { grid-template-columns: 26px 1fr; }
	.rr-device-row input:nth-of-type(2), .rr-device-row input:nth-of-type(3) { grid-column: 2; }
}

/* service-flow step cards: were inline-block 41%/85% with min-height → ragged tops and
   unequal sizes [sub.css:907-921, :1067]. Grid: 2 columns, every card the same height. */
.process_box { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 1fr; gap: 18px; text-align: left; }
.process_box dl,
.process_box2 dl { display: flex; flex-direction: column; box-sizing: border-box; width: auto; margin: 0; min-height: 0; padding: 26px 28px; }
.process_box dl dd { flex: 1 1 auto; }
.process_box .last { float: none; margin-left: 0; }
@media screen and (max-width: 767px) {
	.process_box { grid-template-columns: 1fr; gap: 14px; }
	.process_box dl, .process_box2 dl { padding: 20px 18px; }
}

/* repair page: ISO 9001 certification box */
.rr-iso-box { display: flex; align-items: center; gap: 26px; border: 1px solid #e4ebec; border-radius: 3px; padding: 24px 28px; background: #fff; }
.rr-iso-box img { flex: 0 0 auto; width: 158px; height: auto; }
.rr-iso-text p { margin: 0 0 6px; font-size: 14px; line-height: 1.7; }
.rr-iso-text p.bold { font-size: 15px; }
.rr-iso-text .rr-field-note { margin: 4px 0 0; }
@media screen and (max-width: 640px) {
	.rr-iso-box { flex-direction: column; text-align: center; gap: 14px; padding: 20px 16px; }
	.rr-iso-text { text-align: left; }
}

/* repair page: main catch + lead, with the selling points emphasised */
.rr-repair-catch { font-size: 30px; font-weight: bold; line-height: 1.6; text-align: center; color: #1d1d1d; margin: 0 0 14px; }
.rr-repair-lead { font-size: 18px; line-height: 1.9; color: #333; margin-bottom: 10px; }
.rr-repair-lead em { font-style: normal; font-weight: bold; color: #21b3b3; font-size: 1.15em; }
.rr-repair-catch .rr-marker, .rr-repair-lead .rr-marker { font-weight: bold; background: linear-gradient(transparent 62%, rgba(33, 179, 179, .25) 62%); padding: 0 2px; }
@media screen and (max-width: 640px) {
	.rr-repair-catch { font-size: 21px; }
	.rr-repair-lead { font-size: 15px; }
	.rr-repair-lead .rr-lead-br { display: none; }
}

/* new-product detail (single-page-new): gallery renders .img WITHOUT the .width/.height wrapper
   (orientation=false), and no legacy rule sizes it — full-size photos overflowed the frame. */
.pro_view .photo .img:not(.width):not(.height) { width: 91%; margin: 5% auto 2%; overflow: hidden; }
.pro_view .photo .img:not(.width):not(.height) img { max-width: 100%; width: auto; height: auto; border: 1px solid #ddd; }
/* 価格（税込）: the (税込) span inherited .pro_view_price span{position:absolute;left:10px} and
   overlapped the 価格 label as 「価税込）」 [sub.css:555-556] */
.pro_view_price span.rr-tax { position: static; left: auto; font-size: 15px; font-weight: normal; margin-left: 2px; }

/* product gallery: WP emits width/height attrs while the legacy rules force width:100% —
   without height:auto the fixed height attr distorted the ratio (main image + the 5 thumbnails) */
.pro_view .photo .thumb li img { width: 100%; height: auto; }
.pro_view .photo .width img { height: auto; }
