/*
Theme Name: TAKI Omakase Clean
Theme URI: https://github.com/emma522/taki-omakase-website
Author: TAKI Omakase
Description: Clean, lightweight WordPress theme shell for the TAKI Omakase website. Compatible with Elementor Free. No importer or third-party dependencies included.
Version: 0.2.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: taki-omakase-clean
*/

:root {
  --taki-background: #FCFAF8;
  --taki-surface: #F6F3F0;
  --taki-text: #202020;
  --taki-body: #303030;
  --taki-muted: #655B52;
  --taki-accent: #A59C95;
  --taki-border: #D8D2CA;
  --taki-max-width: 1160px;
  --taki-edge: clamp(22px, 6vw, 90px);
  --taki-serif: "Noto Serif JP", Georgia, serif;
  --taki-sans: "Noto Sans JP", Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--taki-background); color: var(--taki-text); font-family: var(--taki-sans); font-size: 16px; line-height: 1.8; overflow-x: clip; }
img, video, svg { max-width: 100%; }
img { height: auto; }
a { color: inherit; }
h1, h2, h3, h4, h5, h6 { font-family: var(--taki-serif); font-weight: 400; line-height: 1.3; }
p { color: var(--taki-body); }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--taki-accent); outline-offset: 3px; }
.taki-skip-link { position: absolute; left: 10px; top: -100px; z-index: 9999; background: #fff; padding: 9px 16px; }
.taki-skip-link:focus { top: 8px; }

/* Shared shell for non-home pages */
.taki-header { min-height: 80px; background: var(--taki-background); border-bottom: 1px solid var(--taki-border); display: flex; gap: 20px; justify-content: space-between; align-items: center; padding: 14px var(--taki-edge); position: relative; z-index: 40; }
.taki-brand { text-decoration: none; white-space: nowrap; font-family: var(--taki-serif); font-size: 25px; font-weight: 400; letter-spacing: .12em; line-height: 1.2; }
.taki-brand small { font-family: var(--taki-sans); font-size: 10px; letter-spacing: .16em; font-weight: 400; }
.taki-nav-list { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(12px, 1.6vw, 26px); list-style: none; margin: 0; padding: 0; }
.taki-nav-list li { margin: 0; }
.taki-nav-list a { text-decoration: none; font-size: 12px; letter-spacing: .025em; }
.taki-header-actions { display: flex; align-items: center; gap: 10px; }
.taki-reserve-link { text-decoration: none; color: #fff; background: var(--taki-text); display: inline-flex; align-items: center; justify-content: center; border-radius: 99px; min-height: 42px; padding: 9px 21px; font-size: 12px; }
.taki-menu-toggle, .taki-menu-close { border-radius: 99px; padding: 8px 16px; min-height: 42px; border: 1px solid #AA9D91; background: transparent; color: var(--taki-text); font-size: 13px; }
.taki-menu-toggle { display: none; }
.taki-menu-panel[hidden] { display: none !important; }
.taki-menu-panel { position: fixed; inset: 0; z-index: 1000; background: var(--taki-background); padding: 25px var(--taki-edge); overflow-y: auto; }
.taki-menu-panel .taki-menu-close { display: block; margin-left: auto; }
.taki-menu-panel .taki-nav-list { display: flex; align-items: stretch; flex-direction: column; gap: 21px; margin-top: 70px; }
.taki-menu-panel .taki-nav-list a { font-family: var(--taki-serif); font-size: clamp(26px, 5vw, 42px); }
body.taki-menu-open { overflow: hidden; }

/* Homepage: intentionally separate floating navigation */
.taki-header-home { position: fixed; right: 18px; left: auto; top: min(350px, 48vh); z-index: 90; width: auto; min-height: 0; background: transparent; border: 0; padding: 0; }
.taki-header-home .taki-reserve-link, .taki-header-home .taki-menu-toggle { display: inline-flex; color: var(--taki-text); background: rgba(252,250,248,.97); border: 1px solid var(--taki-text); min-height: 46px; padding: 11px 19px; font-size: 14px; }
.taki-header-home .taki-header-actions { gap: 8px; }

/* Elementor Free handles page content within this uncluttered canvas. */
.taki-page-content { min-height: 40vh; }
.taki-page-content .elementor { max-width: none; }
.taki-default-content { max-width: var(--taki-max-width); margin: 0 auto; padding: clamp(65px, 8vw, 110px) var(--taki-edge); }
.taki-default-content h1 { font-size: clamp(38px, 5vw, 70px); margin: 0 0 32px; }
.taki-default-content .entry-content { overflow-wrap: anywhere; }
.taki-post-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px; }
.taki-post-list article { border-bottom: 1px solid var(--taki-border); padding-bottom: 35px; }
.taki-post-list h2 { font-size: 28px; }
.taki-post-list article a { text-decoration: none; }
.taki-post-list img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.taki-post-meta { font-size: 12px; color: var(--taki-muted); }
.taki-post-pagination { margin-top: 40px; }

/* Shared footer for interior pages */
.taki-footer { background: #292724; color: #F7F3EF; padding: 60px var(--taki-edge); }
.taki-footer-inner { max-width: var(--taki-max-width); margin: auto; }
.taki-footer-title { margin: 0 0 17px; font-family: var(--taki-serif); font-size: 27px; }
.taki-footer p, .taki-footer a { color: #E9E2DA; font-size: 12px; line-height: 1.9; }
.taki-footer-links { list-style: none; padding: 0; display: flex; gap: 18px; flex-wrap: wrap; }
.taki-footer-links a { text-decoration: none; }
.taki-location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; margin-top: 32px; }
.taki-location-grid h3 { font-size: 22px; color: #F7F3EF; margin-bottom: 6px; }
.taki-copyright { margin-top: 32px; padding-top: 20px; border-top: 1px solid #65615C; }

/* Homepage custom footer / finishing treatment */
.taki-home-footer-info { background: #292724; padding: 55px var(--taki-edge); color: #F7F3EF; }
.taki-home-footer-info-inner { max-width: var(--taki-max-width); margin: auto; }
.taki-home-footer-info p, .taki-home-footer-info a { color: #E9E2DA; font-size: 12px; }
.taki-closing { min-height: 245px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; background: var(--taki-background); color: #3A3A3A; }
.taki-closing-rule { width: min(220px, 65vw); height: 1px; background: #8C8C8C; }
.taki-closing-logo { font: 400 50px Georgia, serif; letter-spacing: .12em; line-height: 1; text-align: center; }
.taki-closing-logo small { display: block; font: 400 11px Arial, sans-serif; letter-spacing: .45em; margin-top: 7px; }

@media (max-width: 1024px) { .taki-desktop-nav { display: none; } .taki-header:not(.taki-header-home) .taki-menu-toggle { display: inline-flex; } }
@media (max-width: 767px) {
  .taki-header { padding: 10px 20px; min-height: 70px; }
  .taki-brand { font-size: 20px; }
  .taki-brand small { font-size: 9px; }
  .taki-header:not(.taki-header-home) .taki-reserve-link { display: none; }
  .taki-header-home { right: 13px; top: min(350px, 48vh); }
  .taki-header-home .taki-reserve-link { display: inline-flex; }
  .taki-post-list, .taki-location-grid { grid-template-columns: 1fr; }
  .taki-footer { padding: 50px 25px; }
  .taki-home-footer-info { padding: 50px 25px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
