/*
Theme Name: Photography Studio (Bricks Child)
Template: bricks
Description: Bricks-compatible WordPress theme for a photography studio with Google Calendar handoff and Stripe checkout.
Author: Ian
Version: 1.0.1
Requires at least: 6.0
Tested up to: 6.6
Text Domain: ps
*/

/* Base variables pulled from uploaded palette */
:root {
  --color-white: #ffffff;
  --color-black: #000000;
  --color-dark-teal: #0f3b3a;
  --color-teal: #1f7a78;
  --color-light-teal: #9de2d1;
  --color-beige: #e9dfcf;
  --color-yellow-orange: #f3a628;
  --color-orange: #f07f2e;
  --color-burnt-orange: #c35324;
  --color-red-orange: #d94a2f;
  --color-red: #c3302c;
  --color-dark-red: #7a1d1a;

  --bg-page: var(--color-white);
  --bg-subtle: var(--color-beige);
  --text-primary: #101214;
  --text-secondary: #4b5563;
  --accent-1: var(--color-teal);
  --accent-2: var(--color-dark-teal);
  --accent-warm: var(--color-burnt-orange);
  --accent-danger: var(--color-red);
  --border-soft: #e5e7eb;
  --focus: var(--color-yellow-orange);
}

html { box-sizing: border-box; }
*, *::before, *::after { box-sizing: inherit; }

body {
  margin: 0;
  background: var(--bg-page);
  color: var(--text-primary);
  font-family: "DM Sans", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial;
}

h1,h2,h3,h4,h5,h6 { font-family: "Inter", system-ui; }

.container { max-width: 1024px; margin: 0 auto; padding: 0 1rem; }

/* Header */
.site-header { position: sticky; top:0; z-index:999; background:var(--bg-page); border-bottom:1px solid var(--border-soft);}
.header-inner { display:flex; align-items:center; justify-content:space-between; min-height:64px;}
.logo { font-weight:700; color:var(--accent-2); text-decoration:none; }

/* Hamburger */
.hamburger { background:transparent; border:none; cursor:pointer; padding:.5rem;}
.hamburger-bars { width:24px; height:2px; background:var(--text-primary); position:relative; display:block;}
.hamburger-bars::before,.hamburger-bars::after { content:""; position:absolute; left:0; right:0; height:2px; background:var(--text-primary);}
.hamburger-bars::before { top:-6px;} .hamburger-bars::after { top:6px;}

/* Overlay menu */
.menu-overlay { position:fixed; inset:0; background:rgba(255,255,255,0.98); display:none; padding:2rem;}
.menu-overlay.is-open { display:block;}
.overlay-menu-list { list-style:none; margin:0; padding:0; text-align:center;}
.overlay-menu-list li { margin:1rem 0;}
.overlay-menu-list a { font-size:1.25rem; color:var(--accent-2); text-decoration:none; }

/* Hero */
.hero { position:relative; min-height:60vh; display:grid; place-items:center; text-align:center;}
.hero-bg { position:absolute; inset:0; background:url('/path/to/hero.jpg') center/cover no-repeat;}
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(255,255,255,0.1),rgba(255,255,255,0.9));}
.hero-content { position:relative; z-index:1;}
.hero h1 { color:var(--accent-2); }

/* Buttons */
.btn { display:inline-block; padding:.75rem 1rem; border-radius:6px; text-decoration:none; font-weight:600;}
.btn-primary { background:var(--accent-2); color:#fff;}
.btn-warm { background:var(--accent-warm); color:#fff;}
.btn-outline { border:2px solid var(--accent-2); color:var(--accent-2); background:transparent;}
.btn:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }

/* Portfolio masonry */
.portfolio { background:var(--bg-subtle); padding:3rem 0;}
.masonry-grid { column-count:3; column-gap:1rem;}
.masonry-grid .ps-card { break-inside:avoid; margin-bottom:1rem; border-radius:8px; overflow:hidden; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,0.06);}
@media(max-width:768px){.masonry-grid{column-count:2;}}
@media(max-width:480px){.masonry-grid{column-count:1;}}

/* Booking grid */
.ps-grid-3 { display:grid; gap:1.5rem; grid-template-columns:repeat(3,1fr);}
@media(max-width:768px){.ps-grid-3{grid-template-columns:1fr;}}
.ps-package { border:1px solid var(--border-soft); border-radius:10px; padding:1.25rem; background:#fff;}
.ps-features { list-style:none; padding:0; margin:1rem 0;}
.ps-features li { margin:.5rem 0; color:var(--text-secondary);}
.ps-package h2 { color:var(--accent-2); }

/* Gallery */
.ps-gallery { padding:2rem 0; background:var(--bg-subtle); }

/* Legal content */
.legal-content {
  background: var(--bg-subtle);
  padding: 2rem;
  border-radius: 8px;
  margin-bottom: 2rem;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.legal-content h2 {
  font-family: "Inter", system-ui;
  color: var(--accent-2);
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
  font-size: 1.25rem;
  border-left: 4px solid var(--accent-warm);
  padding-left: 0.5rem;
}
.legal-content p {
  font-family: "DM Sans", system-ui;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 1rem;
}
@media (max-width: 768px) {
  .legal-content { padding: 1.5rem; }
  .legal-content h2 { font-size: 1.125rem; }
}

/* Footer */
.site-footer { padding:2rem 0; border-top:1px solid var(--border-soft); background:#fff;}
.footer-social { display:flex; gap:1rem; justify-content:center; margin-bottom:1rem;}
.footer-legal { text-align:center; color:var(--text-secondary); font-size:.875rem;}
