/* AK Photography — theme styles */

:root {
	--ak-gap: clamp(0.75rem, 1.6vw, 1.25rem);
	--ak-line: rgba(34, 32, 30, 0.14);
	--ak-ease: cubic-bezier(.25, .6, .3, 1);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.ak-main .wp-block-post-content > * { margin-block-start: 0; margin-block-end: 0; }
img { height: auto; max-width: 100%; }
::selection { background: var(--wp--preset--color--stone); }

:focus-visible { outline: 2px solid var(--wp--preset--color--charcoal); outline-offset: 3px; }

/* ---------- Header ---------- */
.ak-header-wrap { position: sticky; top: 0; z-index: 50; }
.admin-bar .ak-header-wrap { top: 32px; }
@media (max-width: 782px) { .admin-bar .ak-header-wrap { top: 0; } }
.ak-header { border-bottom: 1px solid var(--ak-line); background: rgba(250, 247, 242, .94) !important; backdrop-filter: saturate(140%) blur(8px); }

.ak-logo { margin: 0; line-height: 1; display: flex; flex-direction: column; gap: .3rem; }
.ak-logo a { font-family: var(--wp--preset--font-family--serif); font-size: 1.65rem; font-weight: 500; letter-spacing: .01em; text-decoration: none; color: var(--wp--preset--color--ink); }
.ak-logo span { font-size: .66rem; letter-spacing: .28em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.ak-logo--light a { color: var(--wp--preset--color--base); }
.ak-logo--light span { color: var(--wp--preset--color--stone); }

.ak-nav a { text-decoration: none; padding-block: .35rem; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .35s var(--ak-ease); }
.ak-nav a:hover, .ak-nav .current-menu-item > a, .ak-nav a[aria-current="page"] { background-size: 100% 1px; }
.ak-nav .ak-nav-cta > a { border: 1px solid var(--wp--preset--color--charcoal); padding: .6rem 1.15rem; background: none; transition: background-color .3s, color .3s; }
.ak-nav .ak-nav-cta > a:hover { background: var(--wp--preset--color--charcoal); color: var(--wp--preset--color--base); }

/* Mobile menu overlay */
.ak-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--base); padding: 1.5rem; }
.ak-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; }
.ak-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.4rem; }
.ak-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a { font-family: var(--wp--preset--font-family--serif); font-size: 2.1rem; letter-spacing: 0; text-transform: none; }
.ak-nav .wp-block-navigation__responsive-container.is-menu-open .ak-nav-cta > a { border: 0; padding: 0; }
.ak-nav .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }

/* ---------- Type helpers ---------- */
.ak-eyebrow { font-size: .75rem !important; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--wp--preset--color--muted); margin-bottom: 1rem !important; }
.ak-lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.65; color: var(--wp--preset--color--charcoal); max-width: 38rem; }
.has-text-align-center.ak-lead { margin-inline: auto; }
.ak-statement { font-family: var(--wp--preset--font-family--serif); font-size: clamp(1.55rem, 2.8vw, 2.3rem); line-height: 1.35; color: var(--wp--preset--color--ink); }
.ak-num { font-family: var(--wp--preset--font-family--serif); font-style: italic; font-size: 1.15rem; color: var(--wp--preset--color--muted); margin: 1.4rem 0 .2rem !important; }
.ak-small-note { font-size: .95rem; color: var(--wp--preset--color--muted); font-style: italic; }
.ak-arrow-link a { font-size: .8rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: .25rem; }
.ak-arrow-link a::after { content: " →"; display: inline-block; transition: transform .3s var(--ak-ease); }
.ak-arrow-link a:hover::after { transform: translateX(4px); }
.ak-hero-title { font-size: clamp(2.7rem, 6vw, 5.4rem) !important; line-height: 1.04 !important; font-weight: 400; }

/* ---------- Sections ---------- */
.ak-section { padding-block: var(--wp--preset--spacing--60); }
.ak-section--tight { padding-block: var(--wp--preset--spacing--40); }
.ak-section--flush-top { padding-top: 0; }
.ak-bg-sand { background: var(--wp--preset--color--sand); }
.ak-dark { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--stone); }
.ak-dark :where(h1, h2, h3) { color: var(--wp--preset--color--base); }
.ak-intro { padding-block: var(--wp--preset--spacing--60); }
.ak-intro > * { max-width: 860px; }
.ak-section-head { margin-bottom: var(--wp--preset--spacing--50) !important; max-width: 1320px; margin-inline: auto !important; }
.ak-section-head h2 { margin-top: 0; }
.ak-center { text-align: center; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .3s var(--ak-ease), color .3s var(--ak-ease), border-color .3s; }
.wp-block-button.is-style-outline > .wp-block-button__link { border: 1px solid currentColor; background: transparent; color: inherit; padding: calc(1rem - 1px) calc(2rem - 1px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--charcoal); border-color: var(--wp--preset--color--charcoal); color: var(--wp--preset--color--base); }
.ak-section .wp-block-buttons { margin-top: 2rem; }

/* ---------- Cover hero ---------- */
.ak-hero.wp-block-cover { padding: var(--wp--preset--spacing--60) clamp(1rem, 5vw, 4rem); }
.ak-hero .wp-block-cover__inner-container { max-width: 1320px; margin-inline: auto; width: 100%; color: #fff; }
.ak-hero .wp-block-cover__inner-container > * { max-width: 46rem; }
.ak-hero .ak-eyebrow { color: rgba(255, 255, 255, .85); }
.ak-hero h1 { color: #fff; margin-top: 0; }
.ak-hero-text { font-size: clamp(1.05rem, 1.5vw, 1.25rem); max-width: 34rem; color: rgba(255, 255, 255, .92); }
.ak-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); }
.ak-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #fff; }
.ak-hero .wp-block-cover__background { background: linear-gradient(to top, rgba(22, 21, 20, .62), rgba(22, 21, 20, .08) 65%) !important; opacity: 1 !important; }

/* ---------- Split layouts ---------- */
.ak-split { gap: var(--wp--preset--spacing--50) !important; align-items: center !important; }
.ak-split .wp-block-column > h1, .ak-split .wp-block-column > h2 { margin-top: 0; }
.ak-split--hero .wp-block-image img,
.ak-page-hero-img img, .ak-hero-img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ak-home-hero { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.ak-home-hero .ak-split { align-items: center !important; }
.ak-home-hero .wp-block-column:first-child { flex: 1 1 0 !important; }
.ak-home-hero .wp-block-column:last-child { flex: 0 0 52% !important; }
.ak-page-title { font-size: clamp(2.4rem, 4.6vw, 4.2rem) !important; line-height: 1.06 !important; }
.ak-about-img img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.ak-contact-img { margin-top: 2.5rem !important; }
.ak-contact-img img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }

/* ---------- Service cards ---------- */
.ak-services { gap: var(--wp--preset--spacing--40) !important; }
.ak-services--two { gap: var(--wp--preset--spacing--50) !important; }
.ak-card-img { overflow: hidden; margin-bottom: 0 !important; }
.ak-card-img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 1.1s var(--ak-ease); }
.ak-services--two .ak-card-img img { aspect-ratio: 5 / 4; }
.ak-services .wp-block-column:hover .ak-card-img img { transform: scale(1.025); }
.ak-services h3 { margin-top: 0; }

.ak-three, .ak-four { gap: var(--wp--preset--spacing--40) !important; }
.ak-three h3, .ak-four h3 { font-size: 1.6rem; margin-top: 0; }
.ak-four .ak-num { margin-top: 0 !important; }
.ak-three .wp-block-column, .ak-four .wp-block-column { border-top: 1px solid var(--ak-line); padding-top: 1.5rem; }

/* ---------- Gallery (masonry) ---------- */
.ak-masonry { column-count: 3; column-gap: var(--ak-gap); max-width: 1320px; margin-inline: auto !important; }
.ak-masonry > .wp-block-image { break-inside: avoid; margin: 0 0 var(--ak-gap) !important; overflow: hidden; display: block; }
.ak-masonry > .wp-block-image img { width: 100%; display: block; transition: transform 1.1s var(--ak-ease), opacity .4s; }
.ak-masonry > .wp-block-image:hover img { transform: scale(1.02); }
.ak-masonry--soft { column-gap: calc(var(--ak-gap) * 1.6); }
.ak-masonry--soft > .wp-block-image { margin-bottom: calc(var(--ak-gap) * 1.6) !important; }
@media (max-width: 900px) { .ak-masonry { column-count: 2; } }
@media (max-width: 480px) { .ak-masonry { column-count: 1; } }

.ak-fullbleed { margin: 0 auto !important; }
.ak-fullbleed img { width: 100%; max-height: 88vh; object-fit: cover; display: block; }

/* ---------- Lists ---------- */
.ak-plain-list { list-style: none; padding: 0; margin: 0; }
.ak-plain-list li { margin: 0 0 .45rem; }
.ak-plain-list a { text-decoration: none; }
.ak-plain-list a:hover { text-decoration: underline; }
.ak-check-list { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.ak-check-list li { padding: 1rem 0 1rem 2rem; border-bottom: 1px solid var(--ak-line); position: relative; }
.ak-check-list li:first-child { border-top: 1px solid var(--ak-line); }
.ak-check-list li::before { content: ""; position: absolute; left: .2rem; top: 1.6rem; width: .9rem; height: 1px; background: var(--wp--preset--color--muted); }

/* ---------- Reviews ---------- */
.ak-reviews { gap: var(--wp--preset--spacing--40) !important; }
.ak-reviews .wp-block-quote { margin: 0; padding: 0; font-size: 1.35rem; }
.ak-reviews .wp-block-quote::before { content: "“"; display: block; font-family: var(--wp--preset--font-family--serif); font-size: 4rem; line-height: .6; color: var(--wp--preset--color--muted); margin-bottom: .6rem; }
.ak-reviews .wp-block-quote cite { display: block; margin-top: 1.1rem; font-family: var(--wp--preset--font-family--sans); font-style: normal; font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--wp--preset--color--muted); }

/* ---------- CTA band ---------- */
.ak-cta-band { background: var(--wp--preset--color--charcoal); color: var(--wp--preset--color--stone); padding-block: var(--wp--preset--spacing--70); }
.ak-cta-band h2 { color: var(--wp--preset--color--base); font-size: clamp(2.2rem, 4.5vw, 3.8rem); margin-top: 0; }
.ak-cta-band .ak-eyebrow { color: var(--wp--preset--color--stone); }
.ak-cta-band .ak-lead { color: var(--wp--preset--color--stone); }
.ak-cta-band .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); }
.ak-cta-band .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #fff; }
.ak-cta-band .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--base); }
.ak-cta-band .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--base); }

/* ---------- Footer ---------- */
.ak-footer { font-size: .95rem; }
.ak-footer .ak-eyebrow { color: var(--wp--preset--color--stone); opacity: .75; }
.ak-footer a { text-decoration: none; }
.ak-footer a:hover { text-decoration: underline; }
.ak-footer-base { border-top: 1px solid rgba(217, 207, 193, .18); opacity: .8; }
.ak-footer-base p { margin: 0; }

/* ---------- Enquiry form ---------- */
.ak-form-wrap { background: var(--wp--preset--color--sand); padding: clamp(1.5rem, 4vw, 3rem); scroll-margin-top: 110px; }
.ak-form { display: grid; gap: 1.25rem; }
.ak-field { display: grid; gap: .45rem; }
.ak-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.ak-field label { font-size: .75rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--charcoal); }
.ak-field label span { text-transform: none; letter-spacing: 0; font-weight: 300; color: var(--wp--preset--color--muted); }
.ak-field input, .ak-field select, .ak-field textarea {
	font: inherit; font-size: 1rem; color: var(--wp--preset--color--ink); width: 100%;
	background: var(--wp--preset--color--base); border: 1px solid transparent; border-bottom-color: var(--wp--preset--color--stone);
	padding: .85rem .9rem; border-radius: 0; transition: border-color .25s; -webkit-appearance: none; appearance: none;
}
.ak-field select { background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 2.5rem; }
.ak-field input:focus, .ak-field select:focus, .ak-field textarea:focus { outline: none; border-color: var(--wp--preset--color--charcoal); }
.ak-field--check { grid-template-columns: auto 1fr; align-items: start; gap: .75rem; }
.ak-field--check input { width: 1.1rem; height: 1.1rem; padding: 0; margin-top: .2rem; -webkit-appearance: auto; appearance: auto; accent-color: var(--wp--preset--color--charcoal); }
.ak-field--check label { text-transform: none; letter-spacing: 0; font-weight: 300; font-size: .95rem; }
.ak-form .wp-block-button__link { border: 0; cursor: pointer; width: 100%; }
.ak-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ak-form-notice { padding: 1.25rem 1.5rem; margin-bottom: 1.5rem; background: var(--wp--preset--color--base); border-left: 2px solid var(--wp--preset--color--charcoal); }
.ak-form-notice p { margin: 0; }
.ak-form-notice__title { font-family: var(--wp--preset--font-family--serif); font-size: 1.5rem; margin-bottom: .3rem !important; }
.ak-form-notice--error { border-left-color: #8a3b2e; }
.ak-split--contact { align-items: flex-start !important; }
.ak-contact-list li { font-size: 1.05rem; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.ak-split--hero, .ak-home-hero .ak-split { flex-direction: column-reverse; }
	.ak-home-hero .wp-block-column:last-child, .ak-home-hero .wp-block-column:first-child { flex: 1 1 auto !important; }
	.ak-home-hero { padding-top: 1rem; }
	.ak-split--hero .wp-block-image img, .ak-hero-img img, .ak-page-hero-img img { aspect-ratio: 4 / 4.4; }
	.ak-field-row { grid-template-columns: 1fr; }
	.ak-section { padding-block: var(--wp--preset--spacing--50); }
	.ak-cta-band { padding-block: var(--wp--preset--spacing--60); }
	.ak-hero.wp-block-cover { min-height: 78vh !important; }
	.ak-logo a { font-size: 1.4rem; }
	.ak-reviews .wp-block-column + .wp-block-column { border-top: 1px solid var(--ak-line); padding-top: 2rem; }
}

/* ---------- Fixes ---------- */
.ak-form *, .ak-form *::before, .ak-form *::after { box-sizing: border-box; }
.ak-field input, .ak-field select, .ak-field textarea { max-width: 100%; min-width: 0; }
.ak-services h3, .ak-three h3, .ak-four h3 { font-size: clamp(1.7rem, 2.4vw, 2.2rem) !important; line-height: 1.15; }
@media (max-width: 781px) {
	.ak-contact-img { display: none; }
	.ak-hero--page .wp-block-cover__image-background { object-position: 62% 50% !important; }
}

/* ---------- Weddings (secondary) ---------- */
.ak-wed-band .wp-block-column:first-child { flex: 0 0 55% !important; }
.ak-wed-band-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ak-chapter { gap: var(--wp--preset--spacing--40) !important; align-items: flex-end !important; }
.ak-chapter .wp-block-column:first-child { flex: 0 0 30% !important; align-self: center; }
.ak-chapter .wp-block-column:first-child h2 { margin-top: 0; }
.ak-chapter .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
@media (max-width: 781px) {
	.ak-wed-band .wp-block-column:first-child, .ak-chapter .wp-block-column:first-child { flex: 1 1 auto !important; }
	.ak-chapter .wp-block-image img { aspect-ratio: 3 / 2; }
}

/* ---------- Single review ---------- */
.ak-review-single { max-width: 820px; margin-inline: auto !important; text-align: center; }
.ak-review-single .wp-block-quote { margin: 0 auto; padding: 0; border: 0; font-size: clamp(1.45rem, 2.6vw, 2rem); line-height: 1.4; }
.ak-review-single .wp-block-quote::before { content: "“"; display: block; font-family: var(--wp--preset--font-family--serif); font-size: 5rem; line-height: .6; color: var(--wp--preset--color--muted); margin-bottom: .8rem; }
.ak-review-single .wp-block-quote cite { display: block; margin-top: 1.5rem; font-family: var(--wp--preset--font-family--sans); font-style: normal; font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.ak-review-link { margin-top: 2rem !important; font-size: .95rem; color: var(--wp--preset--color--muted); }

/* ---------- Logo image ---------- */
.ak-logo--img { display: block; line-height: 0; }
.ak-logo--img a { display: inline-block; }
.ak-logo--img img { height: 68px; width: auto; display: block; }
.ak-header { padding-top: .6rem !important; padding-bottom: .6rem !important; }
.ak-logo--footer img { height: 130px; margin-bottom: 1rem; }
@media (max-width: 781px) { .ak-logo--img img { height: 52px; } .ak-logo--footer img { height: 110px; } }
.cf-turnstile { min-height: 65px; }

/* ---------- Intro text + FAQ ---------- */
.ak-split--text { align-items: flex-start !important; }
.ak-split--text .wp-block-column:first-child { flex: 0 0 36% !important; }
.ak-split--text .wp-block-column:last-child p { max-width: 40rem; }
.ak-faq { max-width: 820px; margin-inline: auto !important; }
.ak-faq .wp-block-details { border-top: 1px solid var(--ak-line); padding: 1.15rem 0; margin: 0 !important; }
.ak-faq .wp-block-details:last-child { border-bottom: 1px solid var(--ak-line); }
.ak-faq summary { cursor: pointer; list-style: none; font-family: var(--wp--preset--font-family--serif); font-size: clamp(1.2rem, 2vw, 1.45rem); color: var(--wp--preset--color--ink); padding-right: 2.5rem; position: relative; }
.ak-faq summary::-webkit-details-marker { display: none; }
.ak-faq summary::after { content: "+"; position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); font-family: var(--wp--preset--font-family--sans); font-weight: 300; font-size: 1.5rem; color: var(--wp--preset--color--muted); transition: transform .3s var(--ak-ease); }
.ak-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.ak-faq details p { margin: .8rem 0 0; max-width: 42rem; }
@media (max-width: 781px) { .ak-split--text .wp-block-column:first-child { flex: 1 1 auto !important; } }
