@charset 'UTF-8';
/*
Theme Name: CantanDo
Description: WordPress CantanDo Site
Version: 1.0
Author: h.hirayama
Author URI: https://cantan-do.com
*/

.hidden {
  display: none;
}

:root {
  /* Color */
  --black: #1d1d1f;
  --light-grey: #f8f8f8;
  --grey: #737e82;
  --dark-grey: #424042;
  --green: #1d8592;
  --light-green:#d2dde5;
  --dark-green: #0b454d;
  --dark-blue: #033491;
  --brown: #572d18;
  --white: #ffffff;
  
  /* Font/Space Size */
  --font-sm: 15px;
  --font-md: 18.5px;
  --font-lg: 22px;
  --font-xlr:25px;
  --font-xl: 30px;

  /* Border Radius Size */
  --round-sm: 3px;
  --round-md: 5px;
  --round-lg: 50%;
}

/*.grecaptcha-badge { visibility: hidden; }*/

body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: var(--font-md);
  color: var(--black);
  line-height: 1;
  background: var(--white);
}
img {
  max-width: 100%;
}
.header-inner {
  width: 100%;
  height: 75px;
  padding: 15px 50px 0 30px;
  display: flex;
  align-items: center;
}
.header-inner p {
  font-size: var(--font-md);
}
.header-logo {
  width: 260px;
}

/* MENU */
.header-site-menu {
  margin: 0 0 0 auto;
}
.site-menu {
  display: flex;
}
.menu-item {
  color: var(--dark-green);
  font-weight: bold;
  margin-left: 20px;
  margin-right: 20px;
}
.menu-item a:hover {
  background: var(--dark-green);
  color: var(--white);
}
.menu-item-has-children {
  position: relative;
}
.menu-item-has-children:hover .sub-menu {
  display: block;
}
.menu-item-has-children:hover .sub-menu a {
  display: block;
}
.sub-menu {
  display: none;
  position: absolute;
  width: 240px;
  margin-top: 5px;
  border-radius: 5px;
  background: rgba(210, 221, 229, 0.8);
  padding-bottom: 12px;
  text-align: start;
  line-height: 2rem;
  font-feature-settings: 'palt' on;
  z-index: 10;
}
.sub-menu > .menu-item {
  color: var(--brown);
  border-top: 5px solid transparent;
  border-bottom: 1.5px solid var(--brown);
}

/* FOOTER */
.footer {
  color: var(--white);
  background: var(--dark-green);
  display: flex;
  flex-direction: column;
  margin-top: 50px;
}
.footer-logo {
  display: block;
  width: 200px;
  margin: 15px auto 0;
}
.footer-contact {
  font-size: var(--font-md);
  margin: 20px auto 0;
}
.footer-mail {
  font-size: var(--font-sm);
  margin: 12px auto 0;
}
.footer-mail a {
  text-decoration: underline;
}
.copyright {
  font-size: var(--font-sm);
  margin: 30px auto 10px;
}
.typeing span {
    opacity: 0;
}
.first-view {
  height: calc(80vh - 75px);
  background-image: url(images/site/bg-main.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% auto;
  display: flex;
}
.first-view-text {
  width: 100%;
  max-width: 1200px;
  padding: 80px 0 0 80px;
  color: var(--white);
  font-weight: bold;
  text-shadow: 1px 1px 10px var(--brown);
}
.first-view-text h1 {
  font-size: 60px;
  line-height: 72px;
  margin-top: 25px;
}
.first-view-text h2 {
  font-size: var(--font-xl);
  line-height: 1.4em;
  margin-top: 10px;
}
.first-view-text p {
  font-size: var(--font-md);
  font-weight: normal;
  margin-top: 25px;
}
.lead {
  max-width: 1200px;
  margin: 20px auto;
}
.sp-br {
  display: none;
}
.lead p {
  font-size: var(--font-md);
  color: var(--dark-green);
  line-height: 2;
  text-align: center;
}
.works {
  display: block;
}
.works-title {
  display: flex;
  justify-content: center;
  align-items: end;
  background: var(--light-grey);
  padding: 15px 0 25px;
  font-weight: bold;
  color: var(--dark-green);
}
.works-title h2 {
  font-size: var(--font-xl);
}
.works-title p {
  font-size: var(--font-lg);
  padding-left: .5rem;
}
.item-list {
  display: flex;
  padding-top: 25px;
  padding-bottom: 20px;
  padding-left: 60px;
  padding-right: 60px;
  overflow: scroll;
}
.item-list li {
  flex-shrink: 0;
  width: 260px;
  margin-left: 75px;
}
.item-list li:-child {
  margin-left: 0;
}
.item-list dl {
  margin-top: 20px;
}
.item-list dt {
  font-weight: bold;
  color: var(--dark-green);
}
.item-list dd {
  font-size: var(--font-sm);
  line-height: 20px;
  margin-top: 10px;
}
.item-list .process {
  font-weight: bold;
  margin-top: 15px;
}

/* LAYOUT  */
img,
iframe {
  max-width: 100%;
}
.wrapper {
  width: 100%;
  max-width: 1200px;
  padding: 0 3rem;
  margin: 15px auto 15px;
}
.main-contents {
  margin-bottom: 3rem;
}

/* POST LIST */
.home .post-list,
.archive .post-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
.post-list-header {
  text-align: center;
  font-size: var(--font-xl);
  font-weight: bold;
  color: var(--dark-green);
  padding: 20px;
}
.post-item {
  background: var(--light-grey);
  border-radius: var(--round-md);
  position: relative;
}
.post-item .wp-post-image {
  border-radius: var(--round-md) var(--round-md) 0 0;
  aspect-ratio: 16 / 9;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.post-title {
  height: auto;
  font-weight: bold;
  line-height: 1.5rem;
  word-break: break-word;
  padding: .5rem 1.5rem .5rem;
}
.post-date {
  color: var(--grey);
  font-size: var(--font-sm);
  display: flex;
  justify-content: flex-end;
  padding: .5rem .8rem .5rem 0;
}
.post-categories {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.post-categories li {
  background: var(--green);
  color: var(--white);
  font-size: var(--font-sm);
  border-radius: var(--round-sm);
  padding: .5rem;
}
.nav-links {
  display: flex;
  justify-content: center;
  gap: 2rem;
  padding-top: 3rem;
}
.more-posts {
  display: flex;
  justify-content: center;
  padding-top: 3rem;
}
.more-btn {
  font-size: var(--font-md);
  text-align: center;
  color: var(--dark-blue);
}
.more-text {
  font-size: var(--font-lg);
  color: var(--dark-green);
  padding-top: .75rem;
}
.more-btn,
.nav-links a {
  padding: .6rem 1rem .6rem;
  background: var(--green);
  border-radius: 4px;
  color: var(--white);
}

/* ARCHIVE */
.page-title {
  font-size: var(--font-lg);
  font-weight: bold;
  color: var(--dark-green);
  padding-left: 1rem;
}

/* SINGLE / PAGE ARTICLE */
.single .post-title,
.page .post-title {
  font-size: var(--font-lg);
}
.single .post-header {
  height: auto;
  padding: 1rem .5rem 0 3rem;
}
.page .post-header {
  height: auto;
  padding: 1rem .5rem 0 3rem;
}
.single .post-title,
.page .post-title {
  font-size: var(--font-xl);
  font-weight: bold;
  color: var(--dark-green);
  line-height: 2rem;
  height: auto;
  background: url(images/site/logo-icon.png) left top/42px 42px no-repeat;
  background-position:left 0 top 3px;
  padding-left: 4rem;
}
.post-content {
  margin-top: 1rem;
  padding-bottom: .2rem;
}
.post-content p {
  line-height: 1.7rem;
  margin: .8rem 0 2.8rem;
}
.post-content a {
  color: var(--green);
  text-decoration: underline;
}
.post-content a:hover {
  color: var(--dark-blue);
}
.post-content h2,
.post-content h3 {
  font-size: var(--font-xlr);
  font-weight: bold;
  line-height: 1.7rem;
  border-bottom: 5px solid var(--dark-green);
  padding: 0 .5rem .4rem .5rem;
  margin: 1rem 0 .5rem;
}
.post-content h3 {
  font-size: var(--font-xlr);
  color: var(--dark-green);
  border-bottom: 1px solid var(--dark-grey);
}
.post-content h4 {
  font-size: var(--font-lg);
  padding: 0 0 .4rem .5rem;
}
.post-content h4,
.post-content h5,
.post-content h6 {
  font-weight: bold;
}
.post-content h5,
.post-content h6,
.post-content ul,
.post-content ol,
.post-content figure,
.post-content blockquote,
.post-content pre {
  padding: .3rem .4rem .3rem .4rem;
  margin-bottom: .5rem;
}
.post-content figcaption {
  font-size: var(--font-md);
  text-align: center;
}
.post-content img {
  margin-bottom: 1rem;
}
.post-content .wp-block-image:not(.is-style-rounded) img {
  border-radius: var(--round-md);
}
.post-content ul {
  padding-left: 3.5rem;
  list-style: inside;
}
.post-content ol {
  padding-left: 4rem;
  list-style: decimal;
}
.post-content li {
  line-height: 1.5;
}
.post-content li::marker {
  color: var(--dark-green);
}
.post-content blockquote {
  background: var(--white);
  padding: 1.5rem 1.5rem .25rem 2.5rem;
  border-radius: var(--round-md);
  position: relative;
}
.post-content blockquote cite {
  margin-bottom: 1.5rem;
  display: inline-block;
}
.post-footer {
  padding-bottom: .3rem;
}
.post-content code,
.post-content kbd {
  background: var(--white);
  padding: 3px;
  border-radius: 3px;
  margin: 0 3px;
}

/* TAG LIST */
.tags-links li {
  display: inline-block;
  font-size: var(--font-sm);
  border: 1px solid var(--dark-grey);
  border-radius: var(--round-md);
  background: var(--white);
  padding: .5rem .5rem .5rem;
  margin-right: .5rem;
  margin-bottom: .25rem;
}
.tags-links li:hover {
  background: var(--grey);
}
.tags-links a {
  color: var(--dark-green);
}
.tags-links a::before {
  content: '#';
  color: var(--dark-green);
  margin-right: .25rem;
}
.tags-links a:hover {
  color: var(--black);
}

/* BLOCK */
.wp-caption {
  max-width: 100%;
}
a.wp-block-button__link {
  color: var(--white);
  text-decoration: none;
}
.wp-block-code {
  font-family: Menlo,Consolas,monaco,monospace;
  padding: 0.8em 1em;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: var(--font-sm);
  line-height: 1.5;
}
.wp-block-code code {
  background: none;
}
.wp-block-table table {
  border-collapse: collapse;
  width: 100%;
}
.wp-block-table thead {
  border-bottom: 3px solid;
}
.wp-block-table td,
.wp-block-table th {
  padding: 0.5em;
  border: 1px solid;
  word-break: normal;
}
.wp-block-separator {
  margin: 2rem auto;
  border-color: var(--light-grey);
  width: 100px;
}
.wp-block-calendar {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

/* SP SIZE /////////////////////////////////////*/

@media (max-width: 850px) {

:root {
  --font-sm: 13px;
  --font-md: 16px;
  --font-lg: 18.5px;
  --font-xlr: 20px;
  --font-xl: 24px;
}
.menu-item {
  line-height: 2.5rem;
}
.site-menu {
  display: block;
  text-align: center;
}
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: var(--white);
  height: 50px;
  z-index: 10;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
}
.header-inner {
  padding: 10px 0 0 0;
  height: 100%;
  position: relative;
}
.header-inner p {
  font-size: 11px;
}
.header-logo {
  width: 160px;
}
.header-site-menu {
  position: absolute;
  top: 100%;
  left: 20%;
  right: 20%;
  font-size: var(--font-lg);
  color: var(--white);
  background-color: rgba(248, 248, 248, 0.8);
  padding-top: 20px;
  padding-bottom: 20px;
  z-index: 1;
  display: none;
}
.header-site-menu.is-show {
  display: block;
}
.toggle-menu-button {
  margin: 0 0 0 auto;
  display: block;
  width: 56px;
  height: 42px;
  background-image: url(images/site/icon-menu.png);
  background-size: 50%;
  background-position: center;
  background-repeat: no-repeat;
  background-color: transparent;
  border: none;
  border-radius: 0;
  outline: none;
}
.footer {
  margin-top: 15px;
}
.footer-logo {
  margin-top: 10px;
}
.footer-contact {
  font-size: 16px;
}
.first-view {
  height: calc(70vh);
  background-image: url(images/site/bg-main-sp.jpg);
  background-position: top;
}
.first-view-text {
  padding-top: 30px;
  padding-left: 20px;
}
.first-view-text h1 {
  font-size: 35px;
  line-height: 35px;
}
.first-view-text h2 {
  font-size: 16px;
  margin-top: 15px;
}
.first-view-text p {
  font-size: 14px;
  padding-right: 10px;
}
.lead {
  margin: 20px 0 0;
  padding-left: 20px;
  padding-right: 20px;
}
.sp-br {
  display: block;
}
.lead p {
  font-weight: bold;
  line-height: 1.8rem;
}
.works {
  margin-top: 20px;
}
.item-list {
  padding-left: 20px;
  padding-right: 20px;
}
.item-list li {
  width: 220px;
  margin-left: 30px;
}

/* LAYOUT */
.wrapper {
  width: 100%;
  margin: 10px auto 10px;
  padding: 0 .7rem;
}
/* ARCHIVE */
.page-title {
  font-size: var(--font-md);
  padding: 0;
}
/* POST LIST */
.post-title {
  height: auto;
  font-weight: bold;
  padding: .5rem .7rem 0;
}
.home .post-list,
.archive .post-list {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1rem;
  margin-bottom: 3rem;
}
.more-posts,
.nav-links {
  padding: 0 0 2rem 0;
}
.single .post-header {
  padding: .5rem .5rem .5rem .5rem;
}
.page .post-header {
  padding: 1rem;
}
.single .post-title,
.page .post-title {
  font-size: var(--font-xl);
  font-weight: bold;
  padding: 4rem 0 1rem 0;
  background-position:left 0 top .5px;
  line-height: 1.7rem;
}
.page .post-title {
  text-align: center;
  font-size: var(--font-xl);
}
.post-content {
  margin-top: .5rem;
}
.post-content p {
  line-height: 1.7rem;
  margin-bottom: 1.8rem;
}
.post-content h2,
.post-content h3,
.post-content h4 {
  line-height: 1.5rem;
  padding: 0 0 .4rem 0;
  margin: 1rem 0 .5rem;
}
.post-content pre {
  margin-bottom: 1rem;
}
.post-content blockquote {
  padding: 1rem 1rem .25rem 2rem;
}
.post-footer {
  padding-bottom: .1rem;
}

}