/*
Theme Name: Twenty Twenty-Five Child
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Template: twentytwentyfive
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Tags: one-column,custom-colors,custom-menu,custom-logo,editor-style,featured-images,full-site-editing,block-patterns,rtl-language-support,sticky-post,threaded-comments,translation-ready,wide-blocks,block-styles,style-variations,accessibility-ready,blog,portfolio,news
Version: 1.4.1770644030
Updated: 2026-02-09 22:33:50

*/
@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=BIZ+UDGothic:wght@400;700&family=Zen+Maru+Gothic:wght@400;500;700&display=swap');


:root {
    --font-default: "Helvetica Neue", Arial, "BIZ UDGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    --font-marugo: "Zen Maru Gothic", sans-serif;
    --color-main:#815242;
}

/*--------------------------------------------------------------

 # 全体の設定

--------------------------------------------------------------*/

html,
body {
    font-family: var(--font-default);
    font-size: clamp(0.9375rem, 0.8667rem + 0.3333vw, 1rem);
    color: #333333;
    font-weight: normal;
    line-height: 1.5;
    margin: 0;
    padding: 0;
}

h1 {
    letter-spacing: 0.1em;
    font-size: clamp(1.25rem, 0.8958rem + 1.6667vw, 1.5625rem);
}

h2 {
    font-size: clamp(1.25rem, 0.8958rem + 1.6667vw, 1.5625rem);
    font-weight: 700;
    margin: 0 auto;
    text-align: center;
    letter-spacing: 0.1em;
}


a {
    text-decoration: none;
    color: #ad4c4c;
}

/*--- PC ---*/
@media screen and (min-width:640px) {
    .sp {
        display: none;
    }
}

/*--- SP ---*/
@media screen and (max-width:639px) {
    .pc {
        display: none;
    }
    body{
        padding-left: 0;
        padding-right: 0;
    }
}

/*----------------------------
 ## フォント
----------------------------*/
.m-gothic {
    font-family: var(--font-marugo);
    font-weight: 700;
    font-style: normal;
}

/*--------------------------------------------------------------

 # ヘッダ

--------------------------------------------------------------*/
header {
    background-color: var(--color-main);
}

header h1 {
    font-size: clamp(0.875rem, 0.7333rem + 0.6667vw, 1rem);
    line-height: 1rem;
    color: #FFF;
    font-weight: 400;
    font-family: var(--font-marugo);
}

/*--------------------------------------------------------------

 # コンテンツ

--------------------------------------------------------------*/

.main {
    margin: 0 auto;
    max-width: calc(100% - 3rem);
    box-sizing: border-box;
    padding: 3rem 0;
}

/*--- SP ---*/
@media screen and (max-width:639px) {
    .main {
        max-width: 95%;
        padding: 0;
    }
}

/*--------------------------------------------------------------

 # フォーム

--------------------------------------------------------------*/

.form-wrap {
    max-width: 640px;
    margin: 0 auto;
}

.form-inner {
    display: flex;
    flex-direction: column;
    margin-top: 3rem;
}

.form-item {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: flex-start;
    padding: 1.5rem 12.5%;
    border-bottom: 1px solid #e8e8e8;
    box-sizing: border-box;
}

/*--- SP ---*/
@media screen and (max-width:687px) {
    .form-item {
        padding: 1.5rem 12.5%;
    }
}

/*--- SP ---*/
@media screen and (max-width:639px) {
    .form-item {
        padding: 1.5rem 0.5rem;
    }
}

/*--- フォームのラベル ---*/
.form-label {
    display: flex;
    font-weight: 500;
    font-family: var(--font-marugo);
    font-size: 1.25em;
}

.form-label-wrap>*:not(.form-label) {
    display: block;
    font-family: var(--font-default);
    font-size: 0.875rem;
    color: #999999;
}

.form-label-wrap {
    display: flex;
    align-items: center;
}

/* 必須ラベル */
.form-required::after {
    content: "必須";
    font-family: var(--font-default);
    font-weight: 400;
    color: #FFF;
    display: inline-block;
    font-size: 0.75rem;
    line-height: 1;
    background-color: #c63838;
    height: fit-content;
    padding: 0.333em 0.5em 0.25em;
    margin: 2px 0 0 0.5rem;
    border-radius: 3px;
    align-self: center;
}

/*--- フォーム入力エリア ---*/
.form-input {
    padding: 1em 0.6em;
    margin-left: 1.5rem;
    border-radius: 5px;
    border: #b3b3b3 1px solid;
    box-sizing: border-box;
    font-size: 1.25rem;
}

/*--- 注釈 ---*/
.form-label+span {
    font-weight: normal;
    text-indent: 1.5rem;
}

.form-label>span {
    text-indent: 1.5rem;
    align-self: baseline;
    margin-bottom: 0;
}

.form-label+ul+span {
    padding-left: 1em;
    text-indent: -1em;
    margin-left: 1.5rem;
    margin-bottom: 1rem;
}

/*--- SP ---*/
@media screen and (max-width:639px) {
    .form-label+ul {
        padding-left: 2em;
    }

    .form-label+ul+span {
        padding-left: 0;
    }
}

/*--- メッセージ ---*/
.message .form-label-wrap {
    display: block;
    max-width: 100%;
}

.form-label+ul {
    margin: 0 0 0.5em 0;
}

.form-label-wrap ul li {
    margin-top: 0.5em;
}

.message div.message-wrap {
    font-size: 1.25rem;
    margin-left: 1.5rem;
    padding: 0.5em;
    width: calc(1.5em * 12);
    height: calc(1.5em * 8);
    border-radius: 5px;
    position: relative;
}

.message div.message-wrap::before {
    position: absolute;
    content: "";
    display: block;
    width: calc(1.5em * 12);
    height: calc(1.5em * 8);
    background-image: linear-gradient(0deg, transparent calc(100% - 1px), #dddddd calc(100% - 1px)),
        linear-gradient(90deg, transparent calc(100% - 1px), #dddddd calc(100% - 1px));
    background-size: 1.5em 1.5em;
    background-repeat: repeat;
    background-position: left top;
    background-origin: padding-box;
    border: 2px solid #333;
    margin: -0.25em auto;
    z-index: -1;
    box-sizing: content-box;
}

.message textarea {
    font-size: 1em;
    resize: none;
    border: none;
    border-radius: 0;
    padding: 0 0 0 0.25em;
    margin: 0 auto;
    width: calc(1.5em * 12);
    line-height: 1.5em;
    height: 100%;
    letter-spacing: 0.5em;
    background-color: rgba(255, 255, 255, 0);
    line-break: anywhere;
    overflow: hidden;
    box-sizing: content-box;
    font-feature-settings: "fwid";
}

/*--- SP ---*/

@media screen and (max-width:639px) {
        .message div.message-wrap {
        font-size: clamp(1rem, 0.4333rem + 2.6667vw, 1.5rem);
    }

    .message div.message-wrap::before {
        font-size: clamp(1rem, 0.4333rem + 2.6667vw, 1.5rem);
        width: calc(1.5em * 12 - 4px);
        padding: 0;
        background-position: left top;
    }

    .message textarea {
        font-size: clamp(1rem, 0.4333rem + 2.6667vw, 1.5rem);
        letter-spacing: 0.5em;
        width: calc(1.5em * 12 + 0.375em);
        padding: 0 0 0 .375em;
    }
}
@media screen and (max-width:430px), (-webkit-min-device-pixel-ratio: 2){
    .message textarea {
        letter-spacing: 0.545em;
        padding: 0 0 0 0.375em;
        box-sizing: border-box;
    }
}


/* 文字数カウント */
.message .counter {
    width: calc(1.5em * 12);
    box-sizing: border-box;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    height: auto;
    margin-top: 0.25em;
    letter-spacing: normal;
    gap: 0;
}

.message .counter span {
    display: inline-block;
    font-size: 0.75rem;
}

.message .counter span:first-of-type,
.message .counter span.goal {
    line-height: 1;
}

.message .counter span.line-now {
    width: 100%;
    text-align: center;
    margin-top: 0.5em;
    font-weight: bold;
    font-size: 0.875rem;
    letter-spacing: 0.1em;
    padding-top: 0.5em;
}

.message .counter .good {
    position: relative;
    display: inline-block;
    flex-grow: 1;
    visibility: hidden;
    /* 非表示でも高さは確保 */
    margin-left: 1em;
    font-weight: normal;
    border: 1px #16a34a solid;
    border-radius: 3px;
    padding: 3px 1em 1px;
    line-height: 1.5;
    font-size: 0.9em;
    animation: poyopoyo 2s ease-out infinite;
    opacity: 1;
}

@keyframes poyopoyo {

    0%,
    40%,
    60%,
    80% {
        transform: scale(1.0);
    }

    50%,
    70% {
        transform: scale(0.95);
    }
}

.message .counter .good.is-on::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    border-style: solid;
    border-width: 4px 6px 4px 0;
    border-color: transparent #16a34a transparent transparent;
    translate: -100% -50%;
}

.message .counter .good.is-on::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    border-style: solid;
    border-width: 3.2px 4.8px 3.2px 0;
    border-color: transparent #FFFFFF transparent transparent;
    translate: -100% -50%;
}

.message .counter .good.is-on {
    visibility: visible;
    color: #16a34a;
}

/*--- SP ---*/
@media screen and (max-width:639px) {
    .message .counter {
        padding-left: 0.6em;
    }
}

/*--- 子どもの名前 ---*/
.child-name .form-input-wrap span {
    margin-left: 1rem;
    font-weight: 700;
    font-size: 1.25em;
    font-family: var(--font-marugo);
}

.child-name .form-label-wrap {
    margin-bottom: 0.5em;
    flex-wrap: wrap;
}

/*--- SP ---*/
@media screen and (max-width:687px) {}

/*--- 名前入力共通 ---*/
.form-input_name {
    max-width: 10em;
    height: 1.333em;
}

/*--- 親と子の氏名 ---*/
.form-item:has(.form-item-col) {
    flex-direction: row;
    gap: 0;
}

.form-item-col {
    display: flex;
    flex-direction: column;
    margin-bottom: .75rem;
}

.form-item .form-item-inner .form-label-wrap {
    align-items: center;
}

.form-item-col:last-of-type {
    margin-left: 1.5rem;
}

.form-item-col:last-of-type .form-input {
    margin-left: 0;
}

/*----------------------------
　送信ボタン
----------------------------*/

.form-submit {
    padding-top: 1.5rem;
    text-align: center;
}

.form-submit button {
    background-color: #603a10;
    color: #FFF;
    font-size: 1.125rem;
    letter-spacing: 0.2em;
    padding: 0.5em 0.5em;
    text-align: center;
    width: 50%;
    border-radius: 5px;
    position: relative;
    min-width: 300px;
}

.form-submit button:hover {
    opacity: 0.9;
    top: 1px;
    left: 1px;
}
/*--------------------------------------------------------------

 # フッタ

--------------------------------------------------------------*/
footer{
    background-color: var(--color-main);
    color: #FFF;
}