/*
Theme Name: Rubik3
Author: Matteo Morreale
Description: Tema essenziale per TTFB bassi. Si installa già completo e leggibile: palette neutra con contrasto verificato, controlli visibili, font sottoinsiemizzati e nessuna chiamata a servizi esterni.
Version: 2.0.6
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Text Domain: rubik3
Tags: news, magazine, performance, accessibility-ready
*/

/* Fix tabelle */
.wp-block-table thead {
    border-bottom: 3px solid;
    height: auto;
    overflow: visible;
    position: relative;
    width: 100vw;
}
.wp-block-table thead tr {
    width: 90%;
}
.wp-block-table {
    overflow-x: hidden;
}

/* Fix pagine */
.page .container.article-content {
    background: white;
    width: fit-content;
    max-width: 90%;
    padding-top: 1em;
    margin-left: auto;
    margin-right: auto;
}

/* Adeguamenti */
header .logo {
    width: 240px;
    height: 75px;
}

.header-superiore{
    height: 75px!important;
}

.category-posts-container, .tag-posts-container {
    max-width: 1450px;
}

.home-upper-right-row-trending {
    margin-top: 0.5em;
}

/* Autor infos.
   L'avatar nella firma era nascosto perché Gravatar restituiva immagini vuote o
   estranee al sito. Ora l'avatar è locale e coerente con la palette, quindi è
   visibile: le regole che lo dimensionano e lo arrotondano erano già presenti. */
.post-author img{
    flex: 0 0 auto;
}

.post-infos{
    margin-bottom: 1em;
}

.archive main {
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
}

/* Mobile */

@media screen and (max-width: 990px){
    .home-upper-right {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}

/* Fix vari 04/2025 */
    /* Fix adsense CLS */
    .code-block.code-block-2 {
        min-height: 280px;
    }

@media screen and (min-width: 991px){
	.archive .category-2-columns {
		max-width: 1400px;
	}
}

.non-scrollable-row-container .single-post-in-loop {
    align-items: start !important;
    margin-left: 0px;
    max-width: 550px;
}

.menu-item-has-children > a:first-of-type:after {
    content: "▼";
    margin-left: 3px;
    font-size: 8px;
}

/* Reset del contenuto.
   Queste regole arrivavano di fatto dai fogli di WordPress: non emettendo più
   `wp-block-library` sulle pagine senza blocchi, un'immagine a piena
   risoluzione dentro un articolo sbordava dalla pagina. Un tema deve avere il
   proprio reset, non dipendere da quello di core. */
img,
video,
iframe,
embed,
object {
    max-width: 100%;
}

img,
video {
    height: auto;
}

/* I campi del form commenti nascono con `cols`/`size` fissi e a 390 px
   sfondavano il viewport. */
.post-comments input[type="text"],
.post-comments input[type="email"],
.post-comments input[type="url"],
.post-comments textarea {
    box-sizing: border-box;
    max-width: 100%;
    width: 100%;
}

.post-comments textarea {
    min-height: 140px;
}

.post-comments .comment-list {
    list-style: none;
    padding-left: 0;
}

/* Tabelle, blocchi di codice e pre scorrono per conto proprio invece di
   allargare la pagina. */
.article-content table,
.article-content pre {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}

/* Nome del sito usato come logo finché non se ne carica uno dal Customizer.
   Senza queste regole usciva come un normale link sottolineato, minuscolo e
   allineato in alto a sinistra: il tema appena installato non aveva testata. */
.site-branding-link {
    text-decoration: none;
}

header .logo,
footer .logo {
    align-items: center;
    display: flex;
}

.site-title {
    display: inline-block;
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.15;
}

header .site-title {
    color: var(--rubik3-header-upper-fg, #1a1a1a);
}

footer .site-title {
    color: var(--rubik3-footer-fg, #ffffff);
}

@media screen and (max-width: 600px) {
    .site-title {
        font-size: 1.35rem;
    }
}

/* Testo riservato alle tecnologie assistive. Senza questa regola l'etichetta
   del bottone hamburger e quella del campo di ricerca del footer restano
   visibili a schermo. */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: #ffffff;
    clip: auto !important;
    clip-path: none;
    color: #1a1a1a;
    display: block;
    font-size: 1rem;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* Ricerca nell'header.
   Il pannello si apre sotto il bottone e prende la propria larghezza dal
   viewport, non dallo spazio residuo di .search-wrapper: prima dell'apertura
   il wrapper è largo 150 px e l'input finiva a meno di 40 px su mobile.
   Le regole sono prefissate con `header` per prevalere sul CSS inline legacy,
   che viene stampato dopo i fogli enqueued. */
header .search-toggle {
    align-items: center;
    height: auto;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    padding: 0;
    width: auto;
}

/* Il pannello è fuori dal flusso anche da chiuso: se restasse nel flusso
   occuperebbe comunque la sua larghezza nell'header. */
header .search-wrapper .search-form {
    background-color: var(--rubik3-header-upper-bg, #ffffff);
    border-radius: 6px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
    overflow: visible;
    padding: 10px;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    width: min(80vw, 360px);
    z-index: 20;
}

header .search-wrapper .inner-form-container {
    gap: 8px;
    width: 100%;
}

header .header-search-input {
    flex: 1 1 auto;
    min-height: 40px;
    min-width: 0;
}

header .header-search-submit {
    flex: 0 0 auto;
    font-size: 14px;
    margin-left: 0;
    min-height: 40px;
    padding: 8px 14px;
}

.hamburger-toggle {
    appearance: none;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: block;
    font: inherit;
    margin: 0;
    min-height: 44px;
    min-width: 44px;
    padding: 5px;
}

.hamburger-toggle:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.header-navigation.is-open .header-menu-container {
    display: block;
}

.hamburger-menu-line {
    background-color: var(--rubik3-header-lower-fg, #ffffff);
    height: 3px;
    margin: 3px 0;
    transition: 0.4s;
    width: 30px;
}

/* Breakpoint unico della navigazione: sopra i 1200 px il menu è orizzontale,
   sotto compare l'hamburger. Deve restare allineato alle media query del menu
   in inc/css-option-page-code.php, altrimenti si apre una fascia di larghezze
   senza alcuna navigazione. */
@media screen and (min-width: 1201px) {
    .hamburger-toggle {
        display: none;
    }
}

@media screen and (max-width: 1200px) {
    .header-menu-container {
        display: none;
        transition: all 0.5s;
    }

    .hamburger-toggle {
        align-items: center;
        display: flex;
        flex-direction: column;
        /* Un <button> si dimensiona sul contenuto anche con display:flex, quindi
           senza questi margini resta ancorato al bordo sinistro della barra.
           I margini automatici lo ricentrano come faceva il vecchio <div>. */
        margin-left: auto;
        margin-right: auto;
    }
}

@media screen and (min-width: 991px) {
    .uppernewsroll {
        align-items: center;
        display: flex;
    }
}

@media screen and (max-width: 991px) {
    .uppernewsroll {
        display: none;
    }
}

.uppernewsroll.posts-container {
    justify-content: space-between;
    margin-left: 8vw;
    padding-bottom: 0.5em;
    padding-top: 0.5em;
    width: 70vw;
}

.uppernewsroll .post {
    border-right: 1px solid #ccc;
    flex: 1;
    margin: 0 10px;
}

.uppernewsroll .post:last-child {
    border-right: none;
}

.uppernewsroll .post-title {
    color: #000;
    display: block;
    font-size: 0.8em;
    font-weight: bold;
    margin-bottom: 5px;
    text-decoration: none;
}

.social-buttons {
    align-items: center;
    display: flex;
    gap: 1em;
    justify-content: space-evenly;
    margin-left: auto;
    margin-right: auto;
    max-width: 250px;
    padding: 10px 0;
}

.social-buttons a {
    align-items: center;
    border-radius: 50%;
    color: white;
    display: flex;
    font-size: 24px;
    height: 40px;
    justify-content: center;
    line-height: 40px;
    text-align: center;
    width: 40px;
}

.social-buttons .facebook {
    background-color: #3b5998;
}

.social-buttons .twitter {
    background-color: #1da1f2;
}

.social-buttons .whatsapp {
    background-color: #25d366;
}

.social-buttons .telegram {
    background-color: #0088cc;
}

.social-buttons a:hover {
    opacity: 0.8;
}

.social-icons {
    margin-bottom: 1em;
    margin-top: 1em;
    max-width: 600px;
}

.social-icons svg {
    max-height: 20px;
    max-width: 50px;
}
