/*
Theme Name: TERA.CASA Hospitality
Theme URI: https://tera.casa
Author: TERA.CASA
Description: A content-ready, design-led hospitality theme for TERA.CASA.
Version: 1.0.6
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: tera-casa-hospitality
*/

:root {
  --tera-bg: #faf9f5;
  --tera-bg-soft: #fffdf9;
  --tera-surface: #ffffff;
  --tera-panel: #f0eee6;
  --tera-panel-strong: #e8e6dc;
  --tera-glass: rgba(255, 255, 255, .82);
  --tera-ink: #141413;
  --tera-muted: #6e6d66;
  --tera-faint: #b0aea5;
  --tera-line: #e5e3da;
  --tera-line-strong: #d6d3c7;
  --tera-accent: #a8583e;
  --tera-accent-display: #d97757;
  --tera-accent-hover: #9e533b;
  --tera-warm: #d97757;
  --tera-warm-soft: #f6e7e1;
  --tera-on-accent: #fff;
  --tera-footer: #141413;
  --tera-radius: 12px;
  --tera-pill: 999px;
  --tera-max: 1120px;
  --tera-shadow: 0 1px 2px rgba(20, 20, 19, .05);
  --tera-shadow-soft: 0 1px 2px rgba(20, 20, 19, .035);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background:
    radial-gradient(circle at 8% 12%, color-mix(in srgb, var(--tera-warm-soft) 54%, transparent), transparent 30rem),
    radial-gradient(circle at 92% 4%, color-mix(in srgb, var(--tera-panel) 92%, transparent), transparent 32rem),
    linear-gradient(180deg, var(--tera-bg-soft), var(--tera-bg));
  color: var(--tera-ink);
  font-family: "Hiragino Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; }
button, select { font: inherit; }
.screen-reader-text {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: fixed; left: 1rem; top: 1rem; z-index: 100;
  padding: .65rem 1rem; background: var(--tera-ink); color: #fff;
  border-radius: var(--tera-radius); transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }
.site-header { position: relative; z-index: 20; padding: 1.15rem 1.5rem; }
.site-header__inner {
  width: min(100%, var(--tera-max)); margin: 0 auto; min-height: 3.4rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .45rem .55rem .45rem 1rem; border: 1px solid var(--tera-line);
  border-radius: var(--tera-pill); background: var(--tera-glass); box-shadow: var(--tera-shadow-soft); backdrop-filter: blur(18px);
}
.site-brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--tera-ink); text-decoration: none; white-space: nowrap; }
.site-brand__mark {
  display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%;
  background: var(--tera-accent); color: var(--tera-on-accent); font-size: .72rem; font-weight: 800; letter-spacing: -.04em;
}
.site-brand__name { font-size: .94rem; font-weight: 760; letter-spacing: .12em; }
.site-header__actions { display: flex; align-items: center; gap: .7rem; }
.site-nav ul { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.site-nav a { display: block; padding: .55rem .72rem; color: var(--tera-muted); text-decoration: none; font-size: .9rem; font-weight: 650; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--tera-accent); }
.language-switcher select, .palette-switcher select {
  appearance: none; max-width: 10rem; border: 1px solid var(--tera-line); border-radius: var(--tera-pill);
  background: var(--tera-surface); color: var(--tera-ink); cursor: pointer; padding: .52rem 2rem .52rem .75rem;
  font-size: .84rem; font-weight: 650; background-image: linear-gradient(45deg, transparent 50%, var(--tera-muted) 50%), linear-gradient(135deg, var(--tera-muted) 50%, transparent 50%);
  background-position: calc(100% - 1rem) calc(50% - 2px), calc(100% - .72rem) calc(50% - 2px); background-size: .28rem .28rem; background-repeat: no-repeat;
}
.site-main { min-height: calc(100vh - 13.5rem); }
.coming-soon {
  width: min(100%, var(--tera-max)); min-height: min(68vh, 50rem); margin: 0 auto; padding: 1.5rem;
  display: grid; place-items: center;
}
.coming-soon__panel {
  position: relative; isolation: isolate; width: min(100%, 49rem); overflow: hidden; padding: clamp(3.8rem, 11vw, 7.5rem) clamp(1.5rem, 7vw, 5.5rem);
  border: 1px solid var(--tera-line); border-radius: 1.25rem;
  background: linear-gradient(145deg, var(--tera-surface), color-mix(in srgb, var(--tera-panel) 54%, var(--tera-surface)));
  box-shadow: var(--tera-shadow); text-align: center;
}
.coming-soon__panel::before, .coming-soon__panel::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }
.coming-soon__panel::before { width: 26rem; height: 26rem; right: -15rem; top: -16rem; background: color-mix(in srgb, var(--tera-accent) 16%, transparent); }
.coming-soon__panel::after { width: 20rem; height: 20rem; left: -13rem; bottom: -14rem; background: color-mix(in srgb, var(--tera-warm) 16%, transparent); }
.coming-soon__brand { margin: 0 0 .8rem; color: var(--tera-accent); font-size: clamp(.75rem, 1.6vw, .9rem); font-weight: 800; letter-spacing: .25em; }
.coming-soon h1 { margin: 0; color: var(--tera-ink); font-family: "Hiragino Mincho ProN", "Yu Mincho", Georgia, serif; font-size: clamp(2.5rem, 8vw, 5.7rem); font-weight: 500; letter-spacing: -.06em; line-height: 1.12; }
.site-footer { margin-top: 2.5rem; padding: 2.5rem 1.5rem 1.7rem; background: var(--tera-footer); color: #faf9f5; }
.site-footer__inner { width: min(100%, var(--tera-max)); margin: 0 auto; display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.site-footer strong { display: block; font-size: .85rem; letter-spacing: .14em; }
.site-footer span { color: rgba(250,249,245,.65); font-size: .82rem; }
.footer-links { display: flex; gap: 1rem; }
.footer-links a { color: rgba(250,249,245,.74); font-size: .82rem; text-decoration: none; }
.footer-links a:hover { color: #fff; }
.palette-switcher { position: fixed; right: 1rem; bottom: 1rem; z-index: 30; display: flex; align-items: center; gap: .5rem; padding: .45rem; border: 1px solid var(--tera-line); border-radius: var(--tera-pill); background: var(--tera-glass); box-shadow: var(--tera-shadow-soft); backdrop-filter: blur(18px); }
.palette-switcher__label { padding-left: .35rem; color: var(--tera-muted); font-size: .78rem; font-weight: 700; }
.palette-switcher select { max-width: 12rem; }
.page-shell { width: min(100%, var(--tera-max)); margin: 0 auto; padding: 2rem 1.5rem 5rem; }
.page-shell .entry-content { max-width: 48rem; }
.page-shell h1 { font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1.08; letter-spacing: -.055em; }
.error-page { min-height: 58vh; display: grid; place-items: center; text-align: center; }
.error-page a { color: var(--tera-accent); }
body.tera-palette-warm { --tera-bg:#faf9f5; --tera-bg-soft:#fffdf9; --tera-surface:#fff; --tera-panel:#f0eee6; --tera-panel-strong:#e8e6dc; --tera-ink:#141413; --tera-muted:#6e6d66; --tera-faint:#b0aea5; --tera-line:#e5e3da; --tera-line-strong:#d6d3c7; --tera-accent:#a8583e; --tera-accent-display:#d97757; --tera-accent-hover:#9e533b; --tera-warm:#d97757; --tera-warm-soft:#f6e7e1; --tera-footer:#141413; }
body.tera-palette-ivory { --tera-bg:#f8f5ef; --tera-bg-soft:#fffdf9; --tera-surface:#fffefa; --tera-panel:#f0e9dd; --tera-panel-strong:#e7ded0; --tera-ink:#292622; --tera-muted:#6e665c; --tera-faint:#b3a99b; --tera-line:#e6ded0; --tera-line-strong:#d5c8b7; --tera-accent:#79513a; --tera-accent-display:#c98663; --tera-accent-hover:#563d2b; --tera-warm:#bd7a58; --tera-warm-soft:#f7ede3; --tera-footer:#231f1c; }
body.tera-palette-ink { --tera-bg:#262624; --tera-bg-soft:#30302e; --tera-surface:#30302e; --tera-panel:#1f1e1d; --tera-panel-strong:#35352f; --tera-glass:rgba(48,48,46,.85); --tera-ink:#faf9f5; --tera-muted:#a3a29c; --tera-faint:#6f6e69; --tera-line:#3b3a37; --tera-line-strong:#4a4945; --tera-accent:#d97757; --tera-accent-display:#e08b6e; --tera-accent-hover:#e08b6e; --tera-warm:#d97757; --tera-warm-soft:#49342f; --tera-on-accent:#141413; --tera-footer:#1f1e1d; }
body.tera-palette-clay { --tera-bg:#f7efea; --tera-bg-soft:#fffaf7; --tera-surface:#fffdfa; --tera-panel:#f2e5dc; --tera-panel-strong:#ead7cb; --tera-ink:#302621; --tera-muted:#75645b; --tera-faint:#b29a8d; --tera-line:#e4d6ce; --tera-line-strong:#d8c2b7; --tera-accent:#8e4833; --tera-accent-display:#d46d4b; --tera-accent-hover:#743827; --tera-warm:#d46d4b; --tera-warm-soft:#f7e8dc; --tera-footer:#251c19; }
body.tera-palette-stone { --tera-bg:#f4f2ed; --tera-bg-soft:#fbfaf7; --tera-surface:#fffefa; --tera-panel:#ebe9e2; --tera-panel-strong:#dedbd1; --tera-ink:#252624; --tera-muted:#66645f; --tera-faint:#aaa69d; --tera-line:#d9d6ce; --tera-line-strong:#c8c4b9; --tera-accent:#5f594d; --tera-accent-display:#95846d; --tera-accent-hover:#454238; --tera-warm:#a8846a; --tera-warm-soft:#f1ebe4; --tera-footer:#1b1c1a; }
@media (max-width: 680px) {
  body { font-size: 16px; }
  .site-header { padding: .8rem .85rem; }
  .site-header__inner { padding-left: .75rem; }
  .site-brand__name, .site-nav { display: none; }
  .site-header__actions { margin-left: auto; }
  .coming-soon { min-height: 66vh; padding: .85rem; }
  .coming-soon__panel { border-radius: 1rem; }
  .site-footer { padding: 2rem 1rem 5rem; }
  .site-footer__inner { align-items: start; flex-direction: column; }
  .palette-switcher__label { display: none; }
}
