@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*必要ならばここにコードを書く*/
/* ====== 📌 最小限のリセットCSS ====== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html, body {
    width: 100%;
    height: 100%;
}

/* リストのデフォルトスタイルを削除 */
ul, ol {
    list-style: none;
}

/* aタグのデフォルト装飾を削除 */
a {
    text-decoration: none;
    color: inherit;
}

/* ボタンのデフォルトスタイルを削除 */
button {
    background: none;
    border: none;
    cursor: pointer;
    font: inherit;
}

/* 画像の余白を削除 */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* フォントのサイズを継承 */
input, textarea, select, button {
    font: inherit;
}


/* ====== default消す ====== */
.content-in.wrap {
    width: 100%;
}
.content {
	margin-top: 0;
}
.main {
	padding: 0;
    border: none;
}
main.main {
	padding: 0;
}
.container {
	width: 100%;
}
.body.public-page {
	margin: 0;
}

/* ====== CSS ====== */
body {
    margin: 0;
    padding: 0;
    width: 100%;
    min-height: 100dvh;
    background-color: #d0e6e3;
    opacity: 1;
    font-family: 'Sawarabi Gothic', sans-serif;
    font-size: clamp(0.875rem, 1.1vw, 1rem);
    color: #614d40;
    line-height: 1.8;
}

h1,h2 {
    font-family: 'Josefin Sans', sans-serif , 'Sawarabi Gothic', sans-serif;
}
h1 {
    font-size: clamp(1.3rem, 2.2vw, 2.0rem);
    font-weight: bold;
}
h2 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    position: relative;
    font-size: clamp(1.2rem, 1.7vw, 1.5rem);
    font-weight: normal;
    margin-top: 16px;
}
h3 {
    padding: 2px 16px;
    border-left: 4px solid #614d40;
    margin-bottom: 16px;
    font-weight: normal;
    font-size: 1.2rem;
}
h4 {
	font-size: 1.2rem;
	font-weight: 400;
}
h5 {
	font-size: 1.0rem;
	font-weight: 400;
}
p {
    text-align: justify;
    font-size: 1.0rem;
}

/* 日本語テキストが含まれる要素に適用 */
.japanese-text {
    font-family: 'Sawarabi Gothic', sans-serif;
}

.english-text {
    font-family: 'Josefin Sans', sans-serif;
    letter-spacing: 0.05em;
}
.logo.logo-header.logo-text {
	display: none;
}

header {
    position: fixed;
    top: 0;
    left: 0;
    width: 80px;
    height: 100dvh;
    background-color: #614d40;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.menu-section {
    width: 100%;
    align-items: center;
    position: relative;
    top: clamp(80px, 8.3vw, 120px);
    height: 120px;
    background-color: #f5e4e1;	
	cursor: pointer;
}
.menu-section::before {
    content: "";
    position: absolute;
    top: 4px;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #614d40;
}
.menu-section::after {
    content: "";
    position: absolute;
    bottom: 4px;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #614d40;
}

.menu-icon-container {
    display: flex;
    position: relative;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    margin-top: 6px;
    z-index: 20;
    text-align: center;
}
.hamburger {
    width: 40px;
    height: 25px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;

}
.hamburger span {
    display: block;
    width: 100%;
    height: 4px;
    background-color: #614d40;
    border-radius: 2px;
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
}

/* ハンバーガーメニューの開閉アニメーション */
.hamburger.open span:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
}
.hamburger.open span:nth-child(2) {
    opacity: 0;
}
.hamburger.open span:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
}
.menu-text {
    font-size: clamp(0.875rem, 1.5vw, 1.2rem); /* 14px ～ 19px */
    margin-top: clamp(8px, 1.1vw, 16px);
    font-weight: bold;
    line-height: 1;
}
.contact-section {
    position: absolute;
    bottom: 60px;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.contact-icon-container {
    position: relative;
    width: 48px;
    height: 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.contact-icon-container img {
    width: 48px;
    height: 48px;
}
.contact-icon {
    width: 48px;
    height: 48px;
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/contact-icon.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.contact-text {
    position: absolute;
    top: 24px;
    left: 50%;
    transform: translateX(-50%);
    width: 100px;
    height: 40px;
    font-size: clamp(1.2rem, 1.7vw, 1.5rem);
    fill: #d0e6e3;
    letter-spacing: 0.15em;
}

/* main */
.main-content {
    margin-left: 80px;
    width: calc(100% - 80px);
	display: flex;
    align-items: center;
}

/* tab */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

body.page-template-page-archive {
    display: flex;
    justify-content: center; /* 中央揃え */
    align-items: center; /* 縦方向も中央揃え */
    min-height: 100dvh;
	height: auto;
    overflow-y: hidden; /* デフォルトではスクロールなし */
}
body.page-template-page-archive.scrollable {
    overflow-y: auto;
    justify-content: flex-start; /* 上揃え */
    align-items: flex-start; /* 上揃えに変更 */
	margin-top: 40px;
}
#web-design,
#graphic-design,
#about {
scroll-margin-top: 70px;
}

.tab-container {
	width: 95%;
	margin: 0 auto;
    display: flex;
    flex-direction: column;
    height: 100%;
	min-height:720px;
}

.tab-header {
    display: flex;
    gap: clamp(6px, 0.7vw, 10px);
}
.tab-button {
    font-size: clamp(1.1rem, 1.9vw, 1.75rem);/* 19px ～ 28px */
    padding: clamp(2px, 0.5vw, 6px) clamp(15px, 1.4vw, 20px);
    border: none;
    border-radius: clamp(8px, 0.8vw, 12px) clamp(8px, 0.8vw, 12px) 0 0;
    cursor: pointer;
    border: 2px solid #614d40;
    color: #614d40;
    text-shadow: 2px 2px #fff;
    font-weight: bold;
    line-height: 1.4;
}
.tab-content {
    margin-top: -2px;
}
.tab-panel {
    display: none;
	padding: clamp(16px, 1.7vw, 24px);
    border: 2px solid #614d40;
    border-radius: clamp(8px, 0.8vw, 12px);
}
.tab-panel.active {
    display: flex;
    flex-direction: column;
	min-height: 666px;
}
.tab-button-web {
    margin-left: 24px;
    background-color: #d0e6e3;
}
.tab-button-web.active {
    background-color: #d0e6e3;
    border-bottom: 2px solid #d0e6e3;
    position: relative;
    z-index: 10;
}
.tab-button-graphic {
    background-color: #9AC6C0;
}
.tab-button-graphic.active {
    background-color: #9AC6C0;
    border-bottom: 2px solid #9AC6C0;
    position: relative;
    z-index: 10;
}
.tab-button-about {
    background-color: #f5e4e1;
}
.tab-button-about.active {
    background-color: #f5e4e1;
    border-bottom: 2px solid #f5e4e1;
    position: relative;
    z-index: 10;
}
.web-design-tab {
    background-color: #d0e6e3;
}
.graphic-design-tab {
    background-color: #9AC6C0;
}
.about-tab {
    background-color: #f5e4e1;
	justify-content: space-around;
}

/*　格子の背景を画面全体に固定　*/
.grid-background {
    position: fixed; /* 画面に対して固定 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    z-index: -1; /* 他の要素の背面に配置 */
    background-color: #d0e6e3;
    background-size: 16px 16px;
    background-image:
        repeating-linear-gradient(0deg, #ededed, #ededed 1px, transparent 1px, transparent 16px),
        repeating-linear-gradient(90deg, #ededed, #ededed 1px, transparent 1px, transparent 16px);
}
/* 実績一覧card */
.card-container {
    display: flex;
    overflow-x: auto;/* 📌 PCでは横スクロール可能にする */
    overflow-y: hidden;/* 📌 縦スクロールを無効化 */
    width: 100%;
    scroll-behavior: smooth;
    position: relative;
    transition: transform 0.3s ease-in-out;
    scrollbar-width: thin;/* Firefox用: スクロールバーを細くする */
    scrollbar-color: currentColor transparent; /* 📌 スクロールバーの色を背景色に合わせる */
	padding-bottom: 12px;
}

/* 📌 Webkit系ブラウザ (Chrome, Edge, Safari) 用のスクロールバーのカスタマイズ */
.card-container::-webkit-scrollbar {
    height: 8px; /* スクロールバーの高さ */
}
.card-container::-webkit-scrollbar-track {
    background: transparent;/* 📌 背景を透過にして tab-panel の背景が見えるように */
}
.card-container::-webkit-scrollbar-thumb {
    background: currentColor;/* 📌 tab-panel の文字色と同じ色にする */
    border-radius: 10px;
}
.card-container::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.5); /* ホバー時に少し濃くする */
}
.card {
	flex: 0 0 clamp(260px, 25vw, 320px);
    display: flex;
	justify-content: start;
    background-color: #fff;
    border-radius: 12px;
    border: 2px solid #614d40;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    flex-direction: column;
    align-items: center;
    position: relative;
    margin-left: -20px; /* 20px 重なる */
    transition: margin-left 0.3s ease-in-out, z-index 0.3s ease-in-out;
    margin-top: 12px;
	padding: 20px;
	gap: 16px;
	z-index: var(--index);
	min-height: 522px;
}

.card-container:hover .card {
    margin-left: 10px;
}

/* 最初のカードだけ左のマージンを 0 に */
.card:first-child {
    margin-left: 0;
}

/* **ホバー時に重なりをなくす** */
.card-container:hover .card {
    margin-left: 10px;
}

/* カード内のリンクのホバー時の色を変更しない */
.card a:hover,
.card a:focus {
    color: inherit !important; /* 親要素の色をそのまま適用 */
    text-decoration: none !important; /* 下線も消す */
}

/* card scroll-bottam */
.scroll-indicator {
    font-size: 1rem;
    color: #614d40;
    cursor: pointer;
    padding: clamp(3px, 0.4vw, 6px) clamp(10px, 1.4vw, 20px) clamp(1.5px, 0.2vw, 3px);
    background: rgba(255, 255, 255, 0.8);
    border-radius: 20px;
    transition: background 0.3s, transform 0.3s;
    display: flex;
    align-items: center;
    margin-right: 20px;
    margin-left: 12px;
    white-space: nowrap;
    font-weight: bold;
}
.scroll-indicator:hover {
    background: #614d40;
    color: white;
    transform: translateX(5px); /* ホバー時に少し右に動く */
}
.card-image img {
    display: block;
    margin: 0 auto;
}
.card-content {
    text-align: center; /* 中央揃え */
	display: flex;
	flex-direction: column;
}
.card-text {
	font-size: 1rem;
    text-decoration-line: underline;
 	text-decoration-color: #614d40;
	text-underline-offset: 4px;
    flex-direction: column;
	margin-top: 16px;
}
.card-title {
    font-size: 1.2rem;
	font-family: 'Sawarabi Gothic', sans-serif;
    text-decoration-line: underline;
 	text-decoration-color: #614d40;
	text-underline-offset: 4px;
    flex-direction: column;
	margin-top: 12px;
}
h3.card-title {
    padding: 0;
    border-left: none;
    margin-bottom: 12px;
}
.card-more {
    display: flex;
    align-items: center; /* テキストとアイコンを揃える */
    gap: 8px; /* アイコンとの間隔を調整 */
    position: absolute;
    bottom: 10px; /* カードの下端からの距離 */
    right: 10px; /* 右端からの距離 */
}
.card-more p {
	font-family: 'Josefin Sans', sans-serif;
}
.card-more img {
	width: 16px;
	height: 16px;	
}
.card-category {
    border-radius: 20px;
    color: #fff;
    background: #614d40;
    text-align: center;
    padding: 3px 20px 0px 20px;
    font-size: 0.9rem;
    margin: 4px;
    font-family: 'Josefin Sans', sans-serif;
	display: inline-block;
}
.card-meta｛
    display: flex;
	flex-direction: column;
}
.card-tags {
    display: flex;
    flex-direction: column;
}
.tag-item {
	font-size: 0.9rem;
    font-family: 'Josefin Sans', sans-serif;
	margin: 8px
}
.card-description {
	font-size: 1rem;
	text-align:justify;
	flex-grow: 1;
	padding-bottom: 12px;
}

/* about */
/* 📌 profile と skill を横並び */
.profile-skill-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 5vw; /* 適度な間隔 */
    flex-wrap: wrap; /* スマホでは縦並び */
}
.profile {
    flex: 1;
    min-width: 280px; /* 小さくなりすぎないように */
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.skill {
    flex: 1;
    min-width: 280px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* 📌 nicoloa と img を横並び */
.nicoloa-container {
    display: flex;
	align-items: center;
    justify-content: space-between;
    gap: 5vw;
    flex-wrap: wrap;
}
.nicoloa {
    flex: 1;
    min-width: 300px;
    margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.my-icon {
    display: flex;
    align-items: center;
}
.nicoloa-container img {
    width: clamp(260px, 25vw, 400px);
    height: auto;
}
.circle {
    display: inline-block;
    border-radius: 50%;
    color: #f5e4e1;
    width: 28px;
    height: 28px;
    background: #614d40;
    text-align: center;
    margin: 2px;
}
li {
    list-style-type: none;
    display: inline-block;
    border-radius: 20px;
    color: #f5e4e1;
    background: #614d40;
    text-align: center;
    padding: 3px 20px 0px 20px;
    font-size: 0.9rem;
    margin: 4px;
    font-family: 'Josefin Sans', sans-serif;
    letter-spacing: 0.05em;
}
.nicoloa-jp {
    font-size: clamp(1rem, 1.4vw, 1.3rem);
}
.nicoloa-h2 {
    display: block;
    margin-top: 0;
}
.answer {
    margin-left: 32px;
}

/* 固定ページframe */
.main-frame {
    position: relative;
    top: 0;
    left: 0px; 
    width: 100%;
    height: 100dvh;
    background-color: #d0e6e3;
    display: flex;
    justify-content: center;
    align-items: center;
	visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
	visibility: visible !important;
    opacity: 1 !important;
}
.corner-decoration {
    width: 8%;
    aspect-ratio: 1 / 1;
    padding-top: 8%;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.top-left {
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/top-left.png');
}
.top-right {
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/top-right.png');
}
.bottom-left {
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/bottom-left.png');
}
.bottom-right {
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/bottom-right.png');
}
.fram-top {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    width: calc(100% - 6vw);
}
.line-top {
    position: relative;
    flex-grow: 1;
    height: 3px;
    background: #614d40;
    border-radius: 2px;
}
.line-top::before {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: -4px;
    left: 4px;
    right: 4px;
    height: 1px;
    background: #614d40;
    border-radius: 1px;
}
.fram-bottom {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-end;
    width: calc(100% - 6vw);
}
.line-bottom {
    position: relative;
    flex-grow: 1;
    height: 3px;
    background: #614d40;
    border-radius: 2px;
}
.line-bottom::before {
    content: '';
    display: inline-block;
    position: absolute;
    top: -4px;
    left: 4px;
    right: 4px;
    height: 1px;
    background: #614d40;
    border-radius: 1px;
}
.fram-center {
    display: flex;
    justify-content: space-between;
    flex-grow: 1;
    width: calc(100% - 6vw);
}
.line-right {
    position: relative;
    width: 3px;
    background: #614d40;
    height: auto;
    border-radius: 2px;
}
.line-right::before {
    content: '';
    display: inline-block;
    position: absolute;
    top: 4px;
    bottom: 4px;
    right: -4px;
    width: 1px;
    background: #614d40;
    border-radius: 1px;
}
.line-left {
    position: relative;
    width: 3px;
    background: #614d40;
    height: auto;
    border-radius: 2px;
}
.line-left::before {
    content: '';
    display: inline-block;
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: -4px;
    width: 1px;
    background: #614d40;
    border-radius: 1px;
}
.frame-border {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    flex-direction: column;
    height: calc(100% - 6vw);
    width: 100%;
}

/* contact */
.contact-form {
    display: flex;
    position: absolute;/* 背景の上に配置 */
	top: 0;
	bottom: 0;
	left: 80px;
	right: 0;
	margin: auto;
    gap: 5vw;
    z-index: 10; /* `.main-frame` より前面に */
    width: fit-content;
    max-width: calc(100% - 24vw);
    height: 70%;
    overflow-y: scroll;
}

/* 📌 Chrome, Safari のスクロールバー非表示 */
.contact-form::-webkit-scrollbar {
    display: none;
}
.contact {
    display: flex;
    margin-top: 2vw;
    flex-direction: column;
    gap: clamp(10px, 1.4vw, 20px);
    text-align: justify;
}

/* contadt form */
/* フォームタイトルのスタイル */
.form {
	padding-top: 5vw;
	font-family: 'Josefin Sans', sans-serif;
    font-size: 1.2rem;
	max-width: 400px;
    margin: 0 auto;
}
.wpcf7 input[type="submit"] {
    width: 50%;         /* 幅を 50% に設定 */
    display: block;     /* ブロック要素にする（中央寄せが可能） */
    margin: 0 auto;     /* 左右のマージンを自動にして中央揃え */
}

/* フォーム内の入力フィールドのスタイル */
input:-webkit-autofill {
    background-color: #fff !important;
    color: #000 !important;
    box-shadow: 0 0 0px 1000px white inset !important;
	
}

.form input[type="text"], 
.form input[type="email"],
.form textarea {
    background-color: rgba(255, 255, 255, 0.3); /* 半透明背景 */
    color: #614d40; /* 文字色 */
    border: 1px solid #614d40; /* 枠線 */
    padding: 10px;
    border-radius: 4px;
    width: 100%;
    margin-bottom: 10px;
    opacity: 1; /* 透明度設定 */
	font-family: 'Sawarabi Gothic', sans-serif;
}
.form input[type="text"]:focus, 
.form input[type="email"]:focus, 
.form textarea:focus {
	background-color: #fff; /* 背景を白に */
    color: #000; /* 文字を黒に */
    border: 1px solid #614d40; /* 枠線を設定（必要に応じて変更） */
    outline: none; /* フォーカス時のアウトラインを削除 */
    outline: none; /* デフォルトのオレンジ枠を消す */
    border-color: #614d40; /* 通常時と同じ枠の色にする */
    box-shadow: none; /* 影を消す（ブラウザによって異なるため） */
}

.wpcf7 form.sent .wpcf7-response-output {
    border: none;
}

/* ボタンのスタイル */
.form input[type="submit"] {
    background-color: #614d40;
    color: #d0e6e3;
    padding: 8px 12px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    margin-top: 16px;
}
.form input[type="submit"]:hover {
    background-color: rgba(97,77,64,0.8);
}

/* 必須項目 */
.required {
	background: #614d40;
    color: #d0e6e3;
    padding: 5px 8px 3px 8px;
    font-size: 0.8rem;
	border-radius: 20px;
	margin-left: 8px;
}
/* プライバシーポリシーのリンク */
.wpcf7-list-item-label a {
    text-decoration: underline; /* 下線をつける */
    color: inherit; /* デフォルトの文字色を保持 */
}

/* privacy policy */
.privacy-policy {
    flex-direction: column;
    position: absolute; /* 背景の上に配置 */
	top: 0;
	bottom: 0;
	left: 80px;
	right: 0;
	margin: auto;
    z-index: 10; /* `.main-frame` より前面に */
    max-width: calc(100% - 24vw);
    text-align: justify;
    height: 70%;
    overflow-y: scroll;
}
#about h2 {
	margin-top: 0;
}
#about.tab-panel {
	gap: 24px;
}

body.page-template-page-privacy-policy h2.wp-block-heading {
	padding: 2px 16px;
    border-left: 4px solid #614d40;
    margin-bottom: 16px;
	font-size: clamp(1.1rem, 1.33vw, 1.2rem);
}

/* 📌 Chrome, Safari のスクロールバー非表示 */
.privacy-policy::-webkit-scrollbar {
    display: none;
}
.policy {
    margin-top: 32px;
    gap: 8px;
}
.page-content {
	margin-top: 40px;
}
.page-content p {
	margin-bottom: 40px;
}
.body.public-page {
	width: 100%;
	height: 100vh;
	overflow: hidden;
}

/* top page FV */
.top-page {
    display: flex;
    flex-direction: column;
    position: absolute; /* 背景の上に配置 */
    top: 0;
	bottom: 0;
	left: 80px;
	right: 0;
	margin: auto;
    z-index: 10;  /* `.main-frame` より前面に */
    height: 85%;
    max-width: calc(100% - 14vw);
	align-items: center;
	overflow-y: scroll;
}

/* 📌 Chrome, Safari のスクロールバー非表示 */
.top-page::-webkit-scrollbar {
    display: none;
}

.title {
    height: 20%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.main-img-conteainer {
    position: relative;
    display: flex;
	margin: auto;
}

/* 画像を親要素に収める */
.title img,
.main-img-conteainer img {
    width: 500px;
    object-fit: contain;/* 画像の縦横比を保持しながら調整 */
}
h2.home-text {
	margin-top: 0;
	font-size: 1.5rem;
	}
.web-design-text-container {
    position: absolute;
    top: 140px;
    left: -128px;
    display: flex;
    border-bottom: 2px solid #614d40;
    align-items: end;
    line-height: 1.0;
    font-size: 1.5rem;
}
.web-design-text-container::after {
    position: relative;
    top: 55px;
    left: 31px;
    display: inline-block;
    content: "";
    background: #614d40; /*斜め線の色*/
    width: 2px;/*斜め線の太さ*/
    height: 3em; /*斜め線の長さ*/
    transform: translateY(-50%);
    transform: rotate(-60deg);/*角度調整*/
}
.end-circle {
    position: relative;
    left: 66px;
    top: 41px;
    width: 8px;
    height: 8px;
    background-color: #614d40;
    border-radius: 50%;
}
.arrow-icon {
    width: 1.4rem;
    height: 1.4rem;
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/arrow.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin: 4px;
}
.about-text-container {
    position: absolute;
    top: 90px;
    right: 12px;
    display: flex;
    border-bottom: 2px solid #614d40;
    align-items: end;
    line-height: 1.0;
    font-size: 1.5rem;
}
.about-text-container::before {
    position: relative;
    top: 55px;
    left: -31px;
    display: inline-block;
    content: "";
    background: #614d40; /*斜め線の色*/
    width: 2px;/*斜め線の太さ*/
    height: 3em; /*斜め線の長さ*/
    transform: translateY(-50%);
    transform: rotate(60deg);/*角度調整*/
}
.end-circle-about {
    position: relative;
    right: 160px;
    top: 41px;
    width: 8px;
    height: 8px;
    background-color: #614d40;
    border-radius: 50%;
}
.graphic-text-container {
    position: absolute;
    top: 300px;
    right: -190px;
    display: flex;
    border-bottom: 2px solid #614d40;
    align-items: end;
    line-height: 1.0;
    font-size: 1.5rem;
}
.graphic-text-container::before {
    position: relative;
    top: 55px;
    left: -31px;
    display: inline-block;
    content: "";
    background: #614d40; /*斜め線の色*/
    width: 2px;/*斜め線の太さ*/
    height: 3em; /*斜め線の長さ*/
    transform: translateY(-50%);
    transform: rotate(60deg);/*角度調整*/
}
.end-circle-graphic {
    position: relative;
    right: 258px;
    top: 41px;
    width: 8px;
    height: 8px;
    background-color: #614d40;
    border-radius: 50%;
}

/* リンクのホバー時の色を変更しない */
.graphic-text-container a:hover,
.graphic-text-container a:focus,
.web-design-text-container a:hover,
.web-design-text-container a:focus,
.about-text-container a:hover,
.about-text-container a:focus {
    color: inherit !important; /* 親要素の色をそのまま適用 */
    text-decoration: none !important; /* 下線も消す */
}

/*menu*/
.frame2-border .corner-decoration {
    width: 20%;
}
.frame2-top-left {
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/top-left-2.png');
}
.frame2-top-right {
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/top-right-2.png');
}
.frame2-bottom-left {
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/bottom-left-2.png');
}
.frame2-bottom-right {
    background-image: url('https://nicoloa.com/wp-content/uploads/2025/02/bottom-right-2.png');
}
.fram2-top {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    width: calc(100% - 40px);
}
.line2-top {
    position: relative;
    flex-grow: 1;
    height: 3px;
    background: #d0e6e3;
    border-radius: 2px;
}
.line2-top::before {
    content: '';
    display: inline-block;
    position: absolute;
    bottom: -4px;
    left: 4px;
    right: 4px;
    height: 1px;
    background: #d0e6e3;
    border-radius: 1px;
}
.fram2-bottom {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-end;
    width: calc(100% - 40px);
}
.line2-bottom {
    position: relative;
    flex-grow: 1;
    height: 3px;
    background: #d0e6e3;
    border-radius: 2px;
}
.line2-bottom::before {
    content: '';
    display: inline-block;
    position: absolute;
    top: -4px;
    left: 4px;
    right: 4px;
    height: 1px;
    background: #d0e6e3;
    border-radius: 1px;
}
.fram2-center {
    display: flex;
    justify-content: space-between;
    flex-grow: 1;
    width: calc(100% - 40px);
}
.line2-right {
    position: relative;
    width: 3px;
    background: #d0e6e3;
    height: auto;
    border-radius: 2px;
}
.line2-right::before {
    content: '';
    display: inline-block;
    position: absolute;
    top: 4px;
    bottom: 4px;
    right: -4px;
    width: 1px;
    background: #d0e6e3;
    border-radius: 1px;
}
.line2-left {
    position: relative;
    width: 3px;
    background: #d0e6e3;
    height: auto;
    border-radius: 2px;
}
.line2-left::before {
    content: '';
    display: inline-block;
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: -4px;
    width: 1px;
    background: #d0e6e3;
    border-radius: 1px;
}
.frame2-border {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    flex-direction: column;
    height: calc(100% - 40px);
	position:absolute;
	width: 100%;
}
.menu-list {
    display: flex;
    position: absolute;/* 背景の上に配置 */
    margin: 0 auto;
    z-index: 10; /* .main-frame` より前面に */
    width: fit-content;
    height: 70%;
    flex-direction: column;
	padding: 0;
	justify-content: space-around;
}
.menu-list a {
    font-size: 1.2rem;
    color: #d0e6e3;
}
.menu-frame {
    position: fixed;
    top: 0;
    left: 80px;
    height: 100dvh;
    background-color: #614d40;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 500px;
	opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* メニューを開く時 */
.menu-frame.open {
    opacity: 1;
    visibility: visible;
}
.menu-frame {
    z-index: 9999;
}

/*　記事ページ　*/
#breadcrumbs {
	font-size: 0.9rem;
}
.custom-content {
    display: flex;
    flex-direction: column;
    position: absolute; /* 背景の上に配置 */
	top: 0;
	bottom: 0;
	left: 80px;
	right: 0;
	margin: auto;
    z-index: 10; /* `.main-frame` より前面に */
    max-width: calc(100% - 20vw);
    text-align: justify;
    gap: 24px;
    height: 70%;
    overflow-y: scroll;
}
h3.wp-block-heading {
    padding: 0;
    border-left: none;
    margin-bottom: 0;
}

/* 📌 Chrome, Safari のスクロールバー非表示 */
.custom-content::-webkit-scrollbar {
    display: none;
}

/* リンクのホバー時の色を変更しない */
.custom-content a:hover,
.custom-content a:focus {
    color: inherit !important; /* 親要素の色をそのまま適用 */
    text-decoration: none !important; /* 下線も消す */
}
.column-wrap {
	gap: 5%;
}
.is-layout-flex {
	gap: 4px
}
h2.wp-block-post-title {
	font-family: 'Sawarabi Gothic', sans-serif;
	margin-top: 0;
}
.column-left {
    gap: 16px;
    flex-direction: column;
    display: flex;
}
.wp-block-list {
	padding-left: 0;
}
.wp-block-list li {
	color: #d0e6e3;
}
.is-layout-flex  p {
    text-decoration-line: underline;
 	text-decoration-color: #614d40;
}
.body .wp-block-image {
	margin-bottom: 0;
}
.column-right {
    gap: 1rem;
    flex-direction: column;
    display: flex;
}
/* 404page */
.body .article {
	margin-bottom: 0;
}
.article p {
	margin-top: 1.8em;
}
.entry-title {
    color: #d0e6e3;
}
.not-found {
	width: 30%;
}
.post.article {
	margin-left: 80px;
    width: calc(100% - 80px);
	display: flex;
    align-items: center;
}	
.not-found-page {	
	display: flex;
    flex-direction: column;
    position: absolute; /* 背景の上に配置 */
    top: 0;
	bottom: 0;
	left: 80px;
	right: 0;
	margin: auto;
    z-index: 10;  /* `.main-frame` より前面に */
    height: 70%;
    max-width: calc(100% - 24vw);
	align-items: center;
	justify-content: center;
	overflow-y: scroll;
}

/* 📌 Chrome, Safari のスクロールバー非表示 */
.not-found-page::-webkit-scrollbar {
    display: none;
}


.button a {
    background: #614d40;
    border-radius: 3px;
    position: relative;
    display: flex;
    align-items: center;
    margin: 0 auto;
    padding: 14px 25px 10px;
    font-family: 'Josefin Sans', sans-serif;
    color: #d0e6e3;
    transition: 0.3s ease-in-out;
	cursor: pointer;
	border: 2px solid #614d40;
}
.button a:hover {
    background: #d0e6e3;
    color: #614d40;
	border: 2px solid #614d40;
}



/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1366px以下*/
@media screen and (max-width: 1366px){
  /*必要ならばここにコードを書く*/
	.title img,
    .main-img-conteainer img {
    width: 400px;
	}
	.graphic-text-container {
       top: 250px;
       right: -181px;
    }
   .graphic-text-container::before {
        top: 31px;
		left: -12px;
	    height: 1.5em; /*斜め線の長さ*/
		transform: rotate(45deg);/*角度調整*/
     }
    .end-circle-graphic {
        right: 221px;
        top: 31px;
     }
	.web-design-text-container {
        top: 133px;
        left: -112px;
     }
    .web-design-text-container::after {
        top: 31px;
		left: 12px;
	    height: 1.5em; /*斜め線の長さ*/
		transform: rotate(-45deg);/*角度調整*/
     }
   .end-circle {
	   left: 30px;
	   top: 30px;
	}
	.about-text-container {
		right: 11px;
	}
	.about-text-container::before {
		top: 32px;
		left: -13px;
		height: 1.5em; /*斜め線の長さ*/
		transform: rotate(45deg);/*角度調整*/
	}
	.end-circle-about {
		right: 123px;
		top: 29px;
	}
}
/*1023px以下*/
@media screen and (max-width: 1023px){
  /*必要ならばここにコードを書く*/
	.scroll-indicator {
    font-size: 0.9rem;
    margin-right: 14px;
}
	.title img,
    .main-img-conteainer img {
    width: 320px;
	}
	h2.home-text {
		overflow-wrap:break-word;
		line-height: 1.2;
		font-size: 1.3rem;
	}
	.graphic-text-container h2.home-text {
		max-width: 75px;
	}
	.graphic-text-container {
       top: 187px;
	   right: -110px;
    }
	.end-circle-graphic {
        right: 137px;
     }
	.web-design-text-container {
        top: 93px;
        left: -125px;
     }
	.about-text-container {
		top: 59px;
		right: -11px;
	}
	.end-circle-about {
		right: 117px;
		top: 31px;
	}
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*必要ならばここにコードを書く*/
	.title img,
    .main-img-conteainer img {
    width: 360px;
	}
	h2.home-text {
		overflow-wrap:break-word;
		font-size: 1.1rem;
	}
	.graphic-text-container h2.home-text {
		max-width: 54px;
	}
	.graphic-text-container {
       top: 228px;
	   right: -84px;
    }
	.end-circle-graphic {
        right: 113px;
     }
	.web-design-text-container {
        top: 114px;
        left: -94px;
     }
	.about-text-container {
		top: 70px;
		right: 15px;
	}
	.end-circle-about {
		right: 105px;
	}
	.arrow-icon {
        width: 1.2rem;
        height: 1.2rem;
	}
	.not-found {
	width: 50%;
    }

}
/* 📌 スマホで header を上部に移動 */
@media (max-width: 768px) {
    .title img,
    .main-img-conteainer img {
    width: 300px;
	}
    header {
        width: 100%;
		height: 64px;
        flex-direction: row;
        justify-content: space-between;
    }
    .menu-section {
        position: absolute;
        top: 0;
        left: 32px;
        height: 100%;
        width: 72px;
    }
    .menu-section::before {
        position: absolute;
        top: 0;
        left: 4px;
        width: 2px;
        height: 100%;
        background-color: #614d40;
    }
    .menu-section::after {
        position: absolute;
        bottom: 0;
        left: 66px;
        width: 2px;
        height: 100%;
        background-color: #614d40;
    }
	.main-frame {
		height: 100%;
	}
	.menu-frame {
        left: 0;
        width: 100%;
        margin-top: 64px;
        height: calc(100dvh - 64px);
    }	
    .hamburger sapn {
        height: 1.5px;
    }	
	.contact-section {
        width: 48px;
        position: absolute;
        right: 32px;
        top: 28px;
        height: auto;
    }	
    .contact-icon {
        width: 36px;
        height: 36px;
    }
	.contact-icon-container {
        margin-top: 10px;
    }
    .contact-text {
        position: absolute;
        top: 8px;
    }
	.main-content {
		position: fixed;
		top: 64px;
		width: 100%;
		margin-left: 0;
		justify-content: flex-start;
		height: calc(100dvh - 64px);
    }
	.top-page {
		top: 64px;
		left: 0;
		margin: 0 auto;
	}
	.corner-decoration {
		width: 16%;
	}	
	.contact-form {
		left: 0;
		max-width: calc(100% - 20vw);
		height: 85%;
		flex-direction: column;
	}
	.contact {
		margin-left: 0;
	}
	.privacy-policy {
		left: 0;
		height: 85%;
	}
	 .tab-container {
		padding-top: 40px;
		padding-bottom: 80px;
		overflow: auto;
		min-height: 100%;
		height: 100dvh;
		margin-top: 64px;
    }
	
	/* 📌 Chrome, Safari のスクロールバー非表示 */
    .tab-container::-webkit-scrollbar {
        display: none;
    }
    .tab-header {
        justify-content: center;
        width: 80%;
        margin: 0 auto;
    }
	.tab-content {
		flex-grow: 1;
    }
	.tab-panel {
		height: 100%;
		justify-content:space-around;
	}
	.tab-panel-content {
        padding-top: 8px; /* 📌 スマホでは8pxの余白 */
	}
	.tab-panel.about-tab {
        gap: 5vw;
	}	
    .card {
        flex: 0 0 90%;
		margin-left: -8px;
        scroll-snap-align: center;/* スクロール時に中央で止まる */
    }

	.custom-content {
		left: 0;
		height: 85%;
	}
	.wp-block-list  {
         text-align: left;
	}
	h4 {
		font-size: 1.1rem;
	}
	.tab-button-web {
		margin-left: 0;
	}
	.tab-header {
		width: 90%;
	}
	.web-design-text-container h2.home-text {
		max-width: 45px;
	}

	h2.home-text {
		font-size: 1.0rem;
	}	
	.graphic-text-container {
       top: 250px;
       right: 135px;
    }
   .graphic-text-container::before {
        top: 7px;
		left: 102px;
     }
    .end-circle-graphic {
        right: -29px;
        top: -19px;
     }
	.web-design-text-container {
		top: 83px;
        left: -49px;
     }

   .end-circle {
	   left: 30px;

	}
	.about-text-container {
		top: 52px;
		right: 0px;
	}
	.about-text-container::before {
		top: 32px;
		left: -13px;
		transform: rotate(45deg);/*角度調整*/
	}
	.end-circle-about {
		right: 100px;
		top: 29px;
	}
	.hamburger {
		width: 30px;
		height: 20px;
	}
	.hamburger.open span:nth-child(1) {
		transform: translateY(8px) rotate(45deg);
	}
	.hamburger.open span:nth-child(3) {
		transform: translateY(-8px) rotate(-45deg);
	}.
	body {
		overflow: auto;
		display: flex;
		flex-direction: column;
		height: 100vh;
		margin: 0;
	}
	.main-img-conteainer {
		padding-top: 0;
	}
	.scroll-indicator {
		display:none;
	}
	.hamburger {
		height: 20px;
	}
	.hamburger span {
		height: 3px;
	}
	.post.article {
		position: fixed;
		top: 64px;
		width: 100%;
		margin-left: 0;
		justify-content: flex-start;
		height: calc(100dvh - 64px);
    }
	.not-found-page {
		left: 0;
		width: 90%;
	}
	.button a {
    padding: 7px 25px 5px;
	}
	.nicoloa-container img {
        max-width: 40vw;
    }
    .my-icon {
        margin: 0 auto;
	}
}


/*480px以下*/
@media screen and (max-width: 480px){
  /*必要ならばここにコードを書く*/

   .graphic-text-container::before {
		left: 103px;
     }
    .end-circle-graphic {
        right: -30px;
     }
	.web-design-text-container {
        top: 82px;
        left: -5px;
     }
    .web-design-text-container::after {
        top: 31px;
		left: -12px;
		transform: rotate(45deg);/*角度調整*/
     }
   .end-circle {
	   left: -19px;
	}
    .not-found {
	width: 80%;
    }
}







