/*
Theme Name: BlankSlate Child
Theme URI: https://opencollective.com/blankslate
Template: blankslate
Author: Bryan Hadaway
Author URI: https://opencollective.com/blankslate#section-contributors
Description: Donate: https://opencollective.com/blankslate. Learn: https://blankslate.me/. BlankSlate is the definitive WordPress boilerplate starter theme. I've carefully constructed the most clean and minimalist theme possible for designers and developers to use as a base to build websites for clients or to build completely custom themes from scratch. Clean, simple, unstyled, semi-minified, unformatted, and valid code, SEO-friendly, jQuery-enabled, no programmer comments, standardized and as white label as possible, and most importantly, the CSS is reset for cross-browser-compatability, with no intrusive visual CSS styles added whatsoever. A perfect skeleton theme. For support and suggestions, go to: https://github.com/bhadaway/blankslate/issues. Thank you.
Tags: accessibility-ready,one-column,two-columns,custom-menu,featured-images,microformats,sticky-post,threaded-comments,translation-ready
Version: 2024.2.1740135834
Updated: 2025-02-21 20:03:54

*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
/*
    Reset
    https://piccalil.li/blog/a-more-modern-css-reset/
*/
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
  list-style: none;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4 {
  text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  font-family: inherit;
  font-size: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

/**
  Constants
*/
* {
  --bg-color: #FFFFFF;
  --primary-color: #EB9423;
  --secondary-color: #584343;
}

/**
  Fonts
*/
* {
  font-family:'Noto Sans JP';
}

/**
  PC / SP Switching
*/
@media screen and (max-width: 768px) {
  .pc {
    display: none;
  }
  .sp {
    --display: block;
    display: var(--display);
  }
}
@media screen and (min-width: 768px) {
  .pc {
    --display: block;
    display: var(--display);
  }
  .sp {
    display: none;
  }
}

/**
  Position Utility
*/
@media screen and (max-width: 768px) {
  .util-pos {
		--sp-position:relative;
		--sp-top:auto;
		--sp-right:auto;
		--sp-bottom:auto;
		--sp-left:auto;
		--sp-z-index:auto;

    position:var(--sp-position);
		top:var(--sp-top);
		right:var(--sp-right);
		bottom:var(--sp-bottom);
		left:var(--sp-left);
		z-index:var(--sp-z-index);
  }
}
@media screen and (min-width: 768px) {
	.util-pos {
		--pc-position:auto;
		--pc-top:auto;
		--pc-right:auto;
		--pc-bottom:auto;
		--pc-left:auto;
		--pc-z-index:auto;

		position:var(--pc-position);
		top:var(--pc-top);
		right:var(--pc-right);
		bottom:var(--pc-bottom);
		left:var(--pc-left);
		z-index:var(--pc-z-index);
	}
}
/**
	Sticky Banner
*/
@media screen and (max-width: 768px) {
  .sticky-banner {
    display: flex;
    justify-content: space-between;
    width:100%;
    position: fixed;
    left:0px;
    bottom: 0px;
    z-index:1000;
  }
  .sticky-banner-tel {
    background-color: var(--primary-color);
    height:100px;
    flex-grow:1;
    display: flex;
    justify-content: center;
  }
  .sticky-banner-email {
    background-color: var(--bg-color);
    height:100px;
    flex-grow:1;
    display: flex;
    justify-content: center;
  }
  .sticky-banner-tel .icon {
    width:150px;
    height:100px;
  }
  .sticky-banner-email .icon {
    width:150px;
    height:100px;
  }
  .sticky-banner-menu .icon {
    width:80px;
    height:100px;
  }
  .pc-sticky-banner {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .sticky-banner {
    display: none;
  }
  .pc-sticky-banner {
    position: fixed;
    right: 0px;
    bottom: 56px;
    display: flex;
    flex-direction: column;
	z-index: 500;
  }
  .pc-sticky-banner-tel {
    margin-bottom:24px;
  }
}
/**
	SP Menu
*/
@media screen and (max-width: 768px) {
  .sp-menu.opened {
    left: 0px;
  }
  .sp-menu {
    transition: 0.5s all;
    display: block;
    width: 100%;
    height: 100svh;
    background-color: var(--primary-color);
    position: fixed;
    top: 0px;
    left: 100%;
    z-index: 1000;
  }
  .sp-menu .wrap {
    width: 350px;
    margin: auto;
  }
  .sp-menu-buttons {
    width: 100%;
    margin-top:12px;
    margin-bottom: 45px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .sp-menu li {
    width: 100%;
    height: 72px;
    line-height: 72px;
    padding-left: 23px;
    border-bottom: 1px white solid;
  }
  .sp-menu li:last-item {
    border-bottom: none;
  }
  .sp-menu li a {
    text-decoration: none;
  }
  .sp-menu-tel {
    display: block;
    width: 304px;
    margin:auto;
    margin-top:77px;
  }
  .sp-menu-email {
    display: block;
    width: 304px;
    margin:auto;
    margin-top:24px;
  }
}
@media screen and (min-width: 768px) {
  .sp-menu {
    display: none;
  }
}
/**
    Header
*/
@media screen and (max-width: 768px) {
  .site-header {
    width: 100%;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top:0px;
    background-color: var(--bg-color);
    z-index: 500;
  }
  .site-header .logo {
    height: 59px;
  }
  .header-padding {
    height:80px;
  }
}
@media screen and (min-width: 768px) {
  .site-header {
    width: 100%;
    height: 96px;
    display: flex;
    justify-content: space-between;
    position: fixed;
    top:0px;
    background-color: var(--bg-color);
    z-index: 500;
  }
  .header-padding {
    height:96px;
  }
  #pc-menu nav, #pc-menu .main, #pc-menu ul {
    height: 96px;
  }
  #pc-menu ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap:0px 64px;
  }
  .site-header a {
    text-decoration: none;
  }
}
/**
	Footer
*/
@media screen and (max-width: 768px) {
  #footer {
    width:100%;
    background-color: var(--primary-color);
    text-align:center;
  }
  #sp-footer-logo {
    width: 284px;
    margin: auto;
    margin-bottom:29px;
	padding-top: 68px;
    --display: inline-block;
  }
  #sp-footer-banner {
    margin: auto;
  }
  #sp-footer-menu a {
    text-decoration: none;
  }
  #footer menu {
    margin: auto;
    width: 350px;
  }
  #footer li {
    width: 350px;
    height: 72px;
    line-height: 72px;
    border-bottom: 1px white solid;
    padding-left:23px;
  }
  #footer li:last-child {
    border-bottom:none;
  }
  .pc-footer-items {
	display: none;
  }
  #copyright {
    text-align: center;
  }
  .sp-footer-tel-no {
    display: flex;
    justify-content: start;
    align-items: center;
    gap: 8px;
    width: 311px;
    margin: auto;
    padding-bottom:39px;
    border-bottom: 1px white solid;
  }
  .sp-footer-tel-no .tel {
    font-family: "Roboto";
    font-weight: bold;
    font-size:24px;
  }
  .sp-footer-tel-no .no {
    font-family: "Roboto";
    font-weight: bold;
    font-size:40px;
  }
  .sp-footer-address {
    margin-top: 22px;
    font-family: "Roboto";
    font-size: 16px;
    text-align: center;
  }
  .sp-footer-arrow-button {
	display: block;
    width: 64px;
    margin: auto;
    margin-top: 48px;
    margin-bottom: 45px;
  }
  .sp-footer-privacy-policy {
    display: block;
	font-family: "Roboto";
    font-size:16px;
    text-align: right;
    text-decoration: none;    
    width: 268px;
    margin: auto;
    padding-bottom: 126px;
	color: #000;
  }
}
@media screen and (min-width: 768px) {
  #sp-footer-menu {
    display:none;
  }
  #footer {
    width:100%;
    background-color: var(--primary-color);
    text-align:center;
    padding: 56px;
  }
  .pc-footer-items {
    width: 1200px;
    margin: auto;
    display:flex;
    justify-content: space-between;
  }
  .pc-footer-left {
    border-right:1px white solid;
    text-align: left;
    flex-grow:1;
    padding-right: 66px;
  }
  .pc-footer-logo {
    display: block;
    width: 317px;
    margin-top: 26px;
    margin-bottom: 30px;
  }
  .pc-footer-address {
    font-family: "Roboto";
    font-weight: bold;
    font-size: 16px;
    margin-bottom: 3px;
  }
  .pc-footer-tel-no {
    display: flex;
    justify-content: start;
    align-items: center;
    gap: 8px;
  }
  .pc-footer-tel-no .tel {
    font-family: "Roboto";
    font-weight: bold;
    font-size:24px;
  }
  .pc-footer-tel-no .no {
    font-family: "Roboto";
    font-weight: bold;
    font-size:40px;
  }
  .pc-footer-right {
    flex-grow:1;
    margin-left: 64px;
  }
  #pc-footer-menu ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  #pc-footer-menu li {
    list-style: none;
  }
  #pc-footer-menu a {
    text-decoration: none;
  }
  #pc-footer-menu {
	font-family: "Noto Sans JP";
    font-size:18px;
    margin-bottom: 37px;
    margin-top: 46px;
  }
  .pc-footer-request {
    margin-bottom: 13px;
    display: block;
  }
  .pc-footer-privacy-policy {
    display: block;
	font-family: "Roboto";
    font-size:16px;
    text-align: right;
    text-decoration: none;
	color: #000;
  }
  #copyright {
    text-align: center;
  }
  .sp-footer-tel-no {
    display: none;
  }
  .sp-footer-address {
	display: none;
  }
  .sp-footer-arrow-button {
    display: none;
  }
  .sp-footer-privacy-policy {
    display: none;
  }
}
/**
*/
.required {
  font-family: "Noto Sans JP";
  font-size: 16px;
  padding: 0px 6px;
  background-color: var(--primary-color);
  color: white;
}
textarea, input[type="text"], input[type="button"], input[type="submit"], input[type="reset"], input[type="search"], input[type="password"] , input {
  background-color: var(--bg-color);
  border: 1px #C6C6C6 solid;
  border-radius: 8px;
  padding: 8px;
  outline: none;
  font-size:16px;
  box-sizing: border-box;
}
input[type="checkbox"] {
  width:27px;
  height:27px;
  border-radius: 8px;
  border: 1px #C6C6C6 solid;  
  box-sizing: border-box;
}
textarea:focus,
input[type="text"]:focus,
input[type="button"]:focus,
input[type="submit"]:focus,
input[type="reset"]:focus,
input[type="search"]:focus,
input[type="password"]:focus,
input:focus {
	border: 1px var(--primary-color) solid;
}


@media screen and (max-width: 768px) {
  table.contact-form,
  .contact-form tr,
  .contact-form th,
  .contact-form td {
    display: block;
    text-align: left;
    width:350px;
  }
  .wpcf7-list-item {
    display: block;
  }
  table.contact-form {
    margin: auto;
    width: 350px;
  }

  .contact-form textarea,
  .contact-form input[type="text"],
  .contact-form input[type="button"],
  .contact-form input[type="submit"],
  .contact-form input[type="reset"],
  .contact-form input[type="search"],
  .contact-form input[type="tel"],
  .contact-form input[type="email"],
  .contact-form input[type="password"]{
    width: 350px;
  }
  .wpcf7-submit {
    display: block;
    width: 248px;
    height: 50px;
    border-radius: 32px !important;
    background-color: var(--primary-color) !important;
    color: white;
    margin: auto;
  }
  .personal-information {
    text-align: center;
  }
}
@media screen and (min-width: 768px) {
  .contact-form {
    border-collapse: collapse;
    width: 960px;
  }
  .contact-form th {
    background-color: #FBF2ED;
    text-align: left;
    border: 1px white solid;
    padding: 37px 24px;
    vertical-align: middle;
    width: 296px;
  }
  .contact-form td {
    border: 1px white solid;
    border:1px #FBF2ED solid;
    padding: 37px 24px;
  }
  .concact-form input,
  .contact-form textarea {
    width: 100%;
  }
  .wpcf7-list-item {
    display: block;
  }
  table.contact-form {
    margin: auto;
  }
  .wpcf7-submit {
    display: block;
    width: 248px;
    height: 50px;
    border-radius: 32px !important;
    background-color: var(--primary-color) !important;
    color: white;
    margin: auto;
  }
  .personal-information {
    text-align: center;
  }
}
@media screen and (max-width: 768px) {
  .footer-sns-area {
    width: stretch;
	text-align: center;
    margin-top: 68px;
	padding-top: 15px;
	padding-bottom: 19px;
	background-image: url('/wp-content/themes/blankslate-child/lib/img/pc_footer_sns_bg.png');
	background-size: cover;
	background-repeat: no-repeat;
  }
	.footer-sns-area-text-block {
		margin-bottom: 17px;
	}
	.footer-sns-area-caption {
		font-size: 40px;
		font-weight: bold;
		font-family: 'Roboto';
	}
	.footer-sns-area-text {
		font-family: 'Noto Sans JP';
		font-size: 14px;
		font-weight: bolder;
		line-height: 24px;
		text-align: center;
    }
	.footer-sns-area-icons {
		display: flex;
		gap: 8px;
		justify-content: center;
	}
	.footer-sns-area-icon {
		width: 50px;
		height: 50px;
	}
}
@media screen and (min-width: 768px) {
  .footer-sns-area {
    width: stretch;
	background-image: url('/wp-content/themes/blankslate-child/lib/img/pc_footer_sns_bg.png');
	background-size: cover;
	background-repeat: no-repeat;
  }
  .footer-sns-area-inner {
    width: 750px;
	margin: auto;
	display: flex;
	justify-content: space-between;
	padding-top: 32px;
	padding-bottom: 32px;
  }
  .footer-sns-area-text-block {
    display: flex;
	gap: 32px;
  }
	.footer-sns-area-caption {
		font-size: 70px;
		font-weight: bold;
		font-family: 'Roboto';
	}
	.footer-sns-area-text {
		font-family: 'Noto Sans JP';
		font-size: 16px;
		font-weight: bolder;
		line-height: 32px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
    }
	.footer-sns-area-icons {
		display: flex;
		gap: 16px;
	}
	.footer-sns-area-icon {
		width: 100px;
		height: 100px;
	}
}

