/*
Theme Name: Captain Pizza Fox Creek
Theme URI: https://captainpizzafoxcreek.ca
Description: Child theme of Twenty Twenty-Five for captainpizzafoxcreek.ca — the marketing site in front of the SimplyDine ordering app at /order. Core blocks only; an SEO plugin may own titles, meta and sitemaps.
Author: SimplyDine
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: captainpizza
*/

/* Everything a viewer can restyle lives in theme.json; this file only carries
   the component classes the page content references. Prefix: cp- */

.cp-eyebrow {
  font-family: var(--wp--preset--font-family--fredoka);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: var(--wp--preset--font-size--small);
}

/* the red-and-white gingham of the pizza-box liner, as a thin rule: used
   under the header and above the footer. Pure CSS, no image. */
.cp-gingham {
  height: 10px;
  background-color: #fff;
  background-image:
    linear-gradient(45deg, var(--wp--preset--color--brand) 25%, transparent 25%, transparent 75%, var(--wp--preset--color--brand) 75%),
    linear-gradient(45deg, var(--wp--preset--color--brand) 25%, transparent 25%, transparent 75%, var(--wp--preset--color--brand) 75%);
  background-size: 20px 20px;
  background-position: 0 0, 10px 10px;
  opacity: 0.9;
}

/* ---- header ---------------------------------------------------------- */

/* the address / phone / hours strip above the header: one line, never
   wraps, hidden on phones (the Order button and the contact card are the
   tap targets there) */
.cp-topbar p { margin: 0; white-space: nowrap; }
.cp-topbar a { color: #fff; }
.cp-topbar strong { color: var(--wp--preset--color--saffron); font-weight: 800; }
@media (max-width: 1099px) {
  .cp-topbar { display: none; }
}

/* brand: the wide lockup (assets/img/logo.png, hat mark + wordmark). The
   block pins an inline width, so width:auto needs the !important to keep
   the aspect ratio. */
.cp-brand img { display: block; height: 56px; width: auto !important; max-width: none; }
@media (max-width: 781px) {
  .cp-brand img { height: 40px; }
  .cp-order-cta .wp-block-button__link { padding: 11px 18px; }
  header > .wp-block-group.alignfull { padding-left: 16px !important; padding-right: 16px !important; }
}
@media (max-width: 480px) {
  .cp-brand img { height: 32px; }
  .cp-order-cta .wp-block-button__link { padding: 10px 14px; font-size: 0.9rem; }
  header .wp-block-group.alignfull > .wp-block-group { gap: 10px; }
}
@media (max-width: 400px) {
  .cp-brand img { height: 28px; }
  header .wp-block-group.alignfull { padding-left: 12px !important; padding-right: 12px !important; }
}
@media (max-width: 340px) {
  .cp-brand img { height: 24px; }
  .cp-order-cta .wp-block-button__link { padding: 9px 10px; }
}

.cp-order-cta .wp-block-button__link { white-space: nowrap; }

/* nav links: Fredoka, spaced, never wrapping mid-label */
.cp-nav .wp-block-navigation-item__content {
  white-space: nowrap;
  font-family: var(--wp--preset--font-family--fredoka);
  font-weight: 600;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
}
.cp-nav .current-menu-item > .wp-block-navigation-item__content {
  color: var(--wp--preset--color--brand);
}

/* ---- hero ------------------------------------------------------------ */

.cp-hero .wp-block-cover__inner-container { padding-top: var(--wp--preset--spacing--70); padding-bottom: var(--wp--preset--spacing--70); }
.cp-hero h1 { text-shadow: 0 2px 28px rgba(0, 0, 0, 0.45); }
.cp-hero-hours { opacity: 0.92; }

/* the "2 for 1" pill in the hero */
.cp-pill {
  display: inline-block;
  background: var(--wp--preset--color--saffron);
  color: var(--wp--preset--color--ink);
  font-family: var(--wp--preset--font-family--fredoka);
  font-weight: 600;
  border-radius: 999px;
  padding: 6px 16px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: var(--wp--preset--font-size--small);
}

/* ---- cards ----------------------------------------------------------- */

/* category / feature cards — a white tile with the photo bleeding to the edges */
.cp-card {
  background: var(--wp--preset--color--white);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(31, 27, 24, 0.10);
  height: 100%;
  transition: transform .15s ease, box-shadow .15s ease;
}
.cp-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(31, 27, 24, 0.16);
}
.cp-card .wp-block-image img {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
}
.cp-card > :not(.wp-block-image) {
  margin-left: var(--wp--preset--spacing--40);
  margin-right: var(--wp--preset--spacing--40);
}
.cp-card > .wp-block-image + * {
  margin-top: var(--wp--preset--spacing--40);
}
.cp-card > :last-child {
  margin-bottom: var(--wp--preset--spacing--40);
}
.cp-card-link {
  font-family: var(--wp--preset--font-family--fredoka);
  font-weight: 600;
  letter-spacing: 0.02em;
}
@media (max-width: 781px) {
  .cp-card .wp-block-image img { height: 180px; }
}

/* photo-less menu card: a cream tile with a green top rule, the heading
   carries it (no stock photo stands in for a dish we have no picture of) */
.cp-card--text {
  background: var(--wp--preset--color--cream);
  border-top: 6px solid var(--wp--preset--color--green);
  box-shadow: none;
  border-radius: 18px;
}
.cp-card--text > :first-child { margin-top: var(--wp--preset--spacing--40); }

/* deal cards: the white promo artwork on a white tile, just a hairline */
.cp-deal {
  background: var(--wp--preset--color--white);
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--wp--preset--color--line);
  height: 100%;
  transition: transform .15s ease;
}
.cp-deal:hover { transform: translateY(-3px); }
.cp-deal .wp-block-image { margin: 0; }
.cp-deal .wp-block-image img { display: block; width: 100%; height: auto; }
.cp-deal > :not(.wp-block-image) { margin-left: var(--wp--preset--spacing--30); margin-right: var(--wp--preset--spacing--30); }
.cp-deal > :last-child { margin-bottom: var(--wp--preset--spacing--30); }

/* "why Captain" tiles on the green band: translucent, cheese rule on top */
.cp-feature {
  background: rgba(255, 255, 255, 0.08);
  border-top: 3px solid var(--wp--preset--color--saffron);
  border-radius: 14px;
  height: 100%;
}
.cp-feature h3 { color: var(--wp--preset--color--white); }

/* the store card on the home page + contact page */
.cp-store {
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 18px;
  height: 100%;
  overflow: hidden;
}
.cp-store > .wp-block-image { margin: 0; }
.cp-store > .wp-block-image img {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
}
.cp-store > :not(.wp-block-image) {
  margin-left: var(--wp--preset--spacing--40);
  margin-right: var(--wp--preset--spacing--40);
}
.cp-store > .wp-block-image + * { margin-top: var(--wp--preset--spacing--40); }
.cp-store > :last-child { margin-bottom: var(--wp--preset--spacing--40); }
.cp-store .cp-phone a { color: var(--wp--preset--color--ink); }

/* hours grid */
.cp-hours {
  border-top: 2px solid var(--wp--preset--color--saffron);
  padding-top: var(--wp--preset--spacing--30);
}
.cp-hours table { table-layout: auto !important; width: 100%; }
.cp-hours td { padding: 4px 0; border: 0; }
.cp-hours td:first-child { font-weight: 800; padding-right: 16px; }
.cp-hours td:last-child { white-space: nowrap; text-align: right; }

/* map embed */
.cp-map iframe { display: block; width: 100%; height: 100%; min-height: 360px; border: 0; border-radius: 18px; }

/* gallery: uniform 4:3 crops in a grid */
.cp-gallery .wp-block-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 14px;
}
.cp-gallery .wp-block-image { margin: 0; }

/* customer quotes */
.cp-quote {
  background: var(--wp--preset--color--white);
  border-radius: 18px;
  border: 1px solid var(--wp--preset--color--line);
  height: 100%;
}
.cp-quote .wp-block-quote { margin: 0; border: 0; padding: 0; }
.cp-quote .wp-block-quote p { font-size: var(--wp--preset--font-size--medium); line-height: 1.55; }
.cp-quote .wp-block-quote cite {
  display: block;
  margin-top: var(--wp--preset--spacing--30);
  font-style: normal;
  font-weight: 700;
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--small);
}
.cp-stars { color: var(--wp--preset--color--saffron); letter-spacing: 0.1em; font-size: 1.1rem; }

/* the storefront's own /order pages are not WordPress — nothing here */
