/*
Theme Name: Fraya
Description: 京都・伏見 Fray*a(フレイア)with rental space Ciel 公式サイト用カスタムテーマ
Version: 1.0.0
Text Domain: fraya
*/

.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
.skip-link.screen-reader-text:focus{
  position:fixed!important; top:10px; left:10px; width:auto; height:auto; clip:auto; overflow:visible;
  z-index:9999; background:var(--c-accent,#f4b3c2); color:#10130f; padding:12px 20px; border-radius:8px;
  font-size:14px; font-weight:600; text-decoration:none;
}
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible{
  outline:2px solid #f4b3c2; outline-offset:2px;
}

:root{
  --c-base:#000000;
  --c-main:#5c6d5f;
  --c-main-light:#93a692;
  --c-main-100:transparent;
  --c-accent:#f4b3c2;
  --c-dark:#000000;
  --c-ink:#eef1ee;
  --c-sub:#c4cdc5;
  --c-gold:#d4af6a;
  --c-gold-light:#f0d9a0;
  --c-nebula:#6b4a8a;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;}
body{
  background-color:var(--c-base);
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  background-attachment:fixed;
  background-image:
    /* soft nebula clouds */
    radial-gradient(ellipse 60% 45% at 15% 12%, rgba(107,74,138,.45), transparent 70%),
    radial-gradient(ellipse 55% 50% at 88% 22%, rgba(212,175,106,.28), transparent 70%),
    radial-gradient(ellipse 60% 55% at 78% 82%, rgba(107,74,138,.4), transparent 70%),
    radial-gradient(ellipse 50% 45% at 10% 78%, rgba(244,179,194,.22), transparent 70%),
    radial-gradient(ellipse 45% 40% at 45% 45%, rgba(212,175,106,.16), transparent 70%),
    /* bright close stars */
    radial-gradient(2.6px 2.6px at 8% 12%, #fff, transparent),
    radial-gradient(2.2px 2.2px at 42% 8%, rgba(240,217,160,1), transparent),
    radial-gradient(2.8px 2.8px at 78% 15%, #fff, transparent),
    radial-gradient(2.2px 2.2px at 23% 32%, #fff, transparent),
    radial-gradient(2.6px 2.6px at 91% 38%, rgba(240,217,160,1), transparent),
    radial-gradient(2.2px 2.2px at 60% 28%, #fff, transparent),
    radial-gradient(2.8px 2.8px at 12% 52%, #fff, transparent),
    radial-gradient(2.2px 2.2px at 68% 55%, rgba(240,217,160,1), transparent),
    radial-gradient(2.6px 2.6px at 35% 62%, #fff, transparent),
    radial-gradient(2.2px 2.2px at 85% 68%, #fff, transparent),
    radial-gradient(2.8px 2.8px at 5% 82%, rgba(240,217,160,1), transparent),
    radial-gradient(2.2px 2.2px at 50% 85%, #fff, transparent),
    radial-gradient(2.6px 2.6px at 95% 90%, #fff, transparent),
    radial-gradient(2.2px 2.2px at 28% 95%, rgba(240,217,160,1), transparent),
    /* dense small/dim distant stars */
    radial-gradient(1.3px 1.3px at 4% 4%, rgba(255,255,255,.9), transparent),
    radial-gradient(1px 1px at 12% 20%, rgba(255,255,255,.7), transparent),
    radial-gradient(1.4px 1.4px at 20% 6%, rgba(255,255,255,.85), transparent),
    radial-gradient(1px 1px at 30% 18%, rgba(255,255,255,.6), transparent),
    radial-gradient(1.3px 1.3px at 38% 28%, rgba(212,175,106,.8), transparent),
    radial-gradient(1px 1px at 46% 12%, rgba(255,255,255,.7), transparent),
    radial-gradient(1.4px 1.4px at 55% 22%, rgba(255,255,255,.9), transparent),
    radial-gradient(1px 1px at 63% 38%, rgba(255,255,255,.6), transparent),
    radial-gradient(1.3px 1.3px at 72% 8%, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 80% 45%, rgba(212,175,106,.7), transparent),
    radial-gradient(1.4px 1.4px at 88% 12%, rgba(255,255,255,.85), transparent),
    radial-gradient(1px 1px at 96% 55%, rgba(255,255,255,.6), transparent),
    radial-gradient(1.3px 1.3px at 3% 35%, rgba(255,255,255,.75), transparent),
    radial-gradient(1px 1px at 16% 45%, rgba(255,255,255,.65), transparent),
    radial-gradient(1.4px 1.4px at 25% 58%, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 33% 48%, rgba(255,255,255,.6), transparent),
    radial-gradient(1.3px 1.3px at 44% 65%, rgba(255,255,255,.75), transparent),
    radial-gradient(1px 1px at 52% 58%, rgba(255,255,255,.65), transparent),
    radial-gradient(1.4px 1.4px at 60% 72%, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 68% 82%, rgba(255,255,255,.6), transparent),
    radial-gradient(1.3px 1.3px at 76% 62%, rgba(212,175,106,.75), transparent),
    radial-gradient(1px 1px at 84% 78%, rgba(255,255,255,.65), transparent),
    radial-gradient(1.4px 1.4px at 92% 85%, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 10% 68%, rgba(255,255,255,.6), transparent),
    radial-gradient(1.3px 1.3px at 40% 92%, rgba(255,255,255,.75), transparent),
    radial-gradient(1px 1px at 65% 95%, rgba(255,255,255,.65), transparent),
    radial-gradient(1.4px 1.4px at 98% 30%, rgba(255,255,255,.8), transparent);
  color:var(--c-ink);
  font-family:'Zen Kaku Gothic New',sans-serif;
  overflow-wrap:anywhere; word-break:normal; line-break:strict;
}
h1,h2,h3,.jp-display{text-wrap:balance;}
.en-display{font-family:'Josefin Sans',sans-serif;}
.nb{white-space:nowrap;}
img{max-width:100%; display:block;}
a{color:inherit;}
section{position:relative; padding:110px 6vw;}
.eyebrow{font-family:'Josefin Sans',sans-serif; font-size:12.5px; letter-spacing:.2em; color:var(--c-main-light); margin-bottom:16px;}
.h2{font-weight:700; font-size:clamp(24px,3.4vw,40px); line-height:1.5; margin-bottom:18px;}
.lead{font-size:15.5px; line-height:1.9; color:var(--c-sub); max-width:620px; margin-bottom:44px;}
.container{max-width:1180px; margin:0 auto;}

/* ---------- NAV ---------- */
nav{position:fixed; top:0; left:0; right:0; z-index:50; display:flex; justify-content:space-between; align-items:center;
    padding:20px 6vw; background:linear-gradient(180deg, rgba(16,19,15,.88), rgba(16,19,15,0)); backdrop-filter:blur(4px);}
.logo{font-family:'Josefin Sans',sans-serif; font-size:20px; letter-spacing:.06em; font-weight:500; text-decoration:none; color:var(--c-ink); display:inline-block;}
.logo b{color:var(--c-accent); font-weight:600;}
.navlinks{display:flex; align-items:center; gap:26px; font-size:13px; list-style:none;}
.navlinks a{text-decoration:none; color:#d6dcd6; position:relative;}
.navlinks a::after{content:''; position:absolute; left:0; bottom:-4px; width:100%; height:1px; background:var(--c-accent); transform:scaleX(0); transform-origin:left; transition:transform .3s;}
.navlinks a:hover::after{transform:scaleX(1);}
.navlinks .navnote{font-size:10.5px; color:#8a9389;}
.nav-cta{background:var(--c-main-light); color:#10130f; padding:9px 20px; border-radius:30px; font-size:12.5px; text-decoration:none; font-weight:500;}
.navburger{display:none;}
@media (max-width:880px){
  .navlinks{display:none; position:fixed; top:64px; left:0; right:0; background:#0c0f0b; flex-direction:column; align-items:flex-start;
    gap:0; padding:10px 6vw 24px; border-bottom:1px solid rgba(255,255,255,.1);}
  .navlinks.open{display:flex;}
  .navlinks li{width:100%;}
  .navlinks a{padding:12px 0; width:100%; display:block;}
  .navlinks .navnote{padding:12px 0 0;}
  .navburger{display:block; background:none; border:1px solid rgba(255,255,255,.3); color:#fff; padding:8px 14px; border-radius:6px; font-size:12px;}
}

/* ---------- HERO(アーチ×縦書き×光球) ---------- */
.hero{min-height:100vh; overflow:hidden; display:flex; flex-direction:column; padding:0; position:relative;}
.glow{position:absolute; border-radius:50%; filter:blur(100px); pointer-events:none;}
.glow.g1{width:520px; height:520px; background:var(--c-main-light); opacity:.26; top:-140px; left:-8%;}
.glow.g2{width:420px; height:420px; background:var(--c-gold); opacity:.18; bottom:-160px; left:32%;}
.particles{position:absolute; inset:0; pointer-events:none;}
.hero-grid{position:relative; z-index:2; flex:1; display:grid; grid-template-columns:1.3fr .8fr; align-items:center; gap:40px; padding:9vh 6vw 4vh;}
.hero-left{display:flex; gap:30px; align-items:center;}
.vertical-copy{writing-mode:vertical-rl; text-orientation:mixed; font-size:clamp(17px,1.9vw,22px); line-height:2.1; letter-spacing:.06em;
  color:#dbe3db; height:44vh; min-height:280px; border-right:1px solid rgba(255,255,255,.15); padding-right:20px; flex:none;
  opacity:0; transform:translateY(20px); transition:opacity 1.1s ease, transform 1.1s ease;}
.vertical-copy.show{opacity:1; transform:none;}
.vertical-copy .accent{color:var(--c-accent);}
.hero-text{flex:1;}
.eyebrow-hero{font-family:'Josefin Sans',sans-serif; font-size:12.5px; letter-spacing:.22em; color:var(--c-accent); margin-bottom:18px;}
.hero-title{font-size:clamp(24px,3.2vw,46px); line-height:1.32; font-weight:700; margin-bottom:26px; max-width:640px;}
.hero-title .accent{color:var(--c-accent);}
.hero-sub{font-size:15px; line-height:1.9; color:var(--c-sub); max-width:520px; margin-bottom:32px; font-weight:400;}
.cta-row{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.btn{display:inline-flex; align-items:center; gap:10px; padding:16px 32px; border-radius:40px; background:var(--c-main-light);
     color:#10130f; text-decoration:none; font-size:14px; font-weight:500; border:none; cursor:pointer; font-family:inherit;}
.btn:hover{background:var(--c-accent);}
.btn.ghost{background:transparent; border:1px solid rgba(244,179,194,.5); color:#f4b3c2;}
.offer{font-size:12.5px; color:#9fae9d;}

.hero-arch{position:relative; justify-self:end; width:100%; max-width:340px;}
.arch{position:relative; width:100%; aspect-ratio:3/4; overflow:hidden; border-radius:170px 170px 14px 14px;
      clip-path:circle(0% at 50% 38%); transition:clip-path 1.4s cubic-bezier(.16,1,.3,1);}
.arch.show{clip-path:circle(75% at 50% 38%);}
.arch img{width:100%; height:100%; object-fit:cover;}
.arch::after{content:''; position:absolute; inset:0; background:var(--c-dark); opacity:.1; mix-blend-mode:multiply;}
.arch-cap{font-size:10.5px; color:#8a9389; margin-top:10px; text-align:right;}
@media (max-width:880px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-left{flex-direction:column; align-items:flex-start; gap:22px;}
  .vertical-copy{writing-mode:horizontal-tb; height:auto; border-right:none; border-bottom:1px solid rgba(255,255,255,.15); padding-right:0; padding-bottom:14px; min-height:0;}
  .hero-arch{justify-self:start; max-width:220px; margin-top:26px;}
}

/* ---------- 巡回ルート演出 ---------- */
.tour-route{position:relative; z-index:2; border-top:1px solid rgba(255,255,255,.12); padding:22px 6vw 26px; display:flex; align-items:center; gap:28px; flex-wrap:wrap;}
.tour-route .tour-caption{font-size:13px; letter-spacing:.04em; color:#c4cdc5; font-weight:500; flex:none;}
.tour-route svg{flex:1; min-width:220px; max-width:640px; height:34px; overflow:visible;}
.tour-route .waypoint{fill:#3a423a; stroke:var(--c-main-light); stroke-width:1.4;}
.tour-route .traveler{fill:var(--c-accent);}
@media (max-width:640px){ .tour-route{padding:18px 6vw 22px;} }

/* ---------- fade utility ---------- */
.fade-up{opacity:0; transform:translateY(28px);}
.fade-up.is-visible{opacity:1; transform:none; transition:opacity .8s ease, transform .8s ease;}

/* ---------- WORRY (dark panel) ---------- */
.worry{background:var(--c-main-100);}
.worry-list{list-style:none; display:grid; gap:16px; max-width:640px;}
.worry-list li{display:flex; gap:14px; align-items:flex-start; font-size:15px; line-height:1.8; color:#dee5de;}
.worry-list svg{flex:none; margin-top:3px;}

/* ---------- TREATMENT(アーチ型カード) ---------- */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:start;}
.card{background:#151915; border:1px solid rgba(255,255,255,.08); border-radius:60px 60px 14px 14px; padding:44px 26px 30px; text-align:center;}
.card .num{font-size:13px; letter-spacing:.1em; color:var(--c-accent); margin-bottom:14px; display:block;}
.card h3{font-size:18px; margin-bottom:10px; font-weight:700;}
.card p{font-size:13.5px; line-height:1.8; color:#b7c2b8; text-align:left;}
.card-color{position:relative; overflow:hidden;}
.color-orb{width:56px; height:56px; border-radius:50%; margin:0 auto 16px;
  background:radial-gradient(circle at 35% 35%, var(--c-accent), var(--c-main-light) 70%); filter:blur(2px); opacity:.9;}
@media (max-width:880px){ .cards{grid-template-columns:1fr;} }

/* ---------- お客様の声 ---------- */
.review-list{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:24px;}
.review-card{background:#151915; border:1px solid rgba(255,255,255,.08); border-radius:18px; padding:28px 26px; text-align:left;}
.review-card .review-quote{font-size:26px; color:var(--c-accent); line-height:1; margin-bottom:10px; display:block;}
.review-card p{font-size:14px; line-height:1.85; color:#c4cdc5; margin-bottom:14px;}
.review-card .review-meta{font-size:12px; color:#8a9389;}
@media (max-width:880px){ .review-list{grid-template-columns:1fr;} }

/* ---------- REPRESENTATIVE(ページの山場) ---------- */
.rep-section{padding:160px 6vw; overflow:hidden;}
.rep-bg{position:absolute; inset:0; opacity:.18; background:radial-gradient(ellipse at 25% 20%, var(--c-main-light), transparent 60%),
  radial-gradient(ellipse at 80% 80%, var(--c-nebula), transparent 55%),
  radial-gradient(ellipse at 55% 90%, var(--c-gold), transparent 45%); pointer-events:none;}
.rep{position:relative; display:grid; grid-template-columns:340px 1fr; gap:56px; align-items:center;}
.rep-photo{position:relative; border-radius:170px 170px 16px 16px; overflow:hidden;}
.rep-photo img{width:100%; aspect-ratio:3/4; object-fit:cover;}
.rep-photo video{width:100%; aspect-ratio:3/4; object-fit:cover; display:block; background:#000;}
.rep-note{font-size:10.5px; color:#8a9389; margin-top:8px;}
.rep-name{font-size:14px; color:var(--c-accent); margin-bottom:6px; letter-spacing:.05em;}
.rep-name .nowrap{white-space:nowrap;}
.rep-name b{color:#fff; font-size:17px; margin-right:8px;}
.rep-body{font-size:15px; line-height:1.95; color:#d3dad3; margin-bottom:18px;}
.rep-sns{display:flex; gap:14px;}
.rep-sns a{font-size:12.5px; color:#b7c2b8; text-decoration:none; border:1px solid rgba(255,255,255,.15); padding:7px 16px; border-radius:30px;}
#story .h2{font-size:clamp(28px,4vw,46px); max-width:720px;}
@media (max-width:780px){ .rep{grid-template-columns:1fr;} .rep-photo{max-width:280px;} }

/* ---------- TALKSHOW ---------- */
.talkshow{background:var(--c-main-100);}
.talkshow-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center;}
.talkshow-grid img{border-radius:120px 120px 14px 14px; width:100%; aspect-ratio:4/3; object-fit:cover;}
.talkshow-note{font-size:12.5px; color:#93a08e; margin-top:14px; border-left:2px solid var(--c-accent); padding-left:12px;}
@media (max-width:880px){ .talkshow-grid{grid-template-columns:1fr;} }

/* ---------- PRICE ---------- */
.price-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center;}
.price-grid.no-image{grid-template-columns:1fr; max-width:560px;}
.price-grid > img{border-radius:120px 120px 14px 14px; width:100%; aspect-ratio:3/4; object-fit:cover;}
@media (max-width:880px){ .price-grid{grid-template-columns:1fr;} .price-grid > img{max-width:340px; margin:0 auto;} }
.price-box{border:1px solid rgba(244,179,194,.35); border-radius:24px; padding:44px; max-width:560px;}
.price-name{font-size:13px; letter-spacing:.1em; color:var(--c-sub); margin-bottom:10px;}
.price-num{font-size:clamp(28px,3.6vw,42px); font-weight:700; color:#fff; margin-bottom:18px;}
.price-num .yen{color:var(--c-accent);}
.price-detail{font-size:14px; line-height:1.9; color:#c4cdc5; margin-bottom:18px;}
.price-date{font-size:11.5px; color:#8a9389;}
.price-tiers-label{font-size:11.5px; letter-spacing:.08em; color:#8a9389; margin:14px 0 10px;}
.price-tiers{list-style:none; margin:0 0 18px; display:flex; flex-direction:column; gap:10px;}
.price-tiers li{display:flex; justify-content:space-between; align-items:center; padding:15px 20px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.1); border-radius:14px;}
.price-tiers .tier-duration{font-size:15.5px; color:#eef1ee; font-weight:500; display:flex; align-items:center; gap:9px;}
.price-tiers .tier-duration::before{content:''; width:7px; height:7px; border-radius:50%; background:var(--c-gold); flex:none;}
.price-tiers .tier-price{font-size:23px; font-weight:700; color:#fff; letter-spacing:.01em;}
.price-tiers .tier-price .yen{color:var(--c-accent); font-size:14px; font-weight:400; margin-right:2px;}
.price-included{font-size:12.5px; color:var(--c-gold-light); margin-bottom:16px;}

/* ---------- インナートリートメント メニューブロック ---------- */
.menu-blocks{display:flex; flex-direction:column; gap:28px;}
.menu-block{background:#151915; border:1px solid rgba(255,255,255,.08); border-radius:24px; padding:32px; }
.menu-block.has-image{display:grid; grid-template-columns:.8fr 1.2fr; gap:32px; align-items:center; padding:0; overflow:hidden;}
.menu-block-img img{width:100%; height:100%; aspect-ratio:4/5; object-fit:cover; display:block;}
.menu-block-body{padding:32px 32px 32px 0;}
.menu-block:not(.has-image) .menu-block-body{padding:0;}
.menu-block-body h3{font-size:20px; margin-bottom:10px;}
.menu-block-body > p{font-size:14px; line-height:1.85; color:#c4cdc5;}
@media (max-width:780px){ .menu-block.has-image{grid-template-columns:1fr;} .menu-block-body{padding:0 24px 28px;} .menu-block-img img{aspect-ratio:16/9;} }

/* ---------- FLOW ---------- */
.flow-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative;}
.flow-line{position:absolute; top:26px; left:6%; right:6%; height:40px; z-index:0;}
.flow-step{position:relative; z-index:1; text-align:center;}
.flow-step .circle{width:52px; height:52px; border-radius:50%; background:var(--c-main-light); color:#10130f; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:17px; margin:0 auto 18px;}
.flow-step h4{font-size:15px; margin-bottom:8px;}
.flow-step p{font-size:12.5px; color:#9fae9d; line-height:1.7;}
@media (max-width:780px){ .flow-steps{grid-template-columns:1fr; gap:36px;} .flow-line{display:none;} }
#flow, #faq{padding:72px 6vw;}
#flow .h2, #faq .h2{font-size:clamp(20px,2.4vw,28px);}

/* ---------- INSTAGRAM ---------- */
.insta-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:30px;}
.insta-grid a{position:relative; display:block; aspect-ratio:1; border-radius:14px; overflow:hidden;}
.insta-grid img{width:100%; height:100%; object-fit:cover; transition:transform .5s;}
.insta-grid a:hover img{transform:scale(1.06);}
@media (max-width:780px){ .insta-grid{grid-template-columns:repeat(2,1fr);} }

/* ---------- Q&A / FAQ アコーディオン ---------- */
.qa-list{list-style:none;}
.faq-item, .qa-item{border-bottom:1px solid rgba(255,255,255,.12);}
.faq-q, .qa-question button{width:100%; text-align:left; background:none; border:none; color:#eef1ee; font-size:15.5px; font-weight:500; padding:22px 0;
       display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-family:inherit;}
.faq-q .plus, .qa-question .plus{transition:transform .3s; color:var(--c-accent); font-size:20px;}
.faq-item.open .faq-q .plus, .qa-question button[aria-expanded="true"] .plus{transform:rotate(45deg);}
.faq-a, .qa-answer{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.faq-a p, .qa-answer p{font-size:14px; line-height:1.85; color:#c4cdc5; padding-bottom:22px; max-width:680px;}
.qa-answer a{color:var(--c-accent);}
.qa-more{margin-top:20px;}
.qa-more a{color:var(--c-main-light); text-decoration:none; font-size:14px;}

/* ---------- CTA BAND ---------- */
.ctaband{background:transparent; text-align:center; position:relative; overflow:hidden;}
.ctaband .h2{margin-bottom:26px;}
.ctaband .cta-row{justify-content:center;}

/* ---------- FOOTER ---------- */
footer{background:#000; padding:80px 6vw 30px; font-size:13px; color:#93a08e;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:60px;}
.foot-grid h5{color:#fff; font-size:13px; letter-spacing:.08em; margin-bottom:18px;}
.foot-grid ul{list-style:none;}
.foot-grid li{margin-bottom:10px;}
.foot-grid a{text-decoration:none; color:#93a08e;}
.foot-grid a:hover{color:var(--c-accent);}
.foot-note{font-size:10.5px; color:#5c665a; border-top:1px solid rgba(255,255,255,.08); padding-top:20px;}
@media (max-width:780px){ .foot-grid{grid-template-columns:1fr 1fr; gap:34px;} }

/* ---------- Contact Form 7(お問い合わせフォーム) ---------- */
.wpcf7-form p{margin-bottom:20px;}
.wpcf7-form label{display:block; font-size:13.5px; color:var(--c-sub); margin-bottom:8px;}
.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form input[type=tel], .wpcf7-form textarea{
  width:100%; background:#151915; border:1px solid rgba(255,255,255,.15); border-radius:10px; padding:14px 16px;
  color:var(--c-ink); font-family:inherit; font-size:14.5px;
}
.wpcf7-form textarea{min-height:140px; resize:vertical;}
.wpcf7-form input:focus, .wpcf7-form textarea:focus{outline:2px solid var(--c-accent); outline-offset:2px;}
.wpcf7-form input[type=submit]{
  background:var(--c-main-light); color:#10130f; border:none; border-radius:40px; padding:15px 36px;
  font-size:14px; font-weight:500; cursor:pointer;
}
.wpcf7-form input[type=submit]:hover{background:var(--c-accent);}
.wpcf7-form .wpcf7-not-valid-tip{color:#f4b3c2; font-size:12.5px; margin-top:6px;}
.wpcf7-response-output{border-radius:10px; padding:14px 18px; margin-top:20px; font-size:13.5px;}

/* ---------- 汎用ページヘッダー(下層ページ用) ---------- */
.page-hero{min-height:40vh; display:flex; flex-direction:column; justify-content:center; padding:16vh 6vw 6vh; position:relative; overflow:hidden;}
.page-hero h1{font-size:clamp(28px,4.4vw,48px); font-weight:700; max-width:720px;}
.page-hero.has-bg{background-size:cover; background-position:center;}
.page-hero.has-bg::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(16,19,15,.25) 0%, var(--c-base) 96%); z-index:0;}
.page-hero.has-bg .glow{z-index:1;}
.page-hero.has-bg .container{position:relative; z-index:2;}
.entry-content{max-width:760px;}
.entry-content p{font-size:15.5px; line-height:1.95; color:var(--c-sub); margin-bottom:1.4em;}
.entry-content h2{font-size:clamp(20px,2.6vw,28px); margin:1.6em 0 .6em; font-weight:700;}
.breadcrumb{font-size:12px; color:#8a9389; margin-bottom:10px;}
.breadcrumb a{color:#8a9389; text-decoration:none;}
.breadcrumb a:hover{color:var(--c-accent);}

@media (prefers-reduced-motion: reduce){
  .fade-up{opacity:1; transform:none;}
  .vertical-copy, .arch{opacity:1; transform:none; clip-path:circle(75% at 50% 38%);}
}
