/*
Theme Name: KamotoPH
Theme URI: https://kamotoph.com/
Author: KamotoPH
Description: KamotoPH company website with product pages. Includes RideRadar (overview, help, privacy policy, terms, data deletion), created automatically on activation.
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: kamotoph
*/
/* RideRadar website — asphalt black, road-line yellow, role colours from the app */
:root {
  --asphalt: #000;
  --road: #121212;
  --line: #ffc400;
  --chalk: #f2f2ec;
  --dust: #9b9b93;
  --spear: #e53935;
  --sweep: #1e88e5;
  --support: #fb8c00;
  --member: #43a047;
  --display: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
  --body: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 80px; }
body { margin: 0; background: var(--asphalt); color: var(--chalk); font: 17px/1.6 var(--body); }
a { color: var(--line); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--line); outline-offset: 3px; }
img { max-width: 100%; display: block; }

/* top bar */
.bar { position: sticky; top: 0; z-index: 5; background: rgba(0, 0, 0, .88); backdrop-filter: blur(8px);
  border-bottom: 1px solid #222; }
.bar .in { max-width: 1120px; margin: 0 auto; padding: 12px 20px; display: flex; align-items: center; gap: 20px; }
.bar img { height: 34px; width: auto; }
.bar nav { margin-left: auto; display: flex; gap: 22px; }
.bar nav a { color: var(--chalk); text-decoration: none; font-weight: 600; }
.bar nav a:hover { color: var(--line); }

/* hero: the radar is the memorable thing */
.hero { max-width: 1120px; margin: 0 auto; padding: 72px 20px 40px; display: grid;
  grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: center; }
.hero h1 { font: italic 800 clamp(48px, 7vw, 92px)/.92 var(--display); margin: 0 0 22px; letter-spacing: -.01em; }
.hero p { font-size: 20px; color: #d6d6cf; max-width: 32em; margin: 0 0 28px; }
.stores { display: flex; gap: 12px; flex-wrap: wrap; }
.store { display: inline-flex; flex-direction: column; padding: 10px 18px; border: 2px solid var(--line);
  border-radius: 12px; color: var(--chalk); text-decoration: none; min-width: 170px; }
.store small { color: var(--dust); font-size: 13px; }
.store b { font: 700 20px/1.2 var(--display); letter-spacing: .02em; }

.radar { position: relative; aspect-ratio: 1; max-width: 520px; width: 100%; justify-self: center; }
.radar svg { width: 100%; height: 100%; }
.sweep { transform-origin: 250px 250px; animation: sweep 6s linear infinite; }
@keyframes sweep { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sweep { animation: none; opacity: 0; } }

/* sections */
.wrap { max-width: 1120px; margin: 0 auto; padding: 64px 20px; }
.wrap h2 { font: italic 800 clamp(34px, 4.6vw, 54px)/1 var(--display); margin: 0 0 14px; }
.lead { color: #cfcfc8; max-width: 40em; margin: 0 0 34px; font-size: 19px; }

/* how a ride works: a real sequence, laid out on a road line */
.road { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  border-top: 4px dashed var(--line); }
.road li { padding: 22px 26px 0 0; }
.road b { display: block; font: 800 22px/1.2 var(--display); margin-bottom: 6px; }
.road .n { font: 800 44px/1 var(--display); color: var(--line); display: block; margin: -2px 0 10px; }

/* roles: the convoy, left = front of the ride */
.convoy { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 6px 0 34px; }
.dot { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
  font: 800 18px var(--display); color: #fff; border: 3px solid #fff; flex: none; }
.gap { flex: 1; min-width: 24px; height: 0; border-top: 3px dashed #444; }
.roles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.roles h3 { font: 800 24px/1.1 var(--display); margin: 0 0 6px; display: flex; align-items: center; gap: 10px; }
.roles h3 i { width: 14px; height: 14px; border-radius: 50%; display: inline-block; }
.roles p { margin: 0; color: #cfcfc8; }

/* safety: SOS gets the red */
.safety { display: grid; grid-template-columns: 300px 1fr; gap: 48px; align-items: center; }
.sos { width: 240px; height: 240px; border-radius: 50%; background: #d32f2f; border: 8px solid #fff;
  display: grid; place-items: center; font: italic 800 64px var(--display); color: #fff; margin: 0 auto;
  box-shadow: 0 0 0 18px rgba(211, 47, 47, .18); }
.facts { list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; }
.facts b { color: var(--chalk); }
.facts li { color: #cfcfc8; padding-left: 18px; border-left: 3px solid var(--line); }

.works { display: flex; gap: 14px; flex-wrap: wrap; }
.works span { border: 1px solid #333; border-radius: 30px; padding: 8px 18px; font-weight: 600; }

/* legal and help pages */
.doc { max-width: 760px; margin: 0 auto; padding: 56px 20px 80px; }
.doc h1 { font: italic 800 clamp(40px, 6vw, 64px)/1 var(--display); margin: 0 0 8px; }
.doc h2 { font: 800 26px/1.2 var(--display); margin: 40px 0 10px; color: var(--line); }
.doc .updated { color: var(--dust); margin: 0 0 28px; }
.doc table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 15px; }
.doc th, .doc td { text-align: left; padding: 10px; border-bottom: 1px solid #2a2a2a; vertical-align: top; }
.doc th { color: var(--dust); font-weight: 600; }
.doc .box { border: 2px solid var(--line); border-radius: 14px; padding: 18px 20px; margin: 20px 0; }
.doc details { border-bottom: 1px solid #2a2a2a; padding: 14px 0; }
.doc summary { font-weight: 700; cursor: pointer; }

footer { border-top: 1px solid #222; color: var(--dust); }
footer .in { max-width: 1120px; margin: 0 auto; padding: 28px 20px 40px; display: flex; gap: 22px; flex-wrap: wrap; align-items: center; }
footer a { color: var(--dust); text-decoration: none; }
footer a:hover { color: var(--line); }
footer .by { margin-left: auto; }

@media (max-width: 860px) {
  .hero { grid-template-columns: 1fr; padding-top: 40px; }
  .radar { max-width: 380px; }
  .road { grid-template-columns: 1fr; border-top: 0; border-left: 4px dashed var(--line); }
  .road li { padding: 0 0 26px 22px; }
  .roles { grid-template-columns: 1fr 1fr; }
  .safety { grid-template-columns: 1fr; }
  .bar nav { display: none; }
}
@media (max-width: 520px) { .roles { grid-template-columns: 1fr; } .sos { width: 190px; height: 190px; font-size: 52px; } }

/* WordPress additions */
.admin-bar .bar { top: 32px; }
@media (max-width: 782px) { .admin-bar .bar { top: 46px; } }
.doc img { height: auto; }
.screen-reader-text { position: absolute; left: -9999px; }
.bar .menu, footer .menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; flex-wrap: wrap; }

/* KamotoPH: the wordmark is the memorable thing on the company page */
.wordmark { font: italic 800 26px/1 var(--display); color: var(--chalk); text-decoration: none; letter-spacing: .01em;
  border-bottom: 3px dashed var(--line); padding-bottom: 2px; }
.kph-hero { max-width: 1120px; margin: 0 auto; padding: 96px 20px 56px; }
.kph-hero h1 { font: italic 800 clamp(64px, 13vw, 168px)/.86 var(--display); margin: 0; letter-spacing: -.02em; }
.kph-hero .roadline { height: 0; border-top: 6px dashed var(--line); margin: 26px 0 28px; max-width: 720px; }
.kph-hero p { font-size: 22px; color: #d6d6cf; max-width: 30em; margin: 0; }
.products { display: grid; gap: 0; border-top: 1px solid #262626; }
.product { display: grid; grid-template-columns: 120px 1fr auto; gap: 28px; align-items: center; padding: 28px 0;
  border-bottom: 1px solid #262626; color: inherit; text-decoration: none; }
.product img { width: 120px; height: 120px; border-radius: 26px; }
.product h3 { font: italic 800 34px/1 var(--display); margin: 0 0 8px; }
.product p { margin: 0; color: #cfcfc8; max-width: 38em; }
.product .go { font-weight: 700; color: var(--line); white-space: nowrap; }
.product:hover h3 { color: var(--line); }
.product.soon { opacity: .6; } .product.soon .ph { width: 120px; height: 120px; border-radius: 26px; border: 2px dashed #444; }
.subnav { border-bottom: 1px solid #222; background: #0a0a0a; }
.subnav .in { max-width: 1120px; margin: 0 auto; padding: 10px 20px; display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.subnav img { height: 28px; width: auto; }
.subnav a { color: var(--chalk); text-decoration: none; font-weight: 600; font-size: 15px; }
.subnav a:hover, .subnav a.on { color: var(--line); }
footer .cols { max-width: 1120px; margin: 0 auto; padding: 36px 20px 10px; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 28px; }
footer h4 { color: var(--chalk); margin: 0 0 10px; font: 800 18px var(--display); }
footer .cols a { display: block; margin: 4px 0; }
@media (max-width: 760px) { .product { grid-template-columns: 72px 1fr; } .product img, .product.soon .ph { width: 72px; height: 72px; border-radius: 16px; }
  .product .go { grid-column: 2; } footer .cols { grid-template-columns: 1fr; } }
.kph-hero .tagline { font: italic 700 clamp(28px, 4.4vw, 52px)/1.05 var(--display); color: var(--line); margin: 18px 0 0; max-width: none; }

/* RideRadar beta form */
.store.beta-btn { background: var(--line); color: #000; }
.store.beta-btn small { color: #3a3000; }
.beta { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: start; }
.muted-note { color: var(--dust); margin: 0; }
.beta-form { display: grid; gap: 16px; background: var(--road); border: 1px solid #2a2a2a; border-radius: 18px; padding: 24px; }
.beta-form label { display: grid; gap: 6px; font-weight: 600; }
.beta-form label span { color: var(--dust); font-weight: 400; }
.beta-form input[type=text], .beta-form input[type=email], .beta-form textarea {
  background: #1c1c1c; color: var(--chalk); border: 1px solid #3a3a3a; border-radius: 10px; padding: 12px; font: 16px var(--body); }
.beta-form input:focus, .beta-form textarea:focus { outline: 2px solid var(--line); border-color: transparent; }
.beta-form fieldset { border: 0; padding: 0; margin: 0; display: flex; gap: 12px; flex-wrap: wrap; }
.beta-form legend { font-weight: 600; margin-bottom: 8px; width: 100%; }
.beta-form .pick { display: flex; align-items: center; gap: 10px; border: 2px solid #3a3a3a; border-radius: 12px; padding: 12px 18px; cursor: pointer; }
.beta-form .pick:has(input:checked) { border-color: var(--line); color: var(--line); }
.beta-form .agree { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; color: #cfcfc8; }
.beta-form .agree input { margin-top: 5px; }
.beta-form button { background: var(--line); color: #000; border: 0; border-radius: 26px; padding: 14px 22px; font: 700 17px var(--body); cursor: pointer; justify-self: start; }
.beta-form .hp { position: absolute; left: -9999px; }
.beta-error { color: #ff8a80; margin: 0; }
.beta-done { border: 2px solid var(--member); border-radius: 18px; padding: 24px; font-size: 18px; }
@media (max-width: 860px) { .beta { grid-template-columns: 1fr; } }
.email-note { margin: -6px 0 0; padding: 12px 14px; border-left: 3px solid var(--line); background: #1a1700; color: #e8e2c4; border-radius: 0 10px 10px 0; font-size: 15px; }
.email-note .for-ios, .email-note .for-android { display: none; }
.beta-form:has(input[value="iPhone (iOS)"]:checked) .email-note .for-ios { display: inline; }
.beta-form:has(input[value="Android"]:checked) .email-note .for-android { display: inline; }
.beta-form:has(input[name="rr_platform"]:checked) .email-note .for-none { display: none; }

/* About: ride photos */
.ride-photos { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 12px; margin-top: 8px; }
.ride-photos figure { margin: 0; overflow: hidden; border-radius: 14px; background: var(--road); }
.ride-photos img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3 / 2; }
.photo-credit { color: var(--dust); font-size: 14px; margin: 10px 0 0; }
@media (max-width: 760px) { .ride-photos { grid-template-columns: 1fr; } }

/* social links */
.socials { display: flex; gap: 12px; flex-wrap: wrap; }
.socials a { display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; border: 2px solid #333; border-radius: 30px;
  color: var(--chalk); text-decoration: none; font-weight: 700; }
.socials a:hover { border-color: var(--line); color: var(--line); }
.socials.small { margin-top: 10px; gap: 8px; }
.socials.small a { padding: 0; border: 0; display: inline-flex; margin: 0; }
.socials.small span { position: absolute; left: -9999px; }
footer .cols .socials.small a { display: inline-flex; }
