/* --------------------------------------------------------------

   theme.css
   Theme par defaut de SPIP 3.3
   collectif SPIP

-------------------------------------------------------------- */

/* ------------------------------------------
/* Habillage des balises HTML
/* ------------------------------------------ */

/* Elements principaux
------------------------------------------ */
body {font-family: "Source Sans Pro" ,"Roboto", "Open Sans", sans-serif; color:#222222;background:#ffffff; font-size: 17px;} 

h1,.h1,
h2,.h2 { line-height: 1.2;}
h2,.h2 { color: #c60303;}
h3,.h3 { color: #c60303;}


/* Hyperliens
---------------------------------------------- */
a, a:visited { color: #c60303; text-decoration: none;  }
 
a:focus, 
a:hover, 
a:active { background-color:#C90; color:#fff; text-decoration:none; }

h3 aa:active {text-decoration: underline !important;}

/* Citations, code et poesie
---------------------------------------------- */
blockquote {
	min-height: 40px;
	background: url(img/quote.png) no-repeat;
	border:none;
	padding-left:3em;
}

blockquote:before { content:"";  /* à terme supprimer l'image quote.png et reintegrer le bon sur blocquote.spip_poesie */ }

blockquote.spip_poesie {
	background-image:none;
}

.spip_code,
.spip_cadre {
	font-family: 'Courier New', Courier, monospace;
	margin:0 .2em;
}

.spip_code {
	border: 1px solid #dfdfcd;
	background-color: rgba(227,227,211,0.5);
	color: #3b3b25;
	text-shadow: 0 1px 0 #fdfdfc;
}

.spip_cadre {
	background:#333;
	color:#fff;
	border-radius:0.5em;
	border:0;
}

textarea.spip_code,
textarea.spip_cadre {
	padding: 1em;
	width:98%;
}

/* ------------------------------------------
/* Habillage des elements du contenu
/* ------------------------------------------ */

/* fil d'ariane */
.arbo { clear: both; font-size: .9em; color: #666; }
.arbo * { font-weight: normal; }
.arbo a,
.arbo a:visited { color: #666; }
.arbo a:hover,
.arbo a:focus { background: #666; color: white; text-decoration:none; }

.cartouche { margin-bottom: 1.5em; }
.cartouche h1 { margin-bottom: 0; }
.cartouche p { margin-bottom: 0; }
.surtitre{}
.soustitre {}
abbr.published { border: 0; }
@media print {
	abbr[title].published:after { content: ""; }
	abbr[title].dtreviewed:after { content: ""; }
}
.info-publi { margin: 1.5em 0 0; font-size: .9em; font-style: italic; }
html[dir="rtl"] .info-publi { font-style: normal; }
.traductions { font-size: .9em; }
.traductions a[hreflang]:after { content: ''; }

.chapo { font-weight: bold; }
.texte {}
.hyperlien { display: block; padding: 1.5em 50px; background: #EEE url(img/def.png) no-repeat 25px 1.9em; font-weight: bold; }
.ps, .notes { margin-bottom: 1.5em; }
.notes { clear: both; font-size: 1.1em; }

/* Listes et tableaux */
.spip-puce { color: #db1762; }
dl.spip dt { background: url(img/def.png) no-repeat 25px .5em; }
dl.spip dd {}

table.spip {margin:1em 0;}
table.spip caption {  background: none; border-bottom: 1px solid; text-align: left; font-weight: bold; }
table.spip thead th { background: none; border: 1px solid; border-width: 1px 0; }
table.spip tbody tr th,
table.spip tr td { background: none; }
table.spip tbody tr.odd th,
table.spip tr.odd td { background: #EEE; }
table.spip tr:hover td {background: #AAD;}
table.spip tfoot { border-top: 1px solid; }

/* Formulaires : variantes et cas particuliers
----------------------------------------------- */
.formulaire_spip { margin-bottom: 1.5em; }
.formulaire_spip label { display: block; }
.formulaire_spip input.text,
.formulaire_spip select,
.formulaire_spip textarea {
	width: 100%;
	box-sizing: border-box;
	padding:.25em;
	border:solid 1px #ccc;
	border-radius:4px;
}

.formulaire_spip img.ui-datepicker-trigger {
	position:relative;
	max-width: 1.5em;
	margin-top: -0.25em;
	margin-left: -1.75em;
}

.formulaire_spip .choix label {
	display: inline;
}

.formulaire_recherche label { display: block; }
.erreur_message { display: block; }

/* Selection des langues */
.formulaire_menu_lang { margin: 0; padding: 0; background: none; }

/* Formulaires de recherche (site / petitions) */
.formulaire_recherche input.text { 
	width: auto;
	height: 32px;
	padding-left: 20px;
	vertical-align: middle;
	border:solid 1px #aaa;
	background:#fff url(img/recherche.png) no-repeat left center;
	-webkit-border-radius: 0.25em 0 0 0.25em;
	border-radius: 0.25em 0 0 0.25em;
}
.formulaire_recherche input.btn,
.formulaire_recherche input.submit {
	width: auto;
	height: 32px;
	vertical-align: middle;
	border:solid 1px #aaa;
	border-left: none;
	-webkit-border-radius: 0 0.25em 0.25em 0;
	border-radius: 0 0.25em 0.25em 0;
	text-align: center;
}

/* Choix des mots-clefs */
.formulaire_spip .saisie_mots_forum fieldset {margin-left: 0}
ul.choix_mots { display: flex; margin: 0; padding: 0; list-style: none; flex-wrap: wrap}
ul.choix_mots li { display: flex; flex-basis: 30%; max-width: 30%; padding: 0.25em 0.5em; align-items: center}
ul.choix_mots li label { font-weight: normal; font-size: 1em; line-height: 1.25; margin-left: 0.25em}

.formulaire_spip .bugajaxie { display: none; } /*IE/Win*/

/* Formulaire de login dans une page */
.formulaire_login .editer-groupe .editer { clear: left; }
.formulaire_login .editer_password .details { display: block; }
.formulaire_login #spip_logo_auteur { float: right; }

/* Fomulaire de contact */
.formulaire_ecrire_auteur {}
.formulaire_ecrire_auteur .saisie_sujet_message_auteur input.text { width: 100%; }


/* Habillage des portfolios
---------------------------------------------- */
.documents_portfolio li {display:inline;margin:0;padding:0;}
.documents_portfolio a {display:inline-block;padding:10px;margin:5px;border:1px solid #ccc !important;color:#EEE;background:#fff;box-shadow: 5px 7px 5px 2px rgba(85,85,85,0.3);}
.documents_portfolio a:hover {color:#999;opacity:0.8;}
.documents_portfolio img {margin:0;}

.documents_joints .descriptif p {margin:0;}

/* Habillage des forums
---------------------------------------------- */
.comments  {margin-top:2em;padding:1em 0;border-top:10px solid #EEE;}
.comments  ul {list-style:none;}
.comment-item {margin:0.5em 0 0 0;padding:0.5em 0 0 0;border-top:1px solid #EEE;}
.comments-items .comments-items {margin-left: 25px;padding-left: 20px;border-left:5px solid #ddd;}
.comment-meta { margin: 0; font-weight: bold; }
.comment-meta small { font-size: 100%; }
.comment-meta abbr { border: 0; }
.comment-meta a { text-decoration:none;}
.comment-content .hyperlien { padding: 0; background: transparent; font-weight: normal; }

/* Formulaire de forum */
.forum-titre  {margin-top:2em;padding:1em 0;border-top:10px solid #EEE;}
.formulaire_forum {}
.formulaire_forum form+form{margin-top:1em;}
.formulaire_forum legend { display: none; }
.formulaire_forum .saisie_titre input.text { width: 100% }
.formulaire_forum .session_qui { display: none; }
.formulaire_forum .saisie_texte .explication { font-size: .9em; font-style: italic; margin: 0.5em 0; }
html[dir="rtl"] .formulaire_forum .saisie_texte .explication { font-style: normal; }
.formulaire_forum .boutons { margin-top: 1em; }

/* Habillage des petitions
---------------------------------------------- */
#signatures td.signature-date small { white-space: nowrap; }
#signatures .formulaire_recherche { margin: 1.5em auto; text-align: center; }

/* Formulaire de signature */
.formulaire_signature {}

/* ------------------------------------------
/* Sous-navigation et autres menus
/* ------------------------------------------ */

/* Habillage general des menus de nav */
.menu { clear: both; margin-bottom: 1.5em; text-align: left; }
.menu p {}
.menu ul { margin-bottom: 1.5em; }
.menu ul li {}
.menu ul li ul { margin-left: 1.5em; list-style: circle; }
 
/* Pagination */
.pagination .pagination-items {list-style: none;display: flex;flex-wrap: wrap; flex-direction: row; justify-content: center}
.pagination .pagination-item {  margin: 0em; flex-basis: 7.5%; display: flex;align-items: center;}
.pagination .pagination_precedent_suivant .pagination-item { flex-basis: auto;}
.pagination .pagination-item + .pagination-item {  margin-left: 0.5em }
.pagination .pagination-item-label { display:block; flex-basis: 100%; background: #f0f0f0; text-decoration: none; padding:.5em; border-radius:.25em; text-align: center;}
.pagination .on .pagination-item-label,
.pagination a.pagination-item-label:hover,
.pagination a.pagination-item-label:focus,
.pagination a.pagination-item-label:active { background: #c41558; color: #fff; }
.pagination .on .pagination-item-label {font-weight: bold;}
.pagination .pagination_precedent_suivant .disabled {visibility: hidden}
.pagination .pagination-item.disabled {}
.pagination .pagination-item.disabled .pagination-item-label {color:#888; font-weight: normal;}
.menu_articles .pagination strong {font-size:1em;}

/* Listes d'articles et extraits introductifs */
.menu_articles li { clear: both; margin-bottom: 1.5em; }
.menu_articles li h3,
.menu_articles li h2 { margin: 0 0 0.2em 0; }
.menu_articles li p { margin: 0; }
.menu_articles li small {  }
.menu_articles li .enclosures { float: right; text-align: right; max-width: 60%; margin: 0; }
.menu_articles li div {margin-top:0.2em;margin-bottom:0.5em;}
.menu_articles a {text-decoration:none;}
.menu_articles strong {font-size:1.2em;}
 
.menu_breves li {}
.menu_breves li h3 { margin: 0; }

.aside h2 {border-bottom:3px solid #EEE;padding-bottom:.1em;}
.aside li {margin:1em 0;}
.aside a {text-decoration:none;}

.footer a {text-decoration:none;}
.footer a.spip_out:after { content: ""; }

/* ------------------------------------------
/* Autres medias
/* ------------------------------------------ */

@media print {

	/*  Ne pas imprimer */
	.spip-admin,
	.spip-admin-float,
	.spip-previsu { display: none; }
	.repondre { display: none; }

	/* Souligner et expliciter les liens */
	a { color: #600; text-decoration: underline !important; }
	a.spip_out:after,
	a.spip_glossaire:after,
	a.spip_mail:after { display: inline; content: " [" attr(href) "]"; }

}


/* ------------------------------------------
/* Responsive
/* ------------------------------------------ */

/* largeur maximum 767px */
@media (max-width: 767px) { 
	.pagination {line-height:3;}
}

 
/* largeur maximum 640px */
@media (max-width: 640px) {
	body { font-size: 1em; }
	h1,.h1,
	h2,.h2 { line-height: 1; }
}


.weekend-guide {
  max-width: 780px;
  margin: 0 auto;
  line-height: 1.65;
  color: #222;
}

.weekend-guide * {
  box-sizing: border-box;
}

.weekend-guide a {
  color: #2f4d62;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
  text-decoration-color: #b8c7cf;
}

.weekend-guide a:hover,
.weekend-guide a:focus {
  color: #18384a;
  text-decoration-color: currentColor;
}

.weekend-hero a,
.weekend-highlights p a,
.weekend-section p a,
.weekend-card p a {
  color: #2f4d62;
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
  text-decoration-color: rgba(47, 77, 98, 0.45);
}

.weekend-hero a:hover,
.weekend-hero a:focus,
.weekend-highlights p a:hover,
.weekend-highlights p a:focus,
.weekend-section p a:hover,
.weekend-section p a:focus,
.weekend-card p a:hover,
.weekend-card p a:focus {
  color: #18384a;
  text-decoration-color: currentColor;
}

.weekend-nav a,
.weekend-day-links a {
  text-decoration: none;
}

.weekend-hero {
  max-width: 780px;
  margin: 0 auto 1.6rem;
  line-height: 1.65;
  color: #222;
  padding: 1.1rem 1.2rem;
  background: #f8f8f8;
  border: 1px solid #e5e5e5;
}

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

.weekend-kicker {
  margin: 0 0 0.35rem;
  color: #626262;
  font-size: 0.92rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0;
}

.weekend-lead {
  margin: 0;
  font-size: 1.05rem;
}

.weekend-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 1rem 0 1.8rem;
  padding: 0.85rem 0;
  border-top: 1px solid #e4e4e4;
  border-bottom: 1px solid #e4e4e4;
}

.weekend-nav a {
  display: inline-block;
  padding: 0.28rem 0.55rem;
  background: #f7f7f7;
  border: 1px solid #e1e1e1;
  text-decoration: none;
}

.weekend-highlights {
  margin: 2rem 0;
  padding: 1.15rem;
  background: #f7f7f7;
  border-left: 4px solid #cfcfcf;
}

.weekend-highlights h2,
.weekend-days h2,
.weekend-section h2 {
  margin: 0 0 1rem;
  padding-bottom: 0.35rem;
  border-bottom: 2px solid #e1e1e1;
}

.weekend-highlight {
  margin: 0 0 0.9rem;
  padding: 0.85rem 0;
  border-top: 1px solid #e1e1e1;
}

.weekend-highlight:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.weekend-highlight a {
  font-weight: 700;
}

.weekend-highlight p {
  margin: 0.2rem 0 0;
}

.weekend-days {
  margin: 2.2rem 0;
}

.weekend-day {
  margin: 1rem 0;
  padding: 0.95rem 1rem;
  background: #fbfbfb;
  border: 1px solid #e3e3e3;
}

.weekend-day h3 {
  margin: 0 0 0.7rem;
}

.weekend-day-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
  margin: 0;
}

.weekend-day-links a {
  display: inline-block;
  padding: 0.24rem 0.52rem;
  background: #fff;
  border: 1px solid #dcdcdc;
  text-decoration: none;
}

.weekend-section {
  margin-top: 2.4rem;
}

.weekend-card {
  margin: 1rem 0;
  padding: 1rem 1rem 1.05rem;
  background: #fff;
  border: 1px solid #dedede;
  border-left: 3px solid #d3d3d3;
}

.weekend-card h3 {
  margin: 0 0 0.55rem;
}

.event-description {
  margin: 0 0 0.85rem;
}

.event-meta {
  display: grid;
  gap: 0.36rem;
  margin: 0.85rem 0 0;
  padding: 0.85rem;
  background: #f8f8f8;
  border: 1px solid #e4e4e4;
}

.event-meta span {
  display: block;
}

.event-link {
  font-weight: 600;
}

/* =========================================================
   PUBLICITÉS MERCI — WEEK-END VALAIS
   Desktop + mobile, sans double affichage
   ========================================================= */

/* Base commune */
.weekend-ad {
  margin: 1.8rem 0;
  padding: .9rem 0;
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #e5e5e5;
}

/* Par défaut : on masque les deux versions.
   Les media queries décident ensuite laquelle afficher. */
.weekend-ad-desktop,
.weekend-ad-mobile {
  display: none !important;
}

/* Carte */
.weekend-ad-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,.06);
}

/* Image */
.weekend-ad-visual {
  background: #fff;
}

.weekend-ad-visual a {
  display: block;
}

.weekend-ad-img {
  display: block;
  width: 100%;
  height: auto !important;
  max-width: 100%;
  object-fit: contain;
}

/* Texte */
.weekend-ad-content {
  padding: 1.2rem 1.2rem 1.3rem;
}

.weekend-ad-kicker {
  margin: 0 0 .45rem;
  font-size: .82rem;
  line-height: 1.25;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #666;
  font-weight: 700;
}

.weekend-ad-content h3 {
  margin: 0 0 .65rem;
  font-size: 1.9rem;
  line-height: 1.08;
  color: #1d1d1d;
}

.weekend-ad-lead {
  margin: 0 0 .7rem;
  font-size: 1.08rem;
  line-height: 1.45;
  color: #3d3d3d;
  font-weight: 600;
}

.weekend-ad-content p {
  margin: 0 0 .85rem;
  font-size: 1rem;
  line-height: 1.55;
  color: #4a4a4a;
}

.weekend-ad-cta-wrap {
  margin: 1rem 0 0;
}

.weekend-ad-cta {
  display: inline-block;
  padding: .85rem 1.15rem;
  background: #b8892f;
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 8px;
  font-weight: 700;
  line-height: 1.2;
}

.weekend-ad-cta:hover,
.weekend-ad-cta:focus {
  background: #9f7626;
  color: #fff !important;
  text-decoration: none !important;
}


/* =========================================================
   DESKTOP
   Affiche uniquement la version desktop
   ========================================================= */

@media screen and (min-width: 801px) {
  .weekend-ad-desktop {
    display: block !important;
  }

  .weekend-ad-mobile {
    display: none !important;
  }

  .weekend-ad-card-desktop,
  .weekend-ad-card-merci {
    display: grid;
    grid-template-columns: minmax(320px, 44%) 1fr;
    align-items: center;
  }

  .weekend-ad-card-desktop .weekend-ad-content,
  .weekend-ad-card-merci .weekend-ad-content {
    padding: 1.8rem 2rem;
  }

  .weekend-ad-card-desktop .weekend-ad-img,
  .weekend-ad-card-merci .weekend-ad-img {
    width: 100%;
    height: auto !important;
  }
}


/* =========================================================
   MOBILE
   Affiche uniquement la version mobile
   ========================================================= */

@media screen and (max-width: 800px) {
  .weekend-ad-desktop {
    display: none !important;
  }

  .weekend-ad-mobile {
    display: block !important;
  }

  .weekend-ad {
    margin: 1.5rem 0;
    padding: .8rem 0;
  }

  .weekend-ad-card {
    border-radius: 12px;
  }

  .weekend-ad-card-mobile {
    display: block;
  }

  .weekend-ad-card-mobile .weekend-ad-img {
    width: 100%;
    height: auto !important;
    max-width: 100%;
    object-fit: contain;
  }

  .weekend-ad-card-mobile .weekend-ad-content {
    padding: 1rem 1rem 1.2rem;
    text-align: left;
  }

  .weekend-ad-card-mobile .weekend-ad-kicker {
    font-size: .78rem;
  }

  .weekend-ad-card-mobile .weekend-ad-content h3 {
    font-size: 1.55rem;
    line-height: 1.12;
  }

  .weekend-ad-card-mobile .weekend-ad-lead {
    font-size: 1rem;
  }

  .weekend-ad-card-mobile .weekend-ad-content p {
    font-size: .97rem;
    line-height: 1.5;
  }

  .weekend-ad-card-mobile .weekend-ad-cta {
    width: 100%;
    text-align: center;
    box-sizing: border-box;
  }
}

.weekend-ad-image-only {
  margin: 1.8rem 0;
  padding: 0;
  border-top: none;
  border-bottom: none;
}

/* On garde une carte propre, mais sans zone texte */
.weekend-ad-image-only .weekend-ad-card {
  display: block !important;
  grid-template-columns: none !important;
  background: transparent;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,.06);
}

/* On masque toute la partie texte */
.weekend-ad-image-only .weekend-ad-content {
  display: none !important;
}

/* L'image devient toute la publicité */
.weekend-ad-image-only .weekend-ad-visual {
  display: block;
  width: 100%;
  background: transparent;
}

.weekend-ad-image-only .weekend-ad-visual a {
  display: block;
  width: 100%;
  line-height: 0;
}

.weekend-ad-image-only .weekend-ad-img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto !important;
  object-fit: contain;
}

/* Desktop : neutralise la grille image + texte */
@media screen and (min-width: 801px) {
  .weekend-ad-image-only .weekend-ad-card-desktop,
  .weekend-ad-image-only .weekend-ad-card-merci {
    display: block !important;
    grid-template-columns: none !important;
  }

  .weekend-ad-image-only .weekend-ad-card-desktop .weekend-ad-img,
  .weekend-ad-image-only .weekend-ad-card-merci .weekend-ad-img {
    width: 100%;
    height: auto !important;
  }
}

/* Mobile : image pleine largeur, sans bloc texte */
@media screen and (max-width: 800px) {
  .weekend-ad-image-only {
    margin: 1.5rem 0;
    padding: 0;
  }

  .weekend-ad-image-only .weekend-ad-card {
    border-radius: 12px;
  }

  .weekend-ad-image-only .weekend-ad-card-mobile {
    display: block !important;
  }

  .weekend-ad-image-only .weekend-ad-card-mobile .weekend-ad-img {
    width: 100%;
    max-width: 100%;
    height: auto !important;
  }
}
/* =========================================================
   CALENDRIER MENSUEL
   Même famille visuelle que le guide week-end
   ========================================================= */

.monthly-hero,
.monthly-calendar {
  max-width: 780px;
  margin-right: auto;
  margin-left: auto;
  color: #222;
  line-height: 1.65;
}

.monthly-hero *,
.monthly-calendar *,
.monthly-hero *::before,
.monthly-calendar *::before,
.monthly-hero *::after,
.monthly-calendar *::after {
  box-sizing: border-box;
}

.monthly-hero {
  margin-bottom: 1.4rem;
  padding: 1.15rem 1.25rem;
  background: #f7f7f7;
  border: 1px solid #e3e3e3;
  border-top: 4px solid #c60303;
}

.monthly-kicker {
  margin: 0 0 .35rem;
  color: #626262;
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.monthly-lead {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 400;
}

.monthly-calendar a {
  color: #2f4d62;
  text-decoration: underline;
  text-decoration-color: rgba(47, 77, 98, .4);
  text-decoration-thickness: 1.5px;
  text-underline-offset: .14em;
}

.monthly-calendar a:hover,
.monthly-calendar a:focus {
  background-color: transparent;
  color: #18384a;
  text-decoration-color: currentColor;
}

.monthly-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1.8rem;
  padding: .9rem 0;
  border-top: 1px solid #e1e1e1;
  border-bottom: 1px solid #e1e1e1;
}

.monthly-nav a {
  display: inline-block;
  padding: .38rem .68rem;
  background: #f7f7f7;
  border: 1px solid #dedede;
  border-radius: 4px;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.monthly-nav a:hover,
.monthly-nav a:focus {
  background: #eef2f4;
}

.monthly-section {
  margin: 2.5rem 0;
  scroll-margin-top: 1rem;
}

.monthly-section > h2 {
  margin: 0 0 1rem;
  padding-bottom: .42rem;
  border-bottom: 2px solid #e1e1e1;
}

.monthly-section-intro {
  max-width: 68ch;
  margin: -.25rem 0 1.1rem;
  color: #505050;
}

.monthly-highlight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.monthly-highlight {
  padding: 1rem;
  background: #f8f8f8;
  border: 1px solid #e2e2e2;
  border-left: 3px solid #cfcfcf;
}

.monthly-highlight:first-child {
  grid-column: 1 / -1;
  background: #f4f6f7;
  border-left-color: #c60303;
}

.monthly-highlight h3 {
  margin: 0 0 .35rem;
  font-size: 1.2rem;
  line-height: 1.25;
}

.monthly-highlight p {
  margin: .3rem 0 0;
}

.monthly-highlight-meta {
  color: #626262;
  font-size: .92rem;
  font-weight: 700;
}

.monthly-period {
  margin: 1rem 0;
  padding: 1rem 1.05rem;
  background: #fbfbfb;
  border: 1px solid #e2e2e2;
  scroll-margin-top: 1rem;
}

.monthly-period h3 {
  margin: 0 0 .45rem;
}

.monthly-period > p {
  margin: 0 0 .75rem;
  color: #4a4a4a;
}

.monthly-period ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.monthly-period li {
  position: relative;
  margin: 0;
  padding: .55rem 0 .55rem 1rem;
  border-top: 1px solid #e4e4e4;
}

.monthly-period li::before {
  position: absolute;
  top: .98rem;
  left: 0;
  width: .38rem;
  height: .38rem;
  background: #c60303;
  border-radius: 50%;
  content: "";
}

.monthly-period li:first-child {
  border-top: 0;
}

.monthly-ongoing-grid,
.monthly-theme-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.monthly-ongoing-card,
.monthly-theme-card {
  padding: 1rem;
  background: #fff;
  border: 1px solid #dedede;
}

.monthly-ongoing-card {
  border-top: 3px solid #cfcfcf;
}

.monthly-ongoing-card h3,
.monthly-theme-card h3 {
  margin: 0 0 .4rem;
  font-size: 1.16rem;
  line-height: 1.3;
}

.monthly-ongoing-card p,
.monthly-theme-card p {
  margin: .3rem 0 0;
}

.monthly-ongoing-date {
  color: #626262;
  font-size: .92rem;
  font-weight: 700;
}

.monthly-events {
  margin-top: 2.8rem;
}

.monthly-card {
  margin: 1rem 0;
  padding: 1.05rem 1.1rem 1.1rem;
  background: #fff;
  border: 1px solid #dedede;
  border-left: 3px solid #d3d3d3;
  scroll-margin-top: 1rem;
}

.monthly-card h3 {
  margin: 0 0 .55rem;
  line-height: 1.28;
}

.monthly-card > p {
  margin: .65rem 0 0;
}

.monthly-card > p:first-of-type {
  margin-top: 0;
}

.monthly-card > p:first-of-type strong {
  display: inline-block;
  margin-bottom: .18rem;
  color: #333;
}

.monthly-card > p:last-child a {
  display: inline-block;
  font-weight: 700;
}

.monthly-calendar .weekend-ad {
  margin: 2.2rem 0;
}

.monthly-calendar .weekend-ad-cta,
.monthly-calendar .weekend-ad-cta:visited {
  background: #b8892f;
  color: #fff;
}

.monthly-calendar .weekend-ad-cta:hover,
.monthly-calendar .weekend-ad-cta:focus {
  background: #9f7626;
  color: #fff;
}

@media screen and (max-width: 640px) {
  .monthly-hero {
    padding: 1rem;
  }

  .monthly-lead {
    font-size: 1rem;
  }

  .monthly-nav {
    gap: .4rem;
  }

  .monthly-nav a {
    flex: 1 1 calc(50% - .4rem);
    text-align: center;
  }

  .monthly-highlight-grid,
  .monthly-ongoing-grid,
  .monthly-theme-grid {
    grid-template-columns: 1fr;
  }

  .monthly-highlight:first-child {
    grid-column: auto;
  }

  .monthly-period,
  .monthly-card {
    padding: .9rem;
  }
}

@media print {
  .monthly-nav,
  .monthly-calendar .weekend-ad {
    display: none !important;
  }

  .monthly-highlight,
  .monthly-period,
  .monthly-ongoing-card,
  .monthly-theme-card,
  .monthly-card {
    break-inside: avoid;
    box-shadow: none;
  }
}

/* fin */
