/*
Theme Name: Vivre Chez Son Chat
Theme URI: https://vivrechezsonchat.fr
Author: Vivre Chez Son Chat
Description: Thème WordPress block/FSE léger, éditorial et SEO-friendly pour Vivre Chez Son Chat.
Version: 0.2.0
Requires at least: 6.5
Requires PHP: 8.1
License: GPLv2 or later
Text Domain: vivre-chez-son-chat
Tags: block-theme, full-site-editing, blog, ecommerce, accessibility-ready
*/

:root {
  --vcsc-cloud-cream: #F8F4EF;
  --vcsc-mocha: #8B5E52;
  --vcsc-warm-gray: #6F6763;
  --vcsc-peach: #F6B8A8;
  --vcsc-mint: #BFE3D2;
  --vcsc-terracotta: #C76E4D;
  --vcsc-cherry: #B53A4A;
  --vcsc-white: #FFFDF9;
  --vcsc-border: rgba(139, 94, 82, 0.16);
  --vcsc-shadow: 0 16px 40px rgba(111, 103, 99, 0.10);
  --vcsc-radius: 28px;
}

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

html { scroll-behavior: smooth; }
body { background: var(--vcsc-cloud-cream); color: var(--vcsc-warm-gray); }
a { text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--vcsc-cherry); }
.wp-site-blocks { overflow-x: hidden; }

.vcsc-header { backdrop-filter: blur(14px); border-bottom: 1px solid rgba(139,94,82,.08); z-index: 20; }
.vcsc-header .wp-block-site-logo img { border-radius: 0; }
.vcsc-card, .wp-block-post-template > li, .woocommerce ul.products li.product {
  border: 1px solid var(--vcsc-border);
  border-radius: var(--vcsc-radius);
  background: rgba(255, 253, 249, 0.86);
  box-shadow: var(--vcsc-shadow);
}
.vcsc-soft-section { border-radius: 36px; background: rgba(246, 184, 168, 0.22); }
.vcsc-mint-section { border-radius: 36px; background: rgba(191, 227, 210, 0.28); }
.vcsc-note { border-left: 4px solid var(--vcsc-terracotta); background: rgba(255,253,249,.9); border-radius: 0 22px 22px 0; padding: 1.25rem 1.5rem; }
.vcsc-warning { border-left-color: var(--vcsc-cherry); }
.vcsc-tag { display:inline-flex; align-items:center; gap:.35rem; padding:.42rem .78rem; border-radius:999px; background:rgba(191,227,210,.42); color:var(--vcsc-mocha); font-weight:800; font-size:.86rem; }
.vcsc-social a { text-decoration: none; font-weight: 800; }
.vcsc-seo-hero {
  border-radius: 36px;
  background: linear-gradient(135deg, rgba(248,244,239,.96), rgba(246,184,168,.25));
  border: 1px solid var(--vcsc-border);
}
.vcsc-link-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.vcsc-link-card {
  border: 1px solid var(--vcsc-border);
  border-radius: 22px;
  background: rgba(255,253,249,.78);
  padding: 1.1rem;
}
.vcsc-link-card a { font-weight: 800; }
.vcsc-seo-list li + li { margin-top: .55rem; }
.vcsc-faq details {
  border: 1px solid var(--vcsc-border);
  border-radius: 22px;
  background: rgba(255,253,249,.86);
  padding: 1rem 1.15rem;
}
.vcsc-faq details + details { margin-top: .85rem; }
.vcsc-faq summary {
  color: var(--vcsc-mocha);
  cursor: pointer;
  font-weight: 800;
}
.vcsc-related-list a,
.vcsc-resource a { font-weight: 800; }
.wp-block-button__link, button, input[type="submit"] { border-radius:999px!important; transition:transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease; }
.wp-block-button__link:hover, button:hover, input[type="submit"]:hover { transform: translateY(-1px); box-shadow:0 12px 26px rgba(181,58,74,.20); }
.wp-block-button.is-style-outline .wp-block-button__link { border-color: var(--vcsc-mocha); color: var(--vcsc-mocha); }
img { border-radius: 22px; max-width: 100%; height: auto; }

.vcsc-form { display:grid; gap:12px; margin-top:22px; }
.vcsc-form input, .vcsc-form textarea, .vcsc-form select {
  width:100%; padding:14px 18px; border-radius:22px; border:1px solid #D8CBC2; background:#FFFDF9; color: var(--vcsc-warm-gray); font: inherit;
}
.vcsc-form input[type="checkbox"] { width:auto; }
.vcsc-form button { padding:14px 22px; border:0; background:var(--vcsc-cherry); color:var(--vcsc-white); font-weight:800; cursor:pointer; }
.vcsc-form label { color: var(--vcsc-mocha); font-weight: 800; }
.vcsc-form input:focus,
.vcsc-form textarea:focus,
.vcsc-form select:focus { border-color: var(--vcsc-cherry); outline: 3px solid rgba(181,58,74,.24); outline-offset: 2px; }

.woocommerce ul.products { gap: 1.5rem; }
.woocommerce ul.products li.product { padding: 1.2rem; }
.woocommerce span.onsale, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button { border-radius:999px; }
.woocommerce span.onsale { background: var(--vcsc-cherry); color: var(--vcsc-white); }
.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button { background: var(--vcsc-cherry); color: var(--vcsc-white); font-weight: 800; }
.woocommerce .quantity .qty,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
  border: 1px solid #D8CBC2;
  border-radius: 18px;
  color: var(--vcsc-warm-gray);
  padding: .78rem 1rem;
}

:focus-visible { outline: 3px solid var(--vcsc-cherry); outline-offset: 4px; }
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  border: 0;
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal!important;
}
.screen-reader-text:focus {
  clip: auto;
  clip-path: none;
  height: auto;
  left: 1rem;
  top: 1rem;
  width: auto;
  z-index: 100000;
}

@media (max-width: 782px) {
  .vcsc-desktop-only { display:none!important; }
  .vcsc-header { position: static!important; }
  .wp-block-navigation__responsive-container.is-menu-open { padding:1.4rem; background: var(--vcsc-cloud-cream)!important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; }
  .wp-block-columns { gap: 1.25rem; }
  .vcsc-soft-section,
  .vcsc-seo-hero,
  .vcsc-mint-section { border-radius: 24px; }
  .vcsc-card,
  .wp-block-post-template > li,
  .woocommerce ul.products li.product { border-radius: 22px; }
  .wp-block-button,
  .wp-block-button__link,
  .vcsc-form button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: .01ms!important;
    animation-iteration-count: 1!important;
    scroll-behavior: auto!important;
    transition-duration: .01ms!important;
  }
}
