/*
Theme Name: La Fée du Granit Rose — Le Journal
Theme URI: https://www.lafeedugranitrose.fr/
Author: Oscar-SEO
Description: Thème WordPress sobre et fidèle à l'identité de La Fée du Granit Rose (institut de beauté & onglerie à Perros-Guirec). Conçu pour héberger le blog « Le Journal » sans rupture visuelle avec le site principal.
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fgr-journal
Tags: blog, one-column, right-sidebar, custom-logo, custom-menu, translation-ready
*/

/* =========================================================
   1. VARIABLES — couleurs prélevées sur www.lafeedugranitrose.fr
   ========================================================= */
:root{
	--fgr-teal:#146062;          /* couleur d'accent principale (boutons, liens, nav) */
	--fgr-teal-dark:#0f4a4c;
	--fgr-teal-soft:rgba(20,96,98,.08);
	--fgr-purple:#491f73;        /* accent secondaire (bouton « Prendre RDV ») */
	--fgr-purple-dark:#38185a;
	--fgr-bg:#f3f3f3;            /* fond général du site */
	--fgr-surface:#ffffff;
	--fgr-text:#5b5b5e;          /* couleur de texte courant */
	--fgr-heading:#404044;       /* couleur des titres */
	--fgr-muted:#83838a;
	--fgr-border:#e4e4e6;
	--fgr-radius:8px;
	--fgr-radius-sm:6px;
	--fgr-shadow:0 1px 2px rgba(64,64,68,.06), 0 8px 24px rgba(64,64,68,.06);
	--fgr-font:"Montserrat","Montserrat Fallback",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	--fgr-max:1180px;
}

/* =========================================================
   2. BASE
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
	margin:0;
	background:var(--fgr-bg);
	color:var(--fgr-text);
	font-family:var(--fgr-font);
	font-size:17px;
	line-height:1.65;
	font-weight:400;
	-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--fgr-teal);text-decoration:none}
a:hover,a:focus{text-decoration:underline}
h1,h2,h3,h4,h5,h6{
	color:var(--fgr-heading);
	font-family:var(--fgr-font);
	font-weight:600;
	line-height:1.2;
	margin:0 0 .6em;
	overflow-wrap:break-word;
}
h1{font-size:clamp(28px,4.2vw,44px)}
h2{font-size:clamp(23px,3vw,32px)}
h3{font-size:clamp(20px,2.4vw,24px)}
h4{font-size:19px}
p{margin:0 0 1.15em}
ul,ol{padding-left:1.3em}
blockquote{
	margin:1.6em 0;padding:.2em 0 .2em 1.3em;
	border-left:3px solid var(--fgr-teal);
	color:var(--fgr-heading);font-style:italic;
}
code,kbd,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
pre{background:#fff;border:1px solid var(--fgr-border);border-radius:var(--fgr-radius);padding:16px;overflow:auto}
table{width:100%;border-collapse:collapse;margin:0 0 1.4em}
th,td{border:1px solid var(--fgr-border);padding:10px 12px;text-align:left}
th{background:#fafafa;color:var(--fgr-heading)}
hr{border:0;border-top:1px solid var(--fgr-border);margin:2.2em 0}

.fgr-container{width:100%;max-width:var(--fgr-max);margin:0 auto;padding:0 20px}
.screen-reader-text{
	position:absolute!important;width:1px;height:1px;overflow:hidden;
	clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap;
}
.skip-link{
	position:absolute;left:-9999px;top:0;z-index:1000;
	background:var(--fgr-teal);color:#fff;padding:10px 16px;border-radius:0 0 var(--fgr-radius-sm) 0;
}
.skip-link:focus{left:0}
:focus-visible{outline:2px solid var(--fgr-teal);outline-offset:2px}

/* =========================================================
   3. BOUTONS
   ========================================================= */
.fgr-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;
	background:var(--fgr-teal);color:#fff;
	border:0;border-radius:var(--fgr-radius-sm);
	padding:11px 18px;
	font:inherit;font-size:15px;line-height:1.25;
	cursor:pointer;text-align:center;text-decoration:none;
	transition:background .18s ease;
}
.fgr-btn:hover,.fgr-btn:focus{background:var(--fgr-teal-dark);color:#fff;text-decoration:none}
.fgr-btn--purple{background:var(--fgr-purple)}
.fgr-btn--purple:hover,.fgr-btn--purple:focus{background:var(--fgr-purple-dark)}
.fgr-btn--ghost{background:transparent;color:var(--fgr-teal);border:1px solid var(--fgr-teal)}
.fgr-btn--ghost:hover,.fgr-btn--ghost:focus{background:var(--fgr-teal);color:#fff}
.fgr-btn{max-width:100%}
.fgr-btn svg{flex:none}
.fgr-btn__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* =========================================================
   4. HEADER — robuste : titre long, absence de logo, menu long
   ========================================================= */
.site-header{background:#fff;position:relative;z-index:50}
.site-header__top{
	display:flex;align-items:center;gap:16px;
	padding:16px 0 14px;
	min-height:64px;
}
.site-header__side{flex:1 1 0;min-width:0;display:flex;align-items:center}
.site-header__side--right{justify-content:flex-end}
.site-header__center{
	flex:0 1 auto;min-width:0;
	display:flex;justify-content:center;align-items:center;
}

/* Marque : logo OU titre texte — jamais de débordement */
.site-brand{
	display:inline-flex;flex-direction:column;align-items:center;gap:4px;
	max-width:100%;min-width:0;text-decoration:none;text-align:center;
}
.site-brand:hover,.site-brand:focus{text-decoration:none}
.site-brand__logo img,.site-brand__logo{
	display:block;
	max-height:110px;width:auto;max-width:min(280px,60vw);
	height:auto;object-fit:contain;
}
.site-brand__title{
	color:var(--fgr-teal);
	font-size:clamp(17px,2.4vw,24px);
	font-weight:700;line-height:1.2;
	max-width:min(420px,72vw);
	overflow-wrap:anywhere;word-break:break-word;hyphens:auto;
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.site-brand__tagline{
	color:var(--fgr-muted);font-size:13px;font-weight:400;line-height:1.35;
	max-width:min(420px,72vw);overflow-wrap:anywhere;
}

/* Barre de navigation */
.site-header__navbar{border-top:1px solid var(--fgr-border)}
.main-nav{display:flex;justify-content:center}
.main-nav__list{
	list-style:none;margin:0;padding:0;
	display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
	gap:0 4px;
}
.main-nav__item{position:relative}
.main-nav__link{
	display:inline-flex;align-items:center;gap:6px;
	padding:16px 15px;
	color:var(--fgr-teal);
	font-size:14px;font-weight:400;letter-spacing:.42px;
	text-decoration:none;white-space:nowrap;
}
.main-nav__link:hover,.main-nav__link:focus{text-decoration:none;color:var(--fgr-teal-dark)}
.main-nav__label{position:relative;display:inline-block}
/* Onglet actif : gras + barre 2px sous le libellé (comme sur le site) */
.main-nav__item.is-active > .main-nav__link{font-weight:700}
.main-nav__item.is-active > .main-nav__link .main-nav__label::after{
	content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--fgr-teal);
}
.main-nav__chevron{width:9px;height:9px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2}

/* Sous-menus */
.main-nav__sub{
	list-style:none;margin:0;padding:8px 0;
	position:absolute;top:100%;left:50%;transform:translateX(-50%);
	min-width:230px;background:#fff;border:1px solid var(--fgr-border);
	border-radius:var(--fgr-radius);box-shadow:var(--fgr-shadow);
	opacity:0;visibility:hidden;transition:opacity .15s ease;
}
.main-nav__item:hover > .main-nav__sub,
.main-nav__item:focus-within > .main-nav__sub{opacity:1;visibility:visible}
.main-nav__sub a{
	display:block;padding:9px 18px;color:var(--fgr-teal);
	font-size:14px;line-height:1.35;white-space:normal;text-decoration:none;
}
.main-nav__sub a:hover,.main-nav__sub a:focus{background:var(--fgr-teal-soft);text-decoration:none}

/* Bouton hamburger (mobile) */
.nav-toggle{
	display:none;align-items:center;gap:9px;
	background:none;border:0;padding:8px 0;margin:0;
	color:var(--fgr-teal);font:inherit;font-size:14px;font-weight:600;cursor:pointer;
}
.nav-toggle__bars{display:inline-block;width:22px;height:14px;position:relative}
.nav-toggle__bars span{
	position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:2px;
}
.nav-toggle__bars span:nth-child(1){top:0}
.nav-toggle__bars span:nth-child(2){top:6px}
.nav-toggle__bars span:nth-child(3){top:12px}

@media (max-width:900px){
	.site-header__top{padding:12px 0;gap:10px;flex-wrap:nowrap}
	/* Les colonnes latérales gardent leur largeur naturelle : rien ne se chevauche. */
	.site-header__side{flex:0 0 auto}
	.site-header__center{flex:1 1 auto;min-width:0}
	.site-brand{max-width:100%}
	.site-brand__logo img,.site-brand__logo{max-width:100%}
	.site-brand__title{max-width:100%;font-size:16px}
	.site-brand__tagline{
		max-width:100%;font-size:12px;
		display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
	}
	.site-header .fgr-btn{padding:9px 13px;font-size:14px}
	.nav-toggle{display:inline-flex}
	.site-header__navbar{border-top:1px solid var(--fgr-border)}
	.main-nav{display:block;padding:2px 0 10px}
	.main-nav[data-open="false"]{display:none}
	.main-nav__list{flex-direction:column;align-items:stretch;gap:0}
	.main-nav__link{padding:11px 2px;white-space:normal}
	.main-nav__item.is-active > .main-nav__link .main-nav__label::after{bottom:-3px}
	.main-nav__sub{
		position:static;transform:none;opacity:1;visibility:visible;
		border:0;box-shadow:none;padding:0 0 6px 16px;min-width:0;background:transparent;
	}
	.main-nav__sub a{padding:7px 2px}
	.main-nav__chevron{display:none}
}
@media (max-width:560px){
	/* Le bouton d'appel passe en icône seule pour laisser toute la place à la marque. */
	.site-header__top .fgr-btn__text{display:none}
	.site-header__top .fgr-btn{padding:10px 12px}
	.nav-toggle > span:not(.nav-toggle__bars){display:none}
	.site-brand__logo img,.site-brand__logo{max-height:78px}
	.site-brand__title{font-size:15px}
}

/* =========================================================
   5. CONTENU
   ========================================================= */
.site-main{padding:38px 0 56px}
.fgr-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
.fgr-layout--full{grid-template-columns:minmax(0,1fr)}
@media (max-width:960px){.fgr-layout{grid-template-columns:minmax(0,1fr);gap:34px}}

.page-header{margin:0 0 28px}
.page-header__eyebrow{
	display:block;color:var(--fgr-purple);
	font-size:13px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:8px;
}
.page-header__title{margin:0}
.page-header__desc{margin:10px 0 0;color:var(--fgr-muted);font-size:16px}

/* Liste d'articles */
.post-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:26px;margin:0;padding:0;list-style:none}
.post-card{
	background:var(--fgr-surface);border:1px solid var(--fgr-border);
	border-radius:var(--fgr-radius);overflow:hidden;
	display:flex;flex-direction:column;box-shadow:var(--fgr-shadow);
}
.post-card__thumb{display:block;background:#eee}
.post-card__thumb img{width:100%;height:200px;object-fit:cover}
.post-card__body{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.post-card__meta{color:var(--fgr-muted);font-size:13px;margin:0 0 8px}
.post-card__title{font-size:20px;margin:0 0 10px;line-height:1.3}
.post-card__title a{color:var(--fgr-heading);text-decoration:none}
.post-card__title a:hover,.post-card__title a:focus{color:var(--fgr-teal);text-decoration:none}
.post-card__excerpt{font-size:15.5px;margin:0 0 16px}
.post-card__more{margin-top:auto;align-self:flex-start;font-size:14px;font-weight:600;color:var(--fgr-teal)}
.post-card__more:hover,.post-card__more:focus{text-decoration:underline}

/* Article seul / page */
.entry{background:var(--fgr-surface);border:1px solid var(--fgr-border);border-radius:var(--fgr-radius);padding:34px;box-shadow:var(--fgr-shadow)}
@media (max-width:600px){.entry{padding:22px}}
.entry__meta{color:var(--fgr-muted);font-size:14px;margin:0 0 14px}
.entry__meta a{color:var(--fgr-muted)}
.entry__thumb{margin:0 0 26px;border-radius:var(--fgr-radius);overflow:hidden}
.entry__content{font-size:17px}
.entry__content img{border-radius:var(--fgr-radius);margin:1.2em 0}
.entry__content h2{margin-top:1.5em}
.entry__content h3{margin-top:1.4em}
.entry__footer{margin-top:30px;padding-top:20px;border-top:1px solid var(--fgr-border);font-size:14px;color:var(--fgr-muted)}
.entry__tags a{display:inline-block;margin:0 6px 6px 0;padding:4px 11px;border:1px solid var(--fgr-border);border-radius:100px;font-size:13px;color:var(--fgr-teal)}
.entry__tags a:hover{background:var(--fgr-teal-soft);text-decoration:none}

.wp-caption{max-width:100%}
.wp-caption-text,.wp-block-image figcaption{font-size:13.5px;color:var(--fgr-muted);text-align:center}
.alignleft{float:left;margin:.4em 1.5em 1em 0}
.alignright{float:right;margin:.4em 0 1em 1.5em}
.aligncenter{margin-left:auto;margin-right:auto}
.sticky .post-card{border-color:var(--fgr-teal)}

/* Navigation entre articles / pagination */
.fgr-pagination{margin:36px 0 0}
.fgr-pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.fgr-pagination .page-numbers{
	display:inline-flex;align-items:center;justify-content:center;
	min-width:40px;height:40px;padding:0 12px;
	background:#fff;border:1px solid var(--fgr-border);border-radius:var(--fgr-radius-sm);
	color:var(--fgr-teal);font-size:15px;text-decoration:none;
}
.fgr-pagination .page-numbers:hover{background:var(--fgr-teal-soft);text-decoration:none}
.fgr-pagination .page-numbers.current{background:var(--fgr-teal);border-color:var(--fgr-teal);color:#fff}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}
@media (max-width:600px){.post-nav{grid-template-columns:1fr}}
.post-nav a{
	display:block;background:#fff;border:1px solid var(--fgr-border);border-radius:var(--fgr-radius);
	padding:14px 18px;color:var(--fgr-heading);text-decoration:none;font-size:15px;
}
.post-nav a:hover{border-color:var(--fgr-teal);text-decoration:none}
.post-nav small{display:block;color:var(--fgr-muted);font-size:12.5px;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}
.post-nav__next{text-align:right}

/* =========================================================
   6. SIDEBAR / WIDGETS
   ========================================================= */
.sidebar{display:flex;flex-direction:column;gap:22px;min-width:0}
.widget{
	background:var(--fgr-surface);border:1px solid var(--fgr-border);
	border-radius:var(--fgr-radius);padding:22px;box-shadow:var(--fgr-shadow);font-size:15.5px;
}
.widget__title,.widget .widget-title,.widget h2{
	font-size:14px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;
	color:var(--fgr-heading);margin:0 0 14px;
}
.widget ul{list-style:none;margin:0;padding:0}
.widget ul li{padding:7px 0;border-bottom:1px solid var(--fgr-border)}
.widget ul li:last-child{border-bottom:0}
.widget ul li a{color:var(--fgr-teal)}

/* Formulaire de recherche */
.search-form{display:flex;gap:8px}
.search-form__field{
	flex:1 1 auto;min-width:0;
	border:1px solid var(--fgr-border);border-radius:var(--fgr-radius-sm);
	padding:10px 13px;font:inherit;font-size:15px;color:var(--fgr-heading);background:#fff;
}
.search-form__field:focus{outline:2px solid var(--fgr-teal);outline-offset:1px;border-color:var(--fgr-teal)}
.search-form .fgr-btn{flex:none}

input[type=text],input[type=email],input[type=url],input[type=search],input[type=tel],textarea{
	width:100%;border:1px solid var(--fgr-border);border-radius:var(--fgr-radius-sm);
	padding:11px 13px;font:inherit;font-size:15.5px;color:var(--fgr-heading);background:#fff;
}
textarea{min-height:150px;resize:vertical}

/* =========================================================
   7. COMMENTAIRES
   ========================================================= */
.comments-area{margin-top:34px;background:var(--fgr-surface);border:1px solid var(--fgr-border);border-radius:var(--fgr-radius);padding:30px;box-shadow:var(--fgr-shadow)}
@media (max-width:600px){.comments-area{padding:22px}}
.comments-area__title{font-size:20px;margin:0 0 20px}
.comment-list{list-style:none;margin:0 0 26px;padding:0}
.comment-list ul.children{list-style:none;margin:16px 0 0;padding:0 0 0 24px;border-left:2px solid var(--fgr-border)}
.comment-list li.comment{margin:0 0 18px}
.comment-body{background:#fafafa;border-radius:var(--fgr-radius);padding:16px 18px}
.comment-meta{font-size:13.5px;color:var(--fgr-muted);margin-bottom:8px}
.comment-author .fn{color:var(--fgr-heading);font-weight:600;font-style:normal}
.comment-author img{border-radius:50%;float:left;margin-right:12px}
.comment-content p:last-child{margin-bottom:0}
.reply{font-size:13.5px;margin-top:8px}
.comment-form p{margin-bottom:14px}
.comment-form label{display:block;font-size:14px;font-weight:600;color:var(--fgr-heading);margin-bottom:5px}
.comment-form .form-submit{margin-bottom:0}
.comment-form input[type=submit]{
	background:var(--fgr-teal);color:#fff;border:0;border-radius:var(--fgr-radius-sm);
	padding:12px 22px;font:inherit;font-size:15px;cursor:pointer;
}
.comment-form input[type=submit]:hover{background:var(--fgr-teal-dark)}
.comment-notes,.comment-form-cookies-consent label{font-size:13.5px;font-weight:400;color:var(--fgr-muted)}
.comment-form-cookies-consent{display:flex;align-items:flex-start;gap:8px}
.comment-form-cookies-consent input{margin-top:5px}

/* =========================================================
   8. 404 / AUCUN RÉSULTAT
   ========================================================= */
.fgr-notice{
	background:var(--fgr-surface);border:1px solid var(--fgr-border);border-radius:var(--fgr-radius);
	padding:44px 34px;text-align:center;box-shadow:var(--fgr-shadow);
}
.fgr-notice__code{font-size:64px;font-weight:700;color:var(--fgr-teal);line-height:1;margin:0 0 10px}
.fgr-notice .search-form{max-width:440px;margin:22px auto 0}
.fgr-notice__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:22px}

/* =========================================================
   9. FOOTER
   ========================================================= */
.site-footer{
	background:linear-gradient(118deg,#ded7ef 0%,#e0e4f3 38%,#dcecf6 68%,#cfe9f5 100%);
	color:var(--fgr-heading);
	padding:52px 0 0;
	margin-top:10px;
}
.site-footer__grid{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
	gap:30px;align-items:start;
}
.site-footer__col{min-width:0}
.footer-brand{display:inline-flex;flex-direction:column;gap:10px;max-width:100%;text-decoration:none}
.footer-brand:hover,.footer-brand:focus{text-decoration:none}
.footer-brand img{
	max-height:118px;width:auto;max-width:min(230px,58vw);height:auto;object-fit:contain;
	/* Le logo fourni a un fond blanc opaque : le mode « multiply » le fond dans le dégradé. */
	mix-blend-mode:multiply;
}
.footer-brand__title{
	color:var(--fgr-teal);font-size:16px;font-weight:700;letter-spacing:.4px;
	text-transform:uppercase;overflow-wrap:anywhere;max-width:100%;
}
.site-footer__heading{
	font-size:13px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
	color:var(--fgr-heading);margin:0 0 14px;
}
.site-footer__list{list-style:none;margin:0;padding:0;font-size:15px}
.site-footer__list li{margin:0 0 8px}
.site-footer__list a{color:var(--fgr-heading);text-decoration:none}
.site-footer__list a:hover,.site-footer__list a:focus{color:var(--fgr-teal);text-decoration:underline}
.site-footer__text{font-size:15px;margin:0 0 10px;color:var(--fgr-heading)}
.site-footer__hours{font-size:15px;margin:0}
.site-footer__hours div{display:flex;justify-content:space-between;gap:14px;max-width:260px;margin-bottom:4px}
.site-footer__hours span:last-child{color:var(--fgr-heading);font-weight:600}
.site-footer__note{font-size:13.5px;color:#6b6b72;margin:10px 0 0}
.footer-actions{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 16px}
.footer-social{display:flex;gap:14px;align-items:center;margin-top:6px}
.footer-social a{
	display:inline-flex;align-items:center;justify-content:center;
	width:34px;height:34px;border-radius:50%;color:var(--fgr-teal);background:rgba(255,255,255,.6);
}
.footer-social a:hover,.footer-social a:focus{background:var(--fgr-teal);color:#fff}
.footer-social svg{width:17px;height:17px;fill:currentColor}

.site-footer__bottom{
	margin-top:44px;padding:18px 0 24px;
	border-top:1px solid rgba(64,64,68,.13);
	display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;justify-content:space-between;
	font-size:14px;
}
.site-footer__legal{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.site-footer__legal a{color:var(--fgr-heading)}
.site-footer__legal span[aria-hidden]{color:#8a8a92}
.site-footer__copy{color:#5f5f66}
