/* NOTTE /contact/ — ブランドサイトと同じトークン・フォント・ボタン */
:root{--indigo:#23203A;--plum:#4A3552;--blush:#E8B9B0;--champ:#E8D9BF;--cream:#FBF6F0;--ink:#23203A;--sub:#5A5568;--err:#A23B2E;
  --serif:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN",serif;--en:"Cormorant Garamond",serif;--sans:"Noto Sans JP","Hiragino Sans",sans-serif;--ease:cubic-bezier(.22,.9,.24,1)}
body.notte-contact{margin:0;padding:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.notte-contact *{box-sizing:border-box}
body.notte-contact a{color:inherit;text-decoration:none}
.nc-wrap{width:min(1180px,100% - 48px);margin-inline:auto}
.nc-logo{font-family:var(--en);font-size:1.7rem;letter-spacing:.36em;font-weight:500;color:var(--champ)}
.nc-header{position:fixed;inset:0 0 auto 0;z-index:100;background:rgba(35,32,58,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--cream)}
body.admin-bar .nc-header{top:32px}
@media (max-width:782px){body.admin-bar .nc-header{top:46px}}
.nc-hd{display:flex;align-items:center;justify-content:space-between;height:68px}
.nc-header nav{display:flex;gap:34px}
.nc-header nav a{font-family:var(--en);letter-spacing:.2em;font-size:.95rem;position:relative;padding:4px 0}
.nc-header nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--blush);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nc-header nav a:hover::after,.nc-header nav a[aria-current]::after{transform:scaleX(1)}
.nc-hero{position:relative;overflow:hidden;color:var(--cream);padding:168px 0 96px;text-align:center;background:linear-gradient(172deg,#1c1a33 0%,#23203A 30%,#3a2d4d 66%,#4A3552 100%)}
.nc-moon{position:absolute;width:min(40vw,420px);aspect-ratio:1;right:-6vw;top:-8vw;border-radius:50%;background:radial-gradient(circle at 38% 36%,#fff4de 0,var(--champ) 38%,rgba(232,217,191,.22) 62%,transparent 72%);opacity:.7}
.nc-hero .nc-wrap{position:relative}
.nc-en{display:block;font-family:var(--en);letter-spacing:.3em;text-transform:uppercase;font-size:.9rem;color:var(--champ)}
.nc-hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3.4vw,2.6rem);letter-spacing:.14em;margin:14px 0 18px;color:var(--cream);line-height:1.5}
.nc-hero p{font-size:.95rem;color:var(--cream);margin:0}
.nc-form{background:var(--cream);padding:90px 0 110px}
.nc-card{width:min(720px,100%);margin:0 auto;background:#fff;padding:60px 64px 56px;border-radius:4px;box-shadow:0 20px 40px rgba(35,32,58,.10)}
.nc-back{text-align:center;margin:44px 0 0;font-size:.86rem;letter-spacing:.1em}
.nc-back a{color:var(--plum);border-bottom:1px solid var(--blush);padding-bottom:2px}
.nc-footer{background:var(--indigo);color:var(--champ);text-align:center;padding:48px 0 54px;font-size:.78rem;letter-spacing:.16em}
.nc-footer .nc-logo{display:block;font-size:1.4rem;margin-bottom:10px}

/* Contact Form 7（項目・name・送信先は変更しない。見た目のみ） */
.notte-contact .wpcf7 form{margin:0}
.notte-contact .wpcf7-form p{margin:0 0 30px}
.notte-contact .wpcf7-form label{display:block;position:relative;font-size:.92rem;font-weight:500;letter-spacing:.08em;color:var(--ink);line-height:1.6}
.notte-contact .wpcf7-form label:has([aria-required="true"])::after{content:"必須";position:absolute;top:2px;right:0;font-size:.7rem;font-weight:400;letter-spacing:.1em;color:var(--indigo);background:var(--blush);padding:1px 10px;border-radius:999px;line-height:1.7}
.notte-contact .wpcf7-form-control-wrap{display:block;margin-top:10px}
.notte-contact .wpcf7 input[type=text],.notte-contact .wpcf7 input[type=email],.notte-contact .wpcf7 textarea{width:100%;font:inherit;font-weight:400;font-size:1rem;color:var(--ink);background:#fff;border:1px solid #7d7288;border-radius:4px;padding:14px 16px;transition:border-color .3s,box-shadow .3s;-webkit-appearance:none;appearance:none}
.notte-contact .wpcf7 textarea{min-height:200px;resize:vertical;line-height:1.8}
.notte-contact .wpcf7 input:focus,.notte-contact .wpcf7 textarea:focus{outline:0;border-color:var(--indigo);box-shadow:0 0 0 3px rgba(232,185,176,.7)}
.notte-contact .wpcf7-form-control.wpcf7-not-valid{border-color:var(--err)}
.notte-contact .wpcf7-not-valid-tip{display:block;margin-top:8px;font-size:.82rem;font-weight:400;color:var(--err);letter-spacing:.04em}
.notte-contact .wpcf7-form p:has(.wpcf7-submit){text-align:center;margin:38px 0 0}
.notte-contact .wpcf7-submit{position:relative;display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:.9rem;letter-spacing:.16em;padding:17px 64px;border:1px solid var(--indigo);border-radius:999px;background:var(--indigo);color:var(--cream);cursor:pointer;overflow:hidden;-webkit-appearance:none;appearance:none;transition:background .5s var(--ease),color .5s var(--ease),border-color .5s,transform .4s var(--ease)}
.notte-contact .wpcf7-submit:hover,.notte-contact .wpcf7-submit:focus-visible{background:var(--blush);border-color:var(--blush);color:var(--indigo);transform:translateY(-2px)}
.notte-contact .wpcf7-submit:disabled{opacity:.55;cursor:not-allowed}
.notte-contact .wpcf7-spinner{display:none!important}
.notte-contact .wpcf7 form.submitting .wpcf7-submit{opacity:.7}
.notte-contact .wpcf7-response-output{margin:28px 0 0!important;padding:16px 20px!important;border:1px solid var(--plum)!important;border-radius:4px;font-size:.9rem;line-height:1.8;color:var(--ink);background:rgba(232,217,191,.45)}
.notte-contact .wpcf7 form.init .wpcf7-response-output{display:none}
.notte-contact .wpcf7 form.sent .wpcf7-response-output{border-color:var(--plum)!important;background:rgba(232,217,191,.55)}
.notte-contact .wpcf7 form.invalid .wpcf7-response-output,.notte-contact .wpcf7 form.unaccepted .wpcf7-response-output,.notte-contact .wpcf7 form.failed .wpcf7-response-output,.notte-contact .wpcf7 form.aborted .wpcf7-response-output,.notte-contact .wpcf7 form.spam .wpcf7-response-output{border-color:var(--err)!important;background:#FBEBE7;color:#7A2A20}
.screen-reader-response{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px}

@media (max-width:900px){
  .nc-wrap{width:min(1180px,100% - 36px)}
  .nc-hd{height:60px}.nc-logo{font-size:1.15rem;letter-spacing:.26em}
  .nc-header nav{gap:13px}.nc-header nav a{font-size:.74rem;letter-spacing:.06em;white-space:nowrap}
  .nc-hero{padding:126px 0 64px}
  .nc-hero p{font-size:.84rem}
  .nc-form{padding:52px 0 80px}
  .nc-card{padding:34px 22px 34px}
  .notte-contact .wpcf7-submit{padding:16px 46px}
}
