
:root{
  --bg:#f7f4ef;
  --paper:#ffffff;
  --ink:#173b4d;
  --body-ink:#25211d;
  --muted:#596b74;
  --line:#e5ddd3;
  --accent:#d9670b;
  --accent-dark:#a94d06;
  --accent-soft:#fff1df;
  --shadow:0 18px 50px rgba(57,44,31,.10);
  --radius:22px;
  --physical:#d98900;
  --emotional:#378c49;
  --intellectual:#2f4f8f;
  --intuition:#8a3c91;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:linear-gradient(180deg,#fbfaf8 0,#f6f1eb 100%);
  color:var(--body-ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.55;
}
a{color:var(--accent-dark)}
a:hover{text-decoration-thickness:2px}
.wrap{width:min(1120px,calc(100% - 36px));margin:0 auto}

.site-header{
  display:flex;align-items:center;justify-content:space-between;
  gap:18px;padding:22px 0 10px;
}
.brand{
  display:inline-flex;align-items:center;gap:12px;
  color:var(--ink);text-decoration:none;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:600;letter-spacing:-.025em;font-size:1.55rem;
}
.brand.plain{cursor:default}
.brand-logo{
  width:44px;height:44px;display:block;flex:0 0 44px;
}
.language-link{
  color:var(--ink);
  font-size:.86rem;
  font-weight:600;
  text-underline-offset:3px;
  white-space:nowrap;
}

/* Approved simplified landing-page direction */
.landing-body{
  min-height:100vh;
  background:
    linear-gradient(180deg,rgba(250,251,252,.98) 0%,rgba(255,249,244,.98) 55%,rgba(255,246,236,.70) 72%,rgba(255,255,255,0) 86%),
    url("/assets/coast-sunset.jpg") bottom center / 100% auto no-repeat,
    #f8fafb;
}
.landing-shell{min-height:100vh}
.landing-main{
  text-align:center;
  padding:72px 16px 360px;
}
.landing-main h1{
  max-width:980px;margin:0 auto;
  color:var(--ink);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.5rem,6vw,4.7rem);
  line-height:1.04;
  letter-spacing:-.035em;
  font-weight:600;
}
.landing-divider{
  display:flex;align-items:center;justify-content:center;gap:24px;
  margin:30px auto 34px;color:var(--accent);
}
.landing-divider::before,.landing-divider::after{
  content:"";width:126px;height:2px;background:#c5a074;
}
.landing-divider svg{width:52px;height:30px;overflow:visible}
.landing-copy{
  max-width:900px;margin:0 auto 36px;color:var(--ink);
  font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.65;
}
.landing-copy p{margin:0 0 12px}
.button{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  background:var(--accent);color:#fff;text-decoration:none;
  border-radius:999px;padding:16px 30px;font-size:1.06rem;font-weight:750;border:0;
  box-shadow:0 10px 25px rgba(217,103,11,.20);cursor:pointer;
}
.button:hover{background:var(--accent-dark)}

@media(max-width:720px){
  .site-header{padding-top:14px}
  .brand{font-size:1.25rem;gap:9px}
  .brand-logo{width:36px;height:36px;flex-basis:36px}
  .language-link{font-size:.78rem}
  .landing-main{padding:58px 8px 260px}
  .landing-divider{gap:14px;margin:24px auto 28px}
  .landing-divider::before,.landing-divider::after{width:62px}
  .landing-copy{font-size:1rem}
  .button{font-size:.95rem;padding:14px 20px}
  .landing-body{background-size:auto 38%,auto;background-position:bottom center}
}

/* Calculator */
.calc-page{padding-bottom:80px}
.calc-shell{
  background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:28px;
  box-shadow:var(--shadow);padding:clamp(24px,4vw,48px);margin:24px 0 30px;
}
.calc-title{
  display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start;margin-bottom:22px
}
.calc-title h1{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.05;letter-spacing:-.03em;
  margin:0 0 12px
}
.lead{font-size:1.06rem;color:var(--muted);max-width:850px;margin:0}
.form-card{
  margin:28px 0 26px;background:#fbf8f3;border:1px solid var(--line);
  border-radius:18px;padding:20px
}
.date-form{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end}
.field label{display:block;font-size:.86rem;font-weight:750;margin:0 0 7px}
.date-control{position:relative}
.date-input{
  width:100%;height:46px;border:1px solid #cfc5ba;border-radius:11px;
  background:#fff;color:var(--ink);font:inherit;padding:0 44px 0 13px
}
.calendar-btn{
  position:absolute;right:7px;top:5px;width:36px;height:36px;border:0;background:transparent;
  display:grid;place-items:center;border-radius:8px;cursor:pointer;color:#5d554e
}
.calendar-btn:hover{background:#f5eee5}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.actions button{
  height:46px;border-radius:11px;padding:0 15px;border:1px solid #cfc5ba;
  background:#fff;color:var(--ink);font:inherit;font-weight:650;cursor:pointer
}
.actions button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.actions button:hover{filter:brightness(.97)}

.calendar-popover{
  position:absolute;z-index:50;width:330px;background:#fff;border:1px solid var(--line);
  border-radius:16px;box-shadow:0 18px 45px rgba(45,35,25,.18);padding:12px;
  display:none
}
.calendar-popover.open{display:block}
.cal-head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:7px;margin-bottom:10px}
.cal-head button{border:0;background:#f7f2ec;border-radius:9px;height:36px;cursor:pointer;font-size:1.1rem}
.cal-controls{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:6px}
.cal-select{
  width:100%;height:36px;border:1px solid var(--line);border-radius:9px;
  background:#fff;color:var(--body-ink);font:inherit;font-size:.86rem;padding:0 7px;
}
.cal-month{text-transform:none}
.cal-year{font-variant-numeric:tabular-nums}
.cal-week,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-week span{text-align:center;color:var(--muted);font-size:.72rem;font-weight:700;padding:5px 0}
.cal-day{border:0;background:transparent;border-radius:8px;height:34px;cursor:pointer;font:inherit;font-size:.86rem}
.cal-day:hover{background:var(--accent-soft)}
.cal-day.other{color:#b5aaa0}
.cal-day.today{outline:1px solid #e7b67e}
.cal-day.selected{background:var(--accent);color:#fff}

.results-section{display:none}
.results-section.visible{display:block}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px}
.results-table{width:100%;border-collapse:collapse;min-width:700px}
.results-table th,.results-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left}
.results-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#fbf8f4}
.results-table tr:last-child td{border-bottom:0}
.cycle-name{font-weight:800}
.physical{color:var(--physical)} .emotional{color:var(--emotional)}
.intellectual{color:var(--intellectual)} .intuition{color:var(--intuition)}
.days-count{margin:18px 0 12px;color:var(--muted)}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0 10px;font-size:.88rem}
.legend label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.swatch{width:18px;height:4px;border-radius:10px;display:inline-block}
.chart-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:#fff}
.chart-host{min-width:900px;padding:12px 10px 0}
.chart-host svg{display:block;width:100%;height:auto}

.info-section{display:grid;grid-template-columns:1.05fr .95fr;gap:22px;margin-top:28px}
.info-panel{
  background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px
}
.info-panel h2{font-family:Georgia,"Times New Roman",serif;margin:0 0 10px;font-size:1.7rem}
.info-panel p{color:var(--muted);margin:0 0 12px}
.cycle-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.cycle-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fcfaf7}
.cycle-card strong{display:block;margin-bottom:4px}
.cycle-card p{font-size:.9rem;margin:0}
.disclaimer{
  margin-top:16px;padding:14px 16px;background:#f7f4ef;border-radius:12px;
  color:#756d65;font-size:.84rem
}
.footer{padding:24px 0 45px;color:#82796f;font-size:.85rem;text-align:center}

@media(max-width:820px){
  .date-form{grid-template-columns:1fr}
  .actions{margin-top:2px}
  .calc-title{grid-template-columns:1fr}
  .info-section{grid-template-columns:1fr}
}
@media(max-width:560px){
  .wrap{width:min(100% - 22px,1120px)}
  .site-header{padding-top:12px}
  .hero{padding-top:26px}
  .hero-card{padding:32px 22px;border-radius:24px}
  .calc-shell{padding:20px 16px;border-radius:22px}
  .cycle-grid{grid-template-columns:1fr}
}
