/*
Theme Name:   Andrea Cantanna Photography
Theme URI:    https://www.andreacantanna.it
Description:  Tema child di Astra per Andrea Cantanna Photography — fotografia commerciale, aziendale, food, e-commerce e per siti web. Palette bianco e nero ispirata al logo. All'attivazione crea automaticamente pagine, menu, logo e impostazioni.
Author:       Andrea Cantanna
Template:     astra
Version:      1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain:  ac-photo
License:      GPL-2.0-or-later
*/

/* ==========================================================================
   Variabili
   ========================================================================== */
:root {
	--ac-black: #0a0a0a;
	--ac-ink: #141414;
	--ac-grey-900: #1c1c1c;
	--ac-grey-700: #3a3a3a;
	--ac-grey-500: #7a7a7a;
	--ac-grey-300: #cfcfcf;
	--ac-grey-100: #f3f3f1;
	--ac-white: #ffffff;
	--ac-serif: "Cormorant Garamond", "Times New Roman", serif;
	--ac-script: "Pinyon Script", "Cormorant Garamond", cursive;
	--ac-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--ac-gap: clamp(1.25rem, 3vw, 2.5rem);
	--ac-section: clamp(4rem, 9vw, 8rem);
	--ac-radius: 0;
	--ac-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ==========================================================================
   Base
   ========================================================================== */
body,
.ast-separate-container,
body.ast-plain-container {
	background: var(--ac-white);
	color: var(--ac-grey-700);
	font-family: var(--ac-sans);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 {
	font-family: var(--ac-serif);
	font-weight: 500;
	color: var(--ac-black);
	letter-spacing: -0.01em;
	line-height: 1.1;
}
.entry-content h1, h1 { font-size: clamp(2.6rem, 6vw, 5rem); }
.entry-content h2, h2 { font-size: clamp(2.1rem, 4.2vw, 3.4rem); }
.entry-content h3, h3 { font-size: clamp(1.45rem, 2.2vw, 1.9rem); }
h1 em, h2 em, h3 em { font-style: italic; font-weight: 400; }

a { color: var(--ac-black); transition: color .25s var(--ac-ease), opacity .25s var(--ac-ease); }
a:hover, a:focus { color: var(--ac-grey-500); }
::selection { background: var(--ac-black); color: var(--ac-white); }

/* Contenuto full width senza titolo automatico */
.ac-fullwidth .site-content > .ast-container { max-width: 100%; padding: 0; }
.ac-fullwidth .entry-content > * { margin-block: 0; }
.ac-fullwidth #primary { margin: 0; padding: 0; }
.ac-fullwidth .ast-article-single,
.ac-fullwidth .ast-article-post { padding: 0 !important; margin: 0 !important; background: transparent; }
.ac-fullwidth .entry-header { display: none; }

/* ==========================================================================
   Header nero (come il logo)
   ========================================================================== */
.site-header,
.ast-primary-header-bar,
.main-header-bar,
.ast-mobile-header-wrap .ast-primary-header-bar,
.ast-above-header-bar,
.ast-below-header-bar {
	background: var(--ac-black) !important;
	border: 0 !important;
}
.ast-primary-header-bar { border-bottom: 1px solid rgba(255,255,255,.08) !important; }
.site-header .custom-logo-link img { max-width: 150px; width: 150px; height: auto; }
.site-header .site-title, .site-header .site-description { display: none; }

.main-header-menu > .menu-item > .menu-link,
.ast-builder-menu-1 .menu-item > .menu-link {
	color: var(--ac-white) !important;
	font-family: var(--ac-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .current-menu-item > .menu-link,
.main-header-menu > .current-menu-ancestor > .menu-link {
	color: var(--ac-grey-300) !important;
}
.main-header-menu > .menu-item > .menu-link { position: relative; }
.main-header-menu > .menu-item > .menu-link::after {
	content: ""; position: absolute; left: 1em; right: 1em; bottom: 1.2em; height: 1px;
	background: currentColor; transform: scaleX(0); transform-origin: left;
	transition: transform .35s var(--ac-ease);
}
.main-header-menu > .menu-item > .menu-link:hover::after,
.main-header-menu > .current-menu-item > .menu-link::after { transform: scaleX(1); }

.main-header-menu .sub-menu {
	background: var(--ac-black) !important;
	border: 1px solid rgba(255,255,255,.12) !important;
}
.main-header-menu .sub-menu .menu-link {
	color: var(--ac-grey-300) !important;
	font-size: 13px; letter-spacing: .06em;
}
.main-header-menu .sub-menu .menu-link:hover { color: var(--ac-white) !important; background: var(--ac-grey-900) !important; }
.main-header-menu .ast-menu-toggle, .ast-header-break-point .ast-mobile-menu-trigger-minimal,
.ast-button-wrap .menu-toggle { color: var(--ac-white) !important; }
.ast-mobile-header-content, .ast-mobile-popup-drawer .ast-mobile-popup-inner {
	background: var(--ac-black) !important;
}
.ast-mobile-header-content .menu-link, .ast-mobile-popup-drawer .menu-link {
	color: var(--ac-white) !important; border-color: rgba(255,255,255,.1) !important;
}
.menu-toggle .ast-mobile-svg, .ast-mobile-menu-trigger-minimal svg { fill: var(--ac-white) !important; }

/* Voce menu "Preventivo" in evidenza */
.main-header-menu > .menu-item.ac-menu-cta > .menu-link {
	border: 1px solid rgba(255,255,255,.6);
	padding: .9em 1.6em !important;
	margin-left: .8em;
	line-height: 1;
}
.main-header-menu > .menu-item.ac-menu-cta > .menu-link::after { display: none; }
.main-header-menu > .menu-item.ac-menu-cta > .menu-link:hover {
	background: var(--ac-white); color: var(--ac-black) !important;
}

/* ==========================================================================
   Pulsanti
   ========================================================================== */
.wp-block-button__link,
.ast-button, .button, button, input[type="submit"] {
	background: var(--ac-black);
	color: var(--ac-white);
	border: 1px solid var(--ac-black);
	border-radius: var(--ac-radius) !important;
	font-family: var(--ac-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	padding: 1.15em 2.2em;
	transition: all .3s var(--ac-ease);
}
.wp-block-button__link:hover,
input[type="submit"]:hover, button:hover {
	background: var(--ac-white); color: var(--ac-black); border-color: var(--ac-black);
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--ac-black); border: 1px solid var(--ac-black);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--ac-black); color: var(--ac-white); }

/* Pulsanti su fondo scuro */
.ac-dark .wp-block-button__link,
.wp-block-cover .wp-block-button__link { background: var(--ac-white); color: var(--ac-black); border-color: var(--ac-white); }
.ac-dark .wp-block-button__link:hover,
.wp-block-cover .wp-block-button__link:hover { background: transparent; color: var(--ac-white); }
.ac-dark .wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--ac-white); border-color: rgba(255,255,255,.7);
}
.ac-dark .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--ac-white); color: var(--ac-black);
}

/* ==========================================================================
   Sezioni
   ========================================================================== */
.ac-section { padding-block: var(--ac-section); padding-inline: 24px; }
.ac-section > * { max-width: 1200px; margin-inline: auto; }
.ac-section.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: 1200px; }
.ac-narrow.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: 820px; }
.ac-section > * + * { margin-top: 1.4rem; }

.ac-dark { background: var(--ac-black); color: rgba(255,255,255,.72); }
.ac-dark h1, .ac-dark h2, .ac-dark h3, .ac-dark h4 { color: var(--ac-white); }
.ac-dark a:not(.wp-block-button__link) { color: var(--ac-white); }
.ac-soft { background: var(--ac-grey-100); }

.ac-eyebrow {
	font-family: var(--ac-sans);
	font-size: 11px !important;
	font-weight: 600;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--ac-grey-500);
	margin-bottom: .5rem !important;
}
.ac-dark .ac-eyebrow, .wp-block-cover .ac-eyebrow { color: rgba(255,255,255,.6); }
.ac-script {
	font-family: var(--ac-script);
	font-size: clamp(1.8rem, 3.5vw, 2.8rem) !important;
	line-height: 1.2;
	color: inherit;
	margin-bottom: 0 !important;
}
.ac-lead { font-family: var(--ac-serif); font-size: clamp(1.45rem, 2.4vw, 2.1rem) !important; line-height: 1.35; color: var(--ac-black); font-weight: 400; }
.ac-dark .ac-lead { color: var(--ac-white); }
.ac-rule::before {
	content: ""; display: block; width: 56px; height: 1px; background: currentColor; margin: 0 0 1.6rem; opacity: .6;
}
.has-text-align-center.ac-rule::before { margin-inline: auto; }

/* ==========================================================================
   Hero / cover
   ========================================================================== */
.wp-block-cover.ac-hero { padding: 0 24px; }
.wp-block-cover.ac-hero h1 { color: var(--ac-white); max-width: 14ch; }
.wp-block-cover.ac-hero .wp-block-cover__inner-container { max-width: 1200px; width: 100%; }
.wp-block-cover.ac-hero p:not(.ac-eyebrow):not(.ac-script) { color: rgba(255,255,255,.8); max-width: 560px; font-size: 1.1rem; }
.wp-block-cover.ac-hero .wp-block-cover__image-background { filter: grayscale(1) contrast(1.05); }
.ac-page-hero h1 { max-width: 18ch !important; }
.ac-scroll {
	font-size: 10px !important; letter-spacing: .4em; text-transform: uppercase; color: rgba(255,255,255,.55) !important;
	margin-top: 3rem !important;
}

/* ==========================================================================
   Card servizi
   ========================================================================== */
.ac-grid { gap: var(--ac-gap) !important; }
.ac-card { position: relative; background: var(--ac-white); }
.ac-card .wp-block-image { margin: 0 0 1.4rem; overflow: hidden; aspect-ratio: 4 / 5; }
.ac-card .wp-block-image img {
	width: 100%; height: 100%; object-fit: cover; filter: grayscale(1);
	transition: transform 1.1s var(--ac-ease), filter .6s var(--ac-ease);
}
.ac-card:hover .wp-block-image img { transform: scale(1.05); }
.ac-card h3 { margin: 0 0 .4rem; }
.ac-card p { margin: 0 0 1rem; font-size: 15px; }
.ac-card .ac-num { font-family: var(--ac-sans); font-size: 11px; letter-spacing: .3em; color: var(--ac-grey-500); margin-bottom: .4rem; }
.ac-card .ac-link a, .ac-link a {
	font-size: 11px; font-weight: 600; letter-spacing: .25em; text-transform: uppercase; text-decoration: none;
	border-bottom: 1px solid currentColor; padding-bottom: 4px;
}
.ac-card-dark {
	background: var(--ac-black); color: rgba(255,255,255,.72);
	padding: clamp(2rem, 4vw, 3rem); display: flex; flex-direction: column; justify-content: flex-end;
	min-height: 100%;
}
.ac-card-dark h3 { color: var(--ac-white); font-size: clamp(1.8rem, 3vw, 2.4rem); }
.ac-card-dark .ac-link a { color: var(--ac-white); }

/* ==========================================================================
   Passi / metodo
   ========================================================================== */
.ac-steps { gap: 0 !important; border-top: 1px solid rgba(255,255,255,.15); }
.ac-step { padding: 2.2rem 1.6rem 0 0; }
.ac-step .ac-step-num {
	font-family: var(--ac-serif); font-style: italic; font-size: 3rem !important; line-height: 1;
	color: var(--ac-white); margin-bottom: 1rem !important; opacity: .9;
}
.ac-step h3 { font-size: 1.35rem; margin-bottom: .6rem; }
.ac-step p { font-size: 15px; }
.ac-soft .ac-steps, .ac-light-steps { border-top-color: var(--ac-grey-300); }
.ac-soft .ac-step .ac-step-num { color: var(--ac-black); }

/* ==========================================================================
   Liste
   ========================================================================== */
.ac-check { list-style: none; padding: 0 !important; margin-left: 0 !important; }
.ac-check li {
	position: relative; padding: .9rem 0 .9rem 2rem; border-bottom: 1px solid var(--ac-grey-300);
}
.ac-dark .ac-check li { border-bottom-color: rgba(255,255,255,.15); }
.ac-check li::before {
	content: ""; position: absolute; left: 0; top: 1.55rem; width: 14px; height: 1px; background: currentColor;
}

/* Feature box */
.ac-feature { border-top: 1px solid var(--ac-black); padding-top: 1.4rem; }
.ac-feature h3 { font-size: 1.4rem; margin-bottom: .5rem; }
.ac-feature p { font-size: 15px; margin: 0; }

/* ==========================================================================
   Split immagine / testo
   ========================================================================== */
.ac-split { gap: clamp(2rem, 6vw, 6rem) !important; align-items: center; }
.ac-split .wp-block-image img { width: 100%; filter: grayscale(1); }
.ac-frame { position: relative; }
.ac-frame::after {
	content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 1px solid var(--ac-black); z-index: -1;
}
.ac-dark .ac-frame::after { border-color: rgba(255,255,255,.35); }

/* ==========================================================================
   FAQ
   ========================================================================== */
.ac-faq .wp-block-details { border-bottom: 1px solid var(--ac-grey-300); padding: 1.3rem 0; margin: 0; }
.ac-faq .wp-block-details summary {
	font-family: var(--ac-serif); font-size: 1.4rem; color: var(--ac-black); cursor: pointer; list-style: none;
	display: flex; justify-content: space-between; gap: 1rem;
}
.ac-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.ac-faq .wp-block-details summary::after { content: "+"; font-family: var(--ac-sans); font-weight: 300; transition: transform .3s var(--ac-ease); }
.ac-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.ac-faq .wp-block-details p { margin: .8rem 0 0; }

/* ==========================================================================
   Portfolio
   ========================================================================== */
.ac-portfolio { gap: 8px !important; }
.ac-portfolio .wp-block-image { margin: 0; overflow: hidden; aspect-ratio: 1; }
.ac-portfolio .wp-block-image img {
	width: 100%; height: 100%; object-fit: cover; filter: grayscale(1);
	transition: transform 1s var(--ac-ease), filter .6s;
}
.ac-portfolio .wp-block-image:hover img { transform: scale(1.04); filter: grayscale(0); }
.ac-portfolio .wp-block-image figcaption {
	position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 1rem;
	background: linear-gradient(transparent, rgba(0,0,0,.7)); color: #fff; font-size: 11px;
	letter-spacing: .25em; text-transform: uppercase; text-align: left;
}
.ac-portfolio .wp-block-image { position: relative; }

/* ==========================================================================
   Modulo contatti
   ========================================================================== */
.ac-form { display: grid; gap: 1.2rem; }
.ac-form .ac-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.ac-form label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--ac-black); margin-bottom: .4rem; }
.ac-form input[type="text"], .ac-form input[type="email"], .ac-form input[type="tel"],
.ac-form select, .ac-form textarea {
	width: 100%; border: 0; border-bottom: 1px solid var(--ac-grey-300); border-radius: 0;
	background: transparent; padding: .8rem 0; font-family: var(--ac-sans); font-size: 16px; color: var(--ac-black);
	transition: border-color .3s;
}
.ac-form input:focus, .ac-form select:focus, .ac-form textarea:focus { outline: none; border-bottom-color: var(--ac-black); }
.ac-form textarea { min-height: 140px; resize: vertical; }
.ac-form .ac-privacy { font-size: 13px; display: flex; gap: .6rem; align-items: flex-start; }
.ac-form .ac-privacy label { font-size: 13px; letter-spacing: 0; text-transform: none; font-weight: 400; color: var(--ac-grey-700); }
.ac-form .ac-hp { position: absolute !important; left: -9999px !important; }
.ac-notice { padding: 1rem 1.2rem; border: 1px solid var(--ac-black); margin-bottom: 1.5rem; font-size: 15px; }
.ac-notice.is-error { border-color: #8a1c1c; color: #8a1c1c; }

.ac-contact-list { list-style: none; padding: 0 !important; margin: 0 !important; }
.ac-contact-list li { padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.ac-contact-list strong { display: block; font-size: 11px; letter-spacing: .25em; text-transform: uppercase; color: rgba(255,255,255,.5); font-weight: 600; }

 add_filter( 'ac_contact_recipient', function () { return 'info@andreacantanna.eu'; } );

/* ==========================================================================
   Footer
   ========================================================================== */
.ac-footer { background: var(--ac-black); color: rgba(255,255,255,.6); padding: 5rem 24px 3rem; font-size: 15px; }
.ac-footer-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 3rem; }
.ac-footer img.ac-footer-logo { width: 190px; height: auto; margin-bottom: 1.2rem; }
.ac-footer h4 { color: var(--ac-white); font-family: var(--ac-sans); font-size: 11px; letter-spacing: .3em; text-transform: uppercase; font-weight: 600; margin-bottom: 1.2rem; }
.ac-footer ul { list-style: none; margin: 0; padding: 0; }
.ac-footer li { margin-bottom: .55rem; }
.ac-footer a { color: rgba(255,255,255,.75); text-decoration: none; }
.ac-footer a:hover { color: var(--ac-white); }
.ac-footer .ac-script { color: var(--ac-white); font-size: 2rem !important; }
.site-footer, .site-below-footer-wrap, .ast-footer-copyright { background: var(--ac-black) !important; color: rgba(255,255,255,.45) !important; border-top: 1px solid rgba(255,255,255,.08) !important; font-size: 12px; letter-spacing: .06em; }
.site-footer a { color: rgba(255,255,255,.7) !important; }

/* ==========================================================================
   Animazioni leggere
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
	.ac-reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--ac-ease), transform .9s var(--ac-ease); }
	.ac-reveal.is-visible { opacity: 1; transform: none; }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 921px) {
	.ac-footer-inner { grid-template-columns: 1fr 1fr; }
	.ac-grid.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.ac-steps.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.ac-frame::after { display: none; }
}
@media (max-width: 600px) {
	body { font-size: 16px; }
	.ac-footer-inner { grid-template-columns: 1fr; gap: 2rem; }
	.ac-grid.is-layout-grid, .ac-steps.is-layout-grid, .ac-portfolio.is-layout-grid { grid-template-columns: 1fr !important; }
	.ac-form .ac-row { grid-template-columns: 1fr; }
	.site-header .custom-logo-link img { width: 120px; }
}

.ac-contact-box { padding: clamp(2rem, 4vw, 3rem); }
.ac-contact .wp-block-column { align-self: stretch; }
.ac-anchor { display: block; position: relative; top: -80px; }
html { scroll-behavior: smooth; }

/* Rifiniture */
.ac-card h3 a, .ac-portfolio a { text-decoration: none; }
.ac-card h3 a:hover { color: var(--ac-grey-500); }
.wp-block-cover.ac-hero h1 { max-width: 17ch; }
.ac-contact .wp-block-column > .ac-contact-box { height: 100%; }
.ac-feature p, .ac-step p { hyphens: auto; }
