*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --black: #0a0a0a;
  --white: #f5f4f0;
  --gray: #999999;
  --light: #e8e6e0;
  --serif: 'EB Garamond', Georgia, serif;
  --mono: 'Space Mono', monospace;
}

body {
  background: var(--white);
  color: var(--black);
  font-family: var(--serif);
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }

/* HOME */
.sf-home {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
}

.sf-home-label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 64px;
}

.sf-home-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  list-style: none;
}

.sf-home-nav li a {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--black);
  display: block;
  padding: 10px 0;
  transition: color 0.2s;
}

.sf-home-nav li a:hover { color: var(--gray); }

.sf-home-footer {
  position: absolute;
  bottom: 32px;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--light);
}

/* PAGE HEADER */
.sf-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 40px;
  border-bottom: 1px solid var(--light);
}

.sf-page-header-logo { font-family: var(--mono); font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gray); }
.sf-page-header-logo a { color: var(--gray); }
.sf-page-header-logo a:hover { color: var(--black); }
.sf-page-header-title { font-family: var(--mono); font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; }
.sf-page-header-back { font-family: var(--mono); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gray); }
.sf-page-header-back:hover { color: var(--black); }

/* SHOP */
.sf-shop-label { padding: 40px 40px 0; font-family: var(--mono); font-size: 9px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gray); }

.woocommerce ul.products { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 1px !important; background: var(--light) !important; padding: 20px 40px 60px !important; margin: 0 !important; }
.woocommerce ul.products li.product { background: var(--white) !important; padding: 40px !important; margin: 0 !important; float: none !important; width: auto !important; transition: background 0.2s; }
.woocommerce ul.products li.product:hover { background: #f0eeea !important; }
.woocommerce ul.products li.product a img { width: 100% !important; aspect-ratio: 3/4; object-fit: cover; margin-bottom: 20px !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--mono) !important; font-size: 10px !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; padding: 0 !important; margin-bottom: 6px !important; }
.woocommerce ul.products li.product .price { font-family: var(--mono) !important; font-size: 10px !important; letter-spacing: 0.15em !important; color: var(--black) !important; }
.woocommerce ul.products li.product .button { display: none !important; }

.woocommerce div.product { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding: 60px 40px; align-items: start; }
.woocommerce div.product .woocommerce-product-gallery { grid-column: 1; }
.woocommerce div.product .summary { grid-column: 2; padding-top: 10px; }
.woocommerce div.product .product_title { font-family: var(--mono) !important; font-size: 11px !important; letter-spacing: 0.25em !important; text-transform: uppercase !important; font-weight: 400 !important; margin-bottom: 16px !important; }
.woocommerce div.product .price { font-family: var(--mono) !important; font-size: 14px !important; letter-spacing: 0.2em !important; color: var(--black) !important; margin-bottom: 24px !important; }
.woocommerce div.product .woocommerce-product-details__short-description { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; line-height: 2; text-transform: uppercase; color: var(--gray); margin-bottom: 32px; }

.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce .single_add_to_cart_button { font-family: var(--mono) !important; font-size: 10px !important; letter-spacing: 0.25em !important; text-transform: uppercase !important; background: var(--black) !important; color: var(--white) !important; border-radius: 0 !important; padding: 14px 32px !important; border: none !important; }
.woocommerce #respond input#submit:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce .single_add_to_cart_button:hover { background: var(--gray) !important; }

/* GALLERY */
.sf-gallery-intro { padding: 60px 40px 40px; max-width: 500px; }
.sf-gallery-intro h1 { font-family: var(--serif); font-weight: 400; font-size: 36px; line-height: 1.2; margin-bottom: 16px; }
.sf-gallery-intro p { font-family: var(--mono); font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gray); line-height: 1.9; }

.sf-gallery-grid { padding: 0 40px 60px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.sf-gallery-item { aspect-ratio: 1; background: var(--light); display: flex; align-items: flex-end; padding: 14px; position: relative; overflow: hidden; }
.sf-gallery-item:nth-child(even) { background: #d9d6ce; }
.sf-gallery-caption { font-family: var(--mono); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(10,10,10,0.5); line-height: 1.6; }
.sf-gallery-caption strong { display: block; color: var(--black); font-weight: 700; }

/* PHOTO BOOTHS */
.sf-pb-hero { padding: 60px 40px 50px; border-bottom: 1px solid var(--light); }
.sf-pb-hero h1 { font-family: var(--serif); font-weight: 400; font-size: 48px; line-height: 1.1; margin-bottom: 16px; }
.sf-pb-hero p { font-family: var(--mono); font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gray); max-width: 400px; line-height: 1.9; }

.sf-packages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--light); margin: 40px 40px 0; }
.sf-package { background: var(--white); padding: 36px; }
.sf-package-name { font-family: var(--mono); font-size: 9px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gray); margin-bottom: 20px; }
.sf-package-price { font-family: var(--serif); font-size: 36px; font-weight: 400; margin-bottom: 6px; }
.sf-package-unit { font-family: var(--mono); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gray); margin-bottom: 30px; }
.sf-package ul { list-style: none; }
.sf-package ul li { font-family: var(--mono); font-size: 9px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gray); padding: 9px 0; border-bottom: 1px solid var(--light); display: flex; align-items: center; gap: 10px; }
.sf-package ul li::before { content: ''; width: 4px; height: 4px; background: var(--black); display: inline-block; flex-shrink: 0; }

.sf-pb-gallery { padding: 60px 40px; }
.sf-pb-gallery-label { font-family: var(--mono); font-size: 9px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gray); margin-bottom: 20px; }
.sf-pb-gallery-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.sf-pb-placeholder { aspect-ratio: 2/3; background: var(--light); display: flex; align-items: center; justify-content: center; }
.sf-pb-placeholder:nth-child(2) { background: #d9d6ce; }
.sf-pb-placeholder:nth-child(3) { background: #e0ddd6; }
.sf-pb-placeholder:nth-child(4) { background: #cccac3; }
.sf-pb-placeholder span { font-family: var(--mono); font-size: 8px; letter-spacing: 0.2em; color: rgba(10,10,10,0.3); text-transform: uppercase; }

/* ABOUT */
.sf-about { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding: 80px 40px; align-items: start; }
.sf-about-heading { font-family: var(--serif); font-weight: 400; font-size: 42px; line-height: 1.15; }
.sf-about-body p { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; line-height: 2; margin-bottom: 24px; }
.sf-about-body p.muted { color: var(--gray); }
.sf-about-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.sf-about-tag { font-family: var(--mono); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; border: 1px solid var(--light); padding: 6px 12px; color: var(--gray); }

/* CONTACT */
.sf-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding: 80px 40px; }
.sf-contact-heading { font-family: var(--serif); font-weight: 400; font-size: 36px; line-height: 1.2; margin-bottom: 24px; }
.sf-contact-sub { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gray); line-height: 2; margin-bottom: 40px; }
.sf-contact-links { display: flex; flex-direction: column; }
.sf-contact-link { font-family: var(--mono); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; padding: 16px 0; border-bottom: 1px solid var(--light); display: flex; justify-content: space-between; }
.sf-contact-link span { color: var(--gray); }

.sf-form .sf-form-row { margin-bottom: 24px; }
.sf-form label { display: block; font-family: var(--mono); font-size: 9px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--gray); margin-bottom: 8px; }
.sf-form input[type="text"], .sf-form input[type="email"], .sf-form textarea { width: 100%; background: none; border: none; border-bottom: 1px solid var(--light); padding: 8px 0; font-family: var(--serif); font-size: 16px; color: var(--black); outline: none; -webkit-appearance: none; }
.sf-form input:focus, .sf-form textarea:focus { border-bottom-color: var(--black); }
.sf-form textarea { height: 80px; resize: none; }
.sf-form button[type="submit"] { font-family: var(--mono); font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; background: var(--black); color: var(--white); border: none; padding: 14px 32px; cursor: pointer; margin-top: 32px; transition: background 0.2s; }
.sf-form button[type="submit"]:hover { background: var(--gray); }

/* RESPONSIVE */
@media (max-width: 768px) {
  .sf-page-header { padding: 20px; }
  .woocommerce ul.products { grid-template-columns: 1fr !important; padding: 0 20px 40px !important; }
  .woocommerce div.product { grid-template-columns: 1fr; padding: 30px 20px; gap: 40px; }
  .woocommerce div.product .summary { grid-column: 1; }
  .sf-gallery-grid { grid-template-columns: 1fr 1fr; padding: 0 20px 40px; }
  .sf-packages { grid-template-columns: 1fr; margin: 20px; }
  .sf-pb-hero { padding: 40px 20px; }
  .sf-pb-gallery { padding: 40px 20px; }
  .sf-pb-gallery-strip { grid-template-columns: 1fr 1fr; }
  .sf-about, .sf-contact { grid-template-columns: 1fr; gap: 40px; padding: 40px 20px; }
  .sf-gallery-intro { padding: 40px 20px 30px; }
  .sf-shop-label { padding: 30px 20px 0; }
}
