/*
Theme Name: HALE by CURA
Theme URI: https://cura-resortinterior.shop/
Author: 合同会社Hale
Author URI: https://cura-resortinterior.shop/
Description: リゾートレンタルサロン「HALE by CURA」専用のオリジナルWordPressテーマ。トップページ1枚構成、Googleカレンダー予約導線付き。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hale-by-cura
*/

:root{
  --sand:#f3ece1;
  --sand-deep:#e8dcc8;
  --terracotta:#c07a52;
  --terracotta-deep:#a25f3c;
  --leaf:#5d7a5a;
  --leaf-deep:#3f5940;
  --ink:#3a332c;
  --ink-soft:#6b6255;
  --white:#fffdf9;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"Hiragino Mincho ProN","YuMincho","游明朝","Noto Serif JP",serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.9;
  letter-spacing:.02em;
}
img{max-width:100%;display:block;}
a{color:inherit;}
.en{font-family:"Optima","Century Gothic","Avenir Next",sans-serif;letter-spacing:.12em;}

/* header */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(255,253,249,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--sand-deep);
}
.nav-wrap{
  max-width:1120px;margin:0 auto;padding:16px 24px;
  display:flex;align-items:center;justify-content:space-between;
}
.logo{font-size:20px;letter-spacing:.18em;font-weight:600;color:var(--terracotta-deep);}
.logo span{display:block;font-size:10px;color:var(--ink-soft);letter-spacing:.25em;margin-top:2px;}
@media(max-width:480px){
  .logo{font-size:16px;}
  .logo span{font-size:8.5px;}
  .nav-wrap{padding:14px 18px;}
}
nav ul{display:flex;gap:28px;list-style:none;}
nav a{font-size:14px;text-decoration:none;color:var(--ink);position:relative;padding-bottom:4px;}
nav a:hover{color:var(--terracotta-deep);}
.nav-cta{
  background:var(--terracotta);color:#fff;padding:10px 22px;border-radius:2px;
  font-size:13px;text-decoration:none;letter-spacing:.1em;white-space:nowrap;
}
.nav-cta:hover{background:var(--terracotta-deep);}
.menu-btn{display:none;background:none;border:none;font-size:22px;cursor:pointer;color:var(--ink);line-height:1;}
.mobile-nav{
  display:none;max-height:0;overflow:hidden;background:var(--white);border-top:1px solid var(--sand-deep);
  transition:max-height .3s ease;
}
.mobile-nav.open{max-height:400px;}
.mobile-nav ul{list-style:none;padding:8px 24px 20px;display:flex;flex-direction:column;gap:4px;}
.mobile-nav a{display:block;padding:12px 0;font-size:15px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--sand);}
.mobile-nav .nav-cta{display:inline-block;margin-top:14px;text-align:center;}

@media(max-width:860px){
  nav ul{display:none;}
  header .nav-wrap > .nav-cta{display:none;}
  .menu-btn{display:block;}
  .mobile-nav{display:block;}
}

/* hero */
.hero{
  margin-top:64px;
  position:relative;
  background:#faf6ef;
  overflow:hidden;
}
.hero-banner{width:100%;display:block;aspect-ratio:1926/817;object-fit:cover;}
.hero-inner{
  position:absolute;top:50%;right:6%;transform:translateY(-50%);
  text-align:left;max-width:36%;z-index:1;
}
.hero-eyebrow{
  font-size:clamp(9px,1vw,12px);letter-spacing:.28em;color:var(--terracotta-deep);margin-bottom:clamp(6px,1.2vw,18px);
}
.hero h1{
  font-size:clamp(14px,2.3vw,34px);
  font-weight:600;line-height:1.5;color:var(--ink);margin-bottom:clamp(6px,1.2vw,18px);
}
.hero p{
  font-size:clamp(8px,1.05vw,14.5px);color:var(--ink-soft);margin-bottom:clamp(8px,1.6vw,28px);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.hero-btns{display:flex;gap:clamp(6px,1vw,14px);flex-wrap:wrap;}
.hero-btns .btn-primary,.hero-btns .btn-outline{
  padding:clamp(6px,1.1vw,15px) clamp(10px,2vw,34px);font-size:clamp(8px,.95vw,14px);
}
@media(max-width:700px){
  .hero-banner{aspect-ratio:auto;height:38vh;min-height:220px;object-position:left center;}
  .hero-inner{
    position:static;transform:none;max-width:100%;text-align:center;
    padding:28px 22px 40px;
  }
  .hero-eyebrow{font-size:12px;margin-bottom:16px;}
  .hero h1{font-size:clamp(22px,6vw,30px);margin-bottom:16px;}
  .hero p{font-size:14px;-webkit-line-clamp:4;margin:0 auto 26px;max-width:440px;}
  .hero-btns{justify-content:center;}
  .hero-btns .btn-primary,.hero-btns .btn-outline{padding:14px 30px;font-size:13.5px;}
}
.btn-primary{
  background:var(--terracotta);color:#fff;padding:15px 34px;text-decoration:none;
  border-radius:2px;font-size:14px;letter-spacing:.1em;
}
.btn-primary:hover{background:var(--terracotta-deep);}
.btn-outline{
  border:1px solid var(--ink);color:var(--ink);padding:14px 34px;text-decoration:none;
  border-radius:2px;font-size:14px;letter-spacing:.1em;
}
.btn-outline:hover{background:var(--ink);color:#fff;}

/* section base */
section{padding:100px 24px;}
.section-inner{max-width:1120px;margin:0 auto;}
.section-head{text-align:center;margin-bottom:64px;}
.section-eyebrow{font-size:12px;letter-spacing:.3em;color:var(--terracotta-deep);margin-bottom:14px;}
.section-title{font-size:clamp(24px,3.4vw,34px);font-weight:600;}
.section-lead{color:var(--ink-soft);font-size:14px;max-width:560px;margin:18px auto 0;}
@media(max-width:820px){
  section{padding:72px 22px;}
  .section-head{margin-bottom:44px;}
}
@media(max-width:480px){
  section{padding:56px 18px;}
}

/* concept */
.concept-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
}
.concept-visual{
  aspect-ratio:4/5;border-radius:4px;
  overflow:hidden;
}
.concept-visual img{width:100%;height:100%;object-fit:cover;}
.concept-text p{color:var(--ink-soft);font-size:14.5px;margin-bottom:18px;}
@media(max-width:820px){
  .concept-grid{grid-template-columns:1fr;gap:36px;}
}

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

/* features */
.features{background:var(--sand);}
.feature-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
}
.feature-card{
  background:var(--white);padding:38px 28px;border-radius:4px;text-align:center;
  border:1px solid var(--sand-deep);
}
.feature-icon{
  width:52px;height:52px;margin:0 auto 20px;border-radius:50%;
  background:var(--leaf);display:flex;align-items:center;justify-content:center;color:#fff;
}
.feature-card h3{font-size:17px;margin-bottom:12px;}
.feature-card p{font-size:13.5px;color:var(--ink-soft);}
@media(max-width:1024px) and (min-width:641px){
  .feature-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .feature-grid{grid-template-columns:1fr;}
}

/* pricing */
.price-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
}
.price-card{
  border:1px solid var(--sand-deep);border-radius:4px;padding:40px 28px;text-align:center;
  position:relative;
}
.price-card.featured{
  border-color:var(--terracotta);
  box-shadow:0 18px 40px -20px rgba(192,122,82,.5);
}
.price-badge{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:var(--terracotta);color:#fff;font-size:11px;letter-spacing:.15em;
  padding:5px 16px;border-radius:20px;
}
.price-name{font-size:12px;letter-spacing:.2em;color:var(--terracotta-deep);margin-bottom:10px;}
.price-amount{font-size:32px;font-weight:600;margin-bottom:6px;}
.price-amount span{font-size:13px;color:var(--ink-soft);}
.price-note{font-size:12px;color:var(--ink-soft);margin-bottom:26px;}
.price-list{list-style:none;text-align:left;font-size:13.5px;color:var(--ink-soft);}
.price-list li{padding:9px 0;border-bottom:1px dashed var(--sand-deep);}
@media(max-width:1024px) and (min-width:641px){
  .price-grid{grid-template-columns:repeat(2,1fr);}
  .price-card.featured{grid-column:span 2;max-width:420px;margin:0 auto;}
}
@media(max-width:640px){
  .price-grid{grid-template-columns:1fr;}
}

/* reservation */
.reserve{background:var(--sand-deep);}
.reserve-inner{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:start;
}
.reserve-steps{list-style:none;counter-reset:step;}
.reserve-steps li{
  counter-increment:step;padding:18px 0 18px 46px;position:relative;
  border-bottom:1px solid rgba(58,51,44,.1);font-size:14px;color:var(--ink-soft);
}
.reserve-steps li:last-child{border-bottom:none;}
.reserve-steps li::before{
  content:counter(step);position:absolute;left:0;top:16px;
  width:28px;height:28px;border-radius:50%;background:var(--leaf);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:13px;
}
.reserve-steps b{color:var(--ink);display:block;margin-bottom:2px;font-size:15px;}
.calendar-embed{
  background:#fff;border-radius:6px;overflow:hidden;border:1px solid var(--sand-deep);
  min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:56px 36px;
}
.calendar-embed .cal-icon{
  width:64px;height:64px;border-radius:50%;background:var(--sand);
  display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:22px;
}
.calendar-embed h3{font-size:19px;margin-bottom:10px;}
.calendar-embed p{font-size:13.5px;color:var(--ink-soft);max-width:320px;margin-bottom:28px;}
.cal-btn{
  display:inline-block;background:var(--terracotta);color:#fff;text-decoration:none;
  padding:16px 40px;border-radius:2px;font-size:14px;letter-spacing:.08em;
}
.cal-btn:hover{background:var(--terracotta-deep);}
.calendar-embed .cal-note{
  margin-top:18px;font-size:12px;color:var(--ink-soft);margin-bottom:0;
}
@media(max-width:900px){
  .reserve-inner{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .calendar-embed{padding:40px 22px;min-height:340px;}
  .cal-btn{padding:15px 28px;width:100%;}
}

/* cancellation policy */
.policy-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;
}
.policy-text p{color:var(--ink-soft);font-size:14.5px;margin-bottom:16px;}
.policy-table{border:1px solid var(--sand-deep);border-radius:4px;overflow:hidden;background:var(--white);}
.policy-table div{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:16px 22px;font-size:13.5px;border-bottom:1px dashed var(--sand-deep);
}
.policy-table div:last-child{border-bottom:none;}
.policy-table div span:first-child{color:var(--ink-soft);}
.policy-table .rate{color:var(--terracotta-deep);font-weight:600;white-space:nowrap;}
.policy-note{
  margin-top:20px;font-size:12.5px;color:var(--ink-soft);
  background:var(--sand);border-radius:4px;padding:16px 20px;
}
@media(max-width:820px){
  .policy-grid{grid-template-columns:1fr;gap:32px;}
}

/* usage / checkout */
.usage-subtitle{font-size:16px;font-weight:600;color:var(--ink);margin-bottom:22px;}

/* access */
.access-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
}
.access-info dl{font-size:14px;}
.access-info dt{color:var(--terracotta-deep);font-size:12px;letter-spacing:.15em;margin-top:22px;}
.access-info dd{color:var(--ink-soft);margin-top:6px;}
.map-box{
  aspect-ratio:4/3;border-radius:4px;
  background:repeating-linear-gradient(45deg,#e8dcc8,#e8dcc8 12px,#f3ece1 12px,#f3ece1 24px);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);font-size:13px;letter-spacing:.1em;border:1px solid var(--sand-deep);
}
.map-box iframe{width:100%;height:100%;border:0;display:block;}
@media(max-width:820px){
  .access-grid{grid-template-columns:1fr;}
}

footer{
  background:var(--ink);color:#e9e2d6;padding:56px 24px 28px;text-align:center;
}
footer .logo{color:#f3ece1;}
footer p{font-size:12.5px;color:#b5ab9a;margin-top:14px;}
.footer-links{margin-top:24px;display:flex;gap:22px;justify-content:center;font-size:13px;flex-wrap:wrap;}
.footer-links a{text-decoration:none;color:#e9e2d6;}
.footer-links a:hover{color:var(--terracotta);}

/* WordPress core alignment helpers */
.alignfull{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;}
.screen-reader-text{position:absolute;left:-9999px;}
