/*
Theme Name: FilmFiks
Theme URI: https://www.filmfiks.no/
Author: FilmFiks
Description: Eget tema for FilmFiks – digitalisering av video, smalfilm og bilder i Tromsø. Seriøst, personlig og lett å lese. Inneholder oppsett av alle sider og en «Kommer snart»-sperre til nettsiden publiseres.
Version: 1.0.3
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: filmfiks
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.wp-site-blocks > * { margin-block-start: 0; }
.ff-main { margin-block-start: 0; padding: 0; }
.wp-block-post-content > .alignfull { margin-block-start: 0 !important; margin-block-end: 0 !important; }
a:focus-visible, .wp-element-button:focus-visible { outline: 3px solid var(--wp--preset--color--brown); outline-offset: 3px; }
p { margin-block-end: 0; }
h1, h2, h3 { text-wrap: balance; }
img { height: auto; }

/* ---------- Header ---------- */
.ff-header { background: var(--wp--preset--color--sand); padding-top: 18px; border-bottom: 1px solid var(--wp--preset--color--line); }
.ff-header__top { gap: 16px; }
.ff-brand { gap: 14px; }
.ff-brand .wp-block-site-logo img { width: 84px; height: auto; }
.ff-brand .wp-block-site-title { margin: 0; font-family: var(--wp--preset--font-family--courier); font-weight: 700; font-size: 28px; line-height: 1; }
.ff-brand .wp-block-site-title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.ff-phone { margin: 0; text-align: right; line-height: 1.15; }
.ff-phone__label { display: block; font-size: 15px; color: #5d554d; }
.ff-phone a { font-family: var(--wp--preset--font-family--courier); font-weight: 700; font-size: 30px; color: var(--wp--preset--color--ink); text-decoration: none; letter-spacing: .5px; }
.ff-phone a:hover { color: var(--wp--preset--color--brown); }
.ff-header__nav { margin-top: 14px; padding: 10px 0; border-top: 1px solid var(--wp--preset--color--line); gap: 12px; }
.ff-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--ink); text-decoration: none; padding: 6px 2px; }
.ff-nav .wp-block-navigation-item__content:hover,
.ff-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--brown); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.ff-nav.wp-block-navigation { gap: 26px; }
.ff-nav .wp-block-navigation__submenu-container { background: var(--wp--preset--color--white) !important; border: 1px solid var(--wp--preset--color--line) !important; border-radius: 4px; padding: 8px 0; min-width: 240px !important; box-shadow: 0 10px 30px rgba(30, 27, 24, .12); }
.ff-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 18px; font-size: 16px; }
.ff-mail { margin: 0; font-size: 16px; }
.ff-mail a { color: var(--wp--preset--color--ink); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--sand) !important; padding: 28px 24px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 20px; }

/* ---------- Sections ---------- */
.ff-section { padding-top: clamp(48px, 7vw, 88px); padding-bottom: clamp(48px, 7vw, 88px); }
.ff-section.ff-first { padding-top: clamp(40px, 5vw, 64px); }
.ff-section--alt { background: var(--wp--preset--color--linen); }
.ff-section > .wp-block-heading.has-text-align-center + p.has-text-align-center { max-width: 720px; margin-inline: auto; }
.ff-section > .wp-block-heading.has-text-align-center { margin-bottom: 8px; }
.wp-block-columns { gap: clamp(24px, 4vw, 56px); }
.ff-cols-tight { gap: 8px; margin-block: 0; }

/* ---------- Text ---------- */
.ff-lead { font-style: italic; font-size: clamp(20px, 2vw, 23px); line-height: 1.55; }
.ff-lead-plain { font-size: clamp(19px, 1.9vw, 21px); }
.ff-small { font-size: 16px; color: #5d554d; }
.ff-signature { font-size: 20px; }
.ff-dash { list-style: none; padding-left: 0; margin: 0; }
.ff-dash li { padding-left: 1.2em; position: relative; margin: 4px 0; }
.ff-dash li::before { content: "–"; position: absolute; left: 0; color: var(--wp--preset--color--brown); }

/* ---------- Cards / grids ---------- */
.ff-grid { gap: 20px; margin-top: 28px; }
.ff-card { background: var(--wp--preset--color--white); border: 1px solid var(--wp--preset--color--line); border-radius: 4px; padding: 26px 24px; }
.ff-card > :first-child { margin-top: 0; }
.ff-card h3 { margin-bottom: 10px; }
.ff-card p { font-size: 18px; }
.ff-card--wide { margin-top: 20px; }
.ff-card--link { position: relative; padding: 20px; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.ff-card--link h3 { margin: 0; font-size: 20px; }
.ff-card--link h3 a { color: var(--wp--preset--color--ink); text-decoration: none; }
.ff-card--link h3 a::after { content: ""; position: absolute; inset: 0; }
.ff-card--link:hover { transform: translateY(-2px); border-color: var(--wp--preset--color--brown); box-shadow: 0 8px 22px rgba(30, 27, 24, .10); }
.ff-card--link:hover h3 a { color: var(--wp--preset--color--brown); }
.ff-card__price { color: var(--wp--preset--color--brown); font-size: 16px !important; margin-top: 6px; }
.ff-grid--steps .ff-card h3 { color: var(--wp--preset--color--brown); }

/* ---------- Price box ---------- */
.ff-narrow { max-width: 680px; margin-inline: auto !important; }
.ff-pricebox { padding: 32px 30px; }
.ff-pricebox h2 { font-size: 24px; margin: 0 0 6px; }
.ff-price, .ff-card .ff-price { font-family: var(--wp--preset--font-family--courier); font-weight: 700; font-size: clamp(26px, 3vw, 32px); color: var(--wp--preset--color--brown); margin: 0 0 8px; line-height: 1.2; }
.ff-pricebox .wp-block-buttons { margin-top: 22px; }

/* ---------- Price table ---------- */
.ff-card--table { padding: 6px 26px; max-width: 860px; margin: 32px auto 28px !important; }
.ff-prices { margin: 0; }
.ff-prices table { width: 100%; border-collapse: collapse; }
.ff-prices th, .ff-prices td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: 14px 6px; text-align: left; vertical-align: top; }
.ff-prices thead th { font-family: var(--wp--preset--font-family--courier); font-size: 17px; border-bottom: 2px solid var(--wp--preset--color--ink); }
.ff-prices tbody tr:last-child td { border-bottom: 0; }
.ff-prices td:last-child, .ff-prices th:last-child { text-align: right; font-weight: 700; white-space: nowrap; }

/* ---------- Images ---------- */
.ff-photo { margin: 0; }
.ff-photo img { width: 100%; border-radius: 4px; box-shadow: 0 14px 34px rgba(30, 27, 24, .16); }
.ff-photo--center { max-width: 760px; margin: 28px auto 0 !important; }

/* ---------- Covers (hero, testimonial, CTA) ---------- */
.ff-hero, .ff-cta, .ff-testimonial { padding-left: 20px; padding-right: 20px; }
.ff-hero { padding-top: clamp(48px, 7vw, 96px); padding-bottom: clamp(48px, 7vw, 96px); }
.ff-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(246, 241, 234, .97) 0%, rgba(246, 241, 234, .93) 50%, rgba(246, 241, 234, .45) 100%) !important; opacity: 1 !important; }
.ff-hero .wp-block-cover__inner-container { color: var(--wp--preset--color--ink); }
.ff-hero h1 { font-size: clamp(32px, 4.4vw, 50px); }
.ff-cta, .ff-testimonial { padding-top: clamp(64px, 9vw, 120px); padding-bottom: clamp(64px, 9vw, 120px); }
.ff-cta .wp-block-cover__inner-container, .ff-testimonial .wp-block-cover__inner-container { max-width: 760px; margin-inline: auto; color: var(--wp--preset--color--ink); }
.ff-cta .wp-block-cover__background { opacity: .86 !important; }
.ff-quote-author { font-weight: 700; margin-top: 10px !important; }
.ff-quote-author + .ff-quote { margin-top: 44px !important; }
.ff-quote { font-size: clamp(21px, 2.4vw, 26px); font-style: italic; line-height: 1.5; max-width: 760px; margin-inline: auto; }
.ff-testimonial .wp-block-buttons { margin-top: 44px; }
.ff-card--wide .wp-block-buttons { margin-top: 18px; }

/* ---------- Buttons ---------- */
.wp-block-button__link { text-decoration: none; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.wp-block-button__link::after { content: "\2192"; display: inline-block; margin-left: .6em; transition: transform .15s ease; }
.wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--ink) !important; color: var(--wp--preset--color--sand) !important; border-color: var(--wp--preset--color--ink) !important; }
.wp-block-buttons { gap: 14px; }

/* ---------- Contact ---------- */
.ff-contact { margin-top: 26px; }
.ff-contact p { margin: 0 0 16px; font-size: 18px; line-height: 1.35; }
.ff-contact p:last-child { margin-bottom: 0; }
.ff-label { font-size: 15px; color: #5d554d; }
.ff-contact a { font-family: var(--wp--preset--font-family--courier); font-weight: 700; font-size: 22px; color: var(--wp--preset--color--ink); text-decoration: none; }
.ff-contact a:hover { color: var(--wp--preset--color--brown); text-decoration: underline; }

/* ---------- Footer ---------- */
.ff-footer { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--sand); padding: 52px 20px; }
.ff-footer p { font-size: 17px; margin: 6px 0 0; }
.ff-footer a { color: var(--wp--preset--color--sand); text-decoration: none; border-bottom: 1px solid rgba(246, 241, 234, .4); }
.ff-footer a:hover { border-bottom-color: var(--wp--preset--color--sand); }
.ff-footer__name { font-family: var(--wp--preset--font-family--courier); font-weight: 700; font-size: 26px !important; }
.ff-footer__legal { font-size: 15px !important; opacity: .8; margin-top: 18px !important; }

/* ---------- Tablet ---------- */
@media (min-width: 782px) and (max-width: 1024px) {
	.ff-grid.is-layout-grid:not(.ff-grid--formats) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.ff-grid.is-layout-grid { grid-template-columns: 1fr !important; }
	.ff-grid--formats.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.ff-header { padding-top: 12px; }
	.ff-brand .wp-block-site-logo img { width: 64px; }
	.ff-brand .wp-block-site-title { font-size: 22px; }
	.ff-phone { text-align: left; }
	.ff-phone a { font-size: 24px; }
	.ff-header__top { justify-content: space-between; }
	.ff-mail { display: none; }
	.ff-hero .wp-block-cover__background { background: rgba(246, 241, 234, .92) !important; }
	.ff-hero .wp-block-column:empty { display: none; }
	.ff-prices td, .ff-prices th { padding: 12px 2px; font-size: 16px; }
	.ff-prices td:last-child { white-space: normal; }
	.ff-card--table { padding: 4px 16px; }
	.wp-block-buttons > .wp-block-button { width: 100%; }
	.wp-block-buttons > .wp-block-button .wp-block-button__link { width: 100%; text-align: center; }
}
@media (max-width: 480px) {
	.ff-phone__label { font-size: 13px; }
	.ff-phone a { font-size: 21px; }
	.ff-brand .wp-block-site-title { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; scroll-behavior: auto !important; }
}
