/* Base */
:root{
  /* Warm palette */
  --c-primary:#c2410c;            /* warm orange */
  --c-primary-dark:#9a3412;
  --c-accent:#b45309;             /* amber */
  --c-ink:#3f2d20;                /* warm text */
  --c-surface:#ffffff;
  --c-surface-2:#fff7ed;          /* warm background */
  --c-border:#f1e6da;
}

html,body{background:var(--c-surface-2);color:var(--c-ink);}

/* Subtle animations */
/*
  Reveal animation
  - JS(IntersectionObserver)で .is-in が付くまで非表示になります。
  - モバイル/一部ブラウザでIOが効かないケースがあるため、初期状態は表示にして
    .reveal-ready(=JS起動後) のときだけ隠すようにします。
*/
.reveal{opacity:1;transform:none;transition:opacity .6s ease, transform .6s ease;}
.reveal-ready .reveal{opacity:0;transform:translateY(10px);} 
.reveal-ready .reveal.is-in{opacity:1;transform:none;}
.reveal-delay-1{transition-delay:.06s;}
.reveal-delay-2{transition-delay:.12s;}
.reveal-delay-3{transition-delay:.18s;}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html:focus-within{scroll-behavior:auto;}
}

/* Gentle hover lift for cards */
.card-hover{transition:transform .18s ease, box-shadow .18s ease;}
.card-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(63,45,32,.10);}

.btn-primary{
  background:linear-gradient(135deg,var(--c-primary),var(--c-accent));
  color:#fff;
  padding:.75rem 1.25rem;
  border-radius:.75rem;
  font-weight:700;
  box-shadow:0 10px 24px rgba(194,65,12,.22);
}
.btn-primary:hover{filter:brightness(.95);} 

.btn-white{
  background:#fff;
  color:var(--c-ink);
  padding:.75rem 1.25rem;
  border-radius:.75rem;
  border:1px solid var(--c-border);
}

.badge{background:#fff7ed;border:1px solid var(--c-border);border-radius:.75rem;padding:.5rem;}
.badge-icon{width:1.1rem;height:1.1rem;flex:none;color:var(--c-accent);} 

/* Floorplan: keep it visually centered and avoid large empty side margins on wide screens */
.floorplan-wrap{max-width:980px;margin-left:auto;margin-right:auto;}
.floorplan-img{width:100%;height:auto;object-fit:contain;background:#fff;}
/* Bigger display for floor images (requested) */
.floorplan-img--big{max-height:560px;}
@media (min-width:1024px){
  .floorplan-img--big{max-height:640px;}
}
.section-title{font-size:1.6rem;font-weight:900;letter-spacing:.01em;color:var(--c-ink);}

/* Icon list helpers */
.icon-list li{align-items:flex-start;}
.icon-list svg{flex:none;}
.th{width:10rem;text-align:left;padding:.75rem;background:#fffbf5;border-right:1px solid var(--c-border);}
.td{padding:.75rem;}
.label{display:block;font-size:.875rem;color:#5b4637;margin-bottom:.25rem;}
.input{width:100%;padding:.625rem .75rem;border:1px solid var(--c-border);border-radius:.75rem;background:#fff;}
#formMessage.success{color:#15803d;}
#formMessage.error{color:#b91c1c;}

/* Focus ring (warm) */
.input:focus{outline:none;box-shadow:0 0 0 4px rgba(245,158,11,.20);border-color:rgba(180,83,9,.55);} 

/* Flow arrows */
.flow-steps > li{position:relative;background:#fff;border-color:var(--c-border);} 
/* Mobile (stacked): down arrows */
.flow-steps > li:not(:last-child){padding-bottom:2.25rem;}
.flow-steps > li:not(:last-child)::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-14px;
  transform:translateX(-50%);
  width:0;height:0;
  border-left:12px solid transparent;
  border-right:12px solid transparent;
  border-top:16px solid #fbbf24; /* amber-400 */
  filter:drop-shadow(0 6px 10px rgba(180,83,9,.18));
}

/* Desktop (row): right arrows */
@media (min-width:1024px){
  .flow-steps > li:not(:last-child){padding-bottom:1.25rem;padding-right:2.25rem;}
  .flow-steps > li:not(:last-child)::after{
    left:auto;
    bottom:auto;
    right:-14px;
    top:50%;
    transform:translateY(-50%);
    border-left:16px solid #fbbf24;
    border-top:12px solid transparent;
    border-bottom:12px solid transparent;
    border-right:0;
  }
}

/* Hero bubble (speech balloon) */
.hero-bubble{position:relative;}
/* 吹き出しのしっぽは無し（ユーザー要望） */
.hero-bubble::after,
.hero-bubble::before{content:none;display:none;}

/* Hero character (optional positioning helper) */
.hero-character{position:absolute;left:-96px;bottom:-12px;width:130px;height:auto;animation:heroFloat 2.4s ease-in-out infinite;}
@media (max-width:420px){.hero-character{left:-70px;width:100px;}}
@media (min-width:1280px){
  .hero-character{left:-120px;bottom:-14px;width:170px;}
}
@keyframes heroFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
@media (prefers-reduced-motion: reduce){.hero-character{animation:none;}}

/* Points character */
.points-grid{position:relative;}
@media (min-width:1280px){
  /* 全幅時：カード右下に自然に見えるよう少し大きく */
  .points-character{width:190px;right:352px;bottom:-10px;}
}

.points-card{position:relative;}
.points-character{position:absolute;right:334px;bottom:-6px;width:160px;height:auto;opacity:.95;filter:drop-shadow(0 18px 30px rgba(0,0,0,.18));animation:pointsFloat 2.6s ease-in-out infinite;}
@media (max-width:640px){.points-character{width:110px;right:-2px;bottom:-6px;}}
@media (min-width:1024px){.points-character{width:180px;right:344px;bottom:-8px;}}
@keyframes pointsFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
@media (prefers-reduced-motion: reduce){.points-character{animation:none;}}

/* Points background */
.points-bg{position:relative;isolation:isolate;}
.points-bg > .max-w-6xl{position:relative;z-index:1;}
/* オーバーレイの四角（after）を無効化 */
.points-bg::after{background:none !important;}
.points-bg::before{
  content:"";
  position:absolute;inset:0;
  background-image:url('../images/points-bg.jpg');
  background-size:cover;
  background-position:center;
  filter:blur(10px) saturate(1.05) brightness(.95);
  transform:scale(1.08); /* avoid blurred edge */
  opacity:.55;
  z-index:-2;
}
.points-bg::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;}

/* Scroll hint */
.scroll-hint{position:fixed;right:clamp(18px, 7vw, 120px);bottom:18px;left:auto;transform:none;text-align:center;z-index:60;pointer-events:none;opacity:.55;}
.scroll-hint__label{writing-mode:vertical-rl;text-orientation:mixed;font-size:12px;letter-spacing:.22em;font-weight:800;color:rgba(17,24,39,.60);text-shadow:0 6px 18px rgba(255,255,255,.55);}
.scroll-hint__arrow{width:16px;height:16px;border-right:2px solid rgba(17,24,39,.55);border-bottom:2px solid rgba(17,24,39,.55);transform:rotate(45deg);margin:8px 2px 0 auto;animation:scrollHint 1.35s ease-in-out infinite;filter:drop-shadow(0 10px 14px rgba(255,255,255,.6));}
@keyframes scrollHint{0%,100%{transform:translateY(0) rotate(45deg);opacity:.75;}50%{transform:translateY(8px) rotate(45deg);opacity:1;}}
@media (prefers-reduced-motion: reduce){.scroll-hint__arrow{animation:none;}}

/* BEFORE/AFTER arrow (same design as scroll hint arrow) */
.before-after-arrow{width:16px;height:16px;border-right:2px solid rgba(17,24,39,.55);border-bottom:2px solid rgba(17,24,39,.55);filter:drop-shadow(0 10px 14px rgba(255,255,255,.6));}
.before-after-arrow--right{transform:rotate(-45deg);} /* looks like → */
.before-after-arrow--down{transform:rotate(45deg);}   /* looks like ↓ */

/* Avoid overlap on wide screens: push FLOOR section down a bit */
@media (min-width:1280px){
  .promo-floor{margin-top:0;}
}

/* Renovation speech bubble */
.renovation-speech{position:relative;}
.renovation-speech__bubble{position:relative;max-width:52rem;background:rgba(255,255,255,.78);backdrop-filter:blur(6px);border:1px solid var(--c-border);border-radius:1.1rem;padding:1rem 1.05rem;box-shadow:0 10px 24px rgba(63,45,32,.08);}
/* 吹き出しのしっぽ無し（要望対応） */
.renovation-speech__bubble::after,
.renovation-speech__bubble::before{content:none;display:none;}

/* Reserve box (placeholder CTA) */
.reserve-box{border-radius:18px;overflow:hidden;}
.reserve-box__inner{
  padding:22px 18px;
  background:linear-gradient(135deg, rgba(194,65,12,.92), rgba(180,83,9,.92));
  color:#fff;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 18px 40px rgba(194,65,12,.22);
  text-align:center;
}
.reserve-box__title{font-weight:900;letter-spacing:.06em;font-size:1.4rem;}
.reserve-box__sub{margin-top:6px;font-size:.9rem;color:rgba(255,255,255,.88);}
.reserve-box:hover .reserve-box__inner{filter:brightness(.98);}
.reserve-box:focus{outline:none;}
.reserve-box:focus-visible{box-shadow:0 0 0 5px rgba(245,158,11,.28), 0 18px 40px rgba(194,65,12,.22);}

/* Hero bubble scaling (wide screens) */
@media (min-width:1280px){
  .hero-bubble{transform:scale(1.18);transform-origin:top center;}
}

/* Lightbox */
html.gs-lightbox-open{overflow:hidden;}
.gs-lightbox{position:fixed;inset:0;z-index:9999;display:none;}
.gs-lightbox.is-open{display:block;}
.gs-lightbox__backdrop{position:absolute;inset:0;background:rgba(17,24,39,.72);backdrop-filter:blur(2px);}
.gs-lightbox__dialog{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;}
.gs-lightbox__img{max-width:min(1100px, 92vw);max-height:82vh;width:auto;height:auto;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.45);background:#111;}
.gs-lightbox__caption{margin-top:10px;color:rgba(255,255,255,.85);font-size:12px;text-align:center;max-width:min(1100px, 92vw);}
.gs-lightbox__close{position:fixed;top:16px;right:16px;width:44px;height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.35);color:#fff;font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.gs-lightbox__close:hover{background:rgba(0,0,0,.55);}
.gs-lightbox__nav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(0,0,0,.30);color:#fff;font-size:30px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.gs-lightbox__nav:hover{background:rgba(0,0,0,.50);}
.gs-lightbox__prev{left:14px;}
.gs-lightbox__next{right:14px;}

/* Hero poster-like label */
.vertical-label{writing-mode:vertical-rl;transform:none;text-orientation:upright;font-weight:800;letter-spacing:.1em;line-height:1;color:rgba(31,41,55,.75);}
@media (min-width:768px){.vertical-label{font-size:38px;}}
@media (min-width:1024px){.vertical-label{font-size:48px;}}

