/*
 * CynoFlo - patch additif 0.6.2 (14 novembre 2026)
 * Source: charte officielle de Florence. Les 7 couleurs sont exactes.
 * Charge APRÈS front.css et home-v06.css. Aucun contenu Gutenberg modifie.
 * Classes reelles ciblees: .cyno-header, .cyno-footer, .cyno-v06 .cf-*.
 * Ne pas coller tel quel dans 'CSS additionnel' : les SVG sont relatifs
 * au dossier assets/css/ du theme. Utiliser le ZIP installable ou SFTP.
 */
:root {
  /* Palette officielle */
  --cf-prune: #3A1E3F;
  --cf-violet-fonce: #3C216E;
  --cf-violet-clair: #60127D;
  --cf-beige-rose: #D3BDB3;
  --cf-beige: #E6DBD6;
  --cf-coquille: #F8F3E8;
  --cf-turquoise: #13717A;
  --cf-blanc: #FFFFFF;
  --cf-violet-clair-70: rgba(96, 18, 125, .70);
  /* Variables semantiques : utiliser ces aliases dans les prochains patchs */
  --cf-texte: var(--cf-prune);
  --cf-fond: var(--cf-coquille);
  --cf-fond-hero: var(--cf-beige-rose);
  --cf-fond-section: var(--cf-beige);
  --cf-accent: var(--cf-violet-clair);
  --cf-accent-secondaire: var(--cf-turquoise);
  --cf-ombre: rgba(58, 30, 63, .17);
  --cf-police-texte: Arial, Helvetica, sans-serif;
  --cf-police-titres: 'Playfair Display', Georgia, serif;
  /* Compatibilite avec front.css du theme 0.6.1 */
  --c-prune: var(--cf-prune);
  --c-violet-fonce: var(--cf-violet-fonce);
  --c-violet: var(--cf-violet-clair);
  --c-rose: var(--cf-beige-rose);
  --c-beige: var(--cf-beige);
  --c-coquille: var(--cf-coquille);
  --c-turquoise: var(--cf-turquoise);
  --c-blanc: var(--cf-blanc);
}
/* Conserver la coherence de la palette dans le site et l'editeur */
body { background-color: var(--cf-coquille); color: var(--cf-prune); }
.cyno-header, .cyno-footer { color: var(--cf-prune); }
.cyno-header { background: var(--cf-beige); border-bottom: 1px solid rgba(58,30,63,.08); }
.cyno-header-inner { max-width: 1220px !important; }
.cyno-header .wp-block-site-logo { position: relative; }
/* Petite signature a deux lignes, sans substituer le logo original */
.cyno-header .wp-block-site-logo::after {
  content: ''; display: block; width: clamp(68px,9vw,125px); height: 11px;
  margin: -4px auto 0; opacity: .9;
  background: url('../svg/signature-header-v062.svg') center / contain no-repeat;
  pointer-events: none;
}
.cyno-header .wp-block-site-logo img { width: clamp(142px,12.8vw,188px) !important; height: auto !important; max-height: 88px !important; object-fit: contain; }
.cyno-header .wp-block-navigation-item__content { color: var(--cf-prune) !important; }
.cyno-header .wp-block-navigation__responsive-container-open,
.cyno-header .wp-block-navigation__responsive-container-close { min-width:44px; min-height:44px; }
.cyno-header .cyno-header-cta .wp-block-button__link {
  background: var(--cf-turquoise) !important; border-color: var(--cf-turquoise) !important;
  color: var(--cf-blanc) !important; min-height: 44px;
}
/* Toutes les corrections HOME sont scellees sous .cyno-v06 */
.cyno-v06 {
  --cf-plum: var(--cf-prune);
  --cf-purple: var(--cf-violet-clair);
  --cf-deep: var(--cf-violet-fonce);
  --cf-blush: var(--cf-beige-rose);
  --cf-shell: var(--cf-coquille);
  --cf-teal: var(--cf-turquoise);
  color: var(--cf-texte);
  font-family: var(--cf-police-texte);
}
.cyno-v06 h1, .cyno-v06 h2, .cyno-v06 h3 { font-family: var(--cf-police-titres); }
.cyno-v06 .cf-hero {
  background-color: var(--cf-beige-rose);
  overflow: hidden;
  isolation: isolate;
  padding-bottom: clamp(5.7rem,9.2vw,9rem) !important;
}
/* Trois vraies courbes SVG superposees, avec fondus issus de la palette officielle */
.cyno-v06 .cf-hero::after {
  content: ''; position: absolute; inset: auto 0 -1px;
  width:100%; height: clamp(88px, 10vw, 146px);
  background: url('../svg/vagues-hero-v062.svg') center bottom / 100% 100% no-repeat;
  z-index: 1; pointer-events: none; transform:none; opacity:1;
}
.cyno-v06 .cf-hero-inner { position: relative; z-index: 2; max-width: 1220px; }
.cyno-v06 .cf-hero-copy { min-width:0; }
.cyno-v06 .cf-title { color: var(--cf-violet-clair); max-width: 17ch; }
.cyno-v06 .cf-hero .cf-primary-cta .wp-block-button__link {
  background-color: var(--cf-violet-clair) !important;
  border-color: var(--cf-violet-clair) !important;
  color: #fff !important;
}
.cyno-v06 .cf-hero-visual {
  position: relative; z-index: 3;
  transform: rotate(1.6deg);
  border: clamp(12px,1.9vw,26px) solid var(--cf-beige);
  border-radius: 19% 10% 23% 13% / 17% 28% 18% 24%;
  box-shadow: 7px 13px 14px var(--cf-ombre);
  overflow:hidden;
  /* L'animation 0.6.1 pilotait transform et annulait la rotation finale. */
  animation:none !important;
}
@keyframes cf-v062-appear { from { opacity: 0; } to { opacity: 1; } }
.cyno-v06 .cf-hero-img img {
  display:block; width:100%; height:auto; object-fit:cover;
  border-radius:0 !important;
  animation:cf-v062-appear .85s ease-out both;
}
.cyno-v06 .cf-welcome {
  background: var(--cf-coquille);
  padding-top: clamp(2.6rem,4.6vw,5.3rem) !important;
}
.cyno-v06 .cf-welcome-heading { color:var(--cf-violet-clair); }
.cyno-v06 .cf-intro-container { width: min(1150px,100%); }
.cyno-v06 .cf-intro-container > p { color: var(--cf-prune); line-height:1.78; }
/* Les avis conservent leur contenu et des hauteurs naturelles */
.cyno-v06 .cf-reviews {
  background: var(--cf-coquille);
  padding-bottom: clamp(7.5rem,11vw,11.5rem) !important;
  overflow:hidden;
}
.cyno-v06 .cf-reviews::after {
  content: ''; position:absolute; inset: auto 0 -1px;
  height: clamp(86px,10vw,144px);
  background: url('../svg/vagues-avis-v062.svg') center bottom / 100% 100% no-repeat;
  transform:none; opacity:1; z-index:0; pointer-events:none;
}
.cyno-v06 .cf-reviews > .cf-container { position:relative; z-index:1; max-width:1030px; }
.cyno-v06 .cf-review-grid {
  display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start; gap:clamp(1rem,2.5vw,2rem);
}
.cyno-v06 .cf-review-card {
  background:var(--cf-beige);
  box-shadow: 5px 9px 17px var(--cf-ombre);
  height:auto; align-self:start;
}
.cyno-v06 .cf-review-card:nth-child(2),
.cyno-v06 .cf-review-card:nth-child(4) { margin-top: 1.25rem !important; }
.cyno-v06 .cf-review-card:nth-child(3) { margin-top: .5rem !important; }
.cyno-v06 .cf-review-card::before { border-color:var(--cf-turquoise); color:var(--cf-turquoise); background:var(--cf-coquille); }
.cyno-v06 .cf-bottom-cta { position:relative; z-index:2; margin-top:clamp(2rem,4vw,3.5rem) !important; }
/* Contact : carte et texte, fond doux, bouton turquoise */
.cyno-v06 .cf-booking { background:var(--cf-beige); }
.cyno-v06 .cf-booking-inner { max-width:1080px; }
.cyno-v06 .cf-map-image {
  max-width:290px; width: min(100%,290px);
  border-radius: 32% 9% 43% 16% / 24% 11% 43% 28%;
  box-shadow: 9px 14px 16px var(--cf-ombre);
}
.cyno-v06 .cf-booking-heading { color:var(--cf-turquoise); }
.cyno-v06 .cf-booking-cta .wp-block-button__link { background:var(--cf-turquoise) !important; border-color:var(--cf-turquoise) !important; }
/* Footer commun unique, sans injection dans le contenu WordPress */
.cyno-footer { background:var(--cf-beige); border-top:0; }
.cyno-footer-inner { max-width:1130px !important; }
.cyno-footer .wp-block-site-logo img { max-width:180px !important; height:auto !important; }
.cyno-footer .wp-block-separator { border-color:var(--cf-beige-rose); }
.cyno-footer .cyno-footer-legal { color:var(--cf-prune); }
/* Interactions et accessibilite */
.cyno-v06 a:focus-visible, .cyno-header a:focus-visible, .cyno-footer a:focus-visible {
  outline: 3px solid var(--cf-turquoise); outline-offset:4px;
}
@media (max-width:1024px) {
  .cyno-v06 .cf-review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cyno-v06 .cf-review-card:nth-child(n) { margin-top:0 !important; }
  .cyno-v06 .cf-hero-inner { gap:clamp(1rem,3vw,2.5rem); }
}
@media (max-width:700px) {
  .cyno-header .wp-block-site-logo img { width: 148px !important; max-height:74px !important; }
  .cyno-header .wp-block-site-logo::after { width:77px; height:9px; }
  .cyno-v06 .cf-hero { padding-bottom:6.3rem !important; }
  .cyno-v06 .cf-hero::after { height:90px; }
  .cyno-v06 .cf-hero-visual { transform:rotate(.7deg); border-width:12px; }
  .cyno-v06 .cf-review-grid { grid-template-columns:1fr; max-width:470px; }
  .cyno-v06 .cf-reviews { padding-bottom:7rem !important; }
  .cyno-v06 .cf-reviews::after { height:87px; }
  .cyno-v06 .cf-map-image { max-width:260px; }
  .cyno-footer-columns { grid-template-columns:1fr !important; }
}
@media (prefers-reduced-motion: reduce) {
  .cyno-v06 .cf-hero-visual, .cyno-v06 .cf-hero-img img { animation:none !important; }
}
