/*
Theme Name: Ozeki Corporate
Theme URI: https://github.com/ozekihiroshi/ozeki-corporate
Author: Hiroshi Ozeki
Author URI: https://profiles.wordpress.org/ozekihiroshi/
Description: A lightweight corporate block theme designed for international use with first-class Japanese typography.
Version: 0.3.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ozeki-corporate
Domain Path: /languages
Tags: block-patterns, full-site-editing, custom-colors, custom-logo, editor-style, featured-images, translation-ready, wide-blocks
*/

html { scroll-behavior: smooth; }
body { line-break: strict; overflow-wrap: anywhere; text-rendering: optimizeLegibility; }
:where(h1, h2, h3, h4, h5, h6, .wp-block-navigation-item__label) { word-break: auto-phrase; }
:where(a) { text-underline-offset: 0.16em; text-decoration-thickness: 0.08em; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent); outline-offset: 3px;
}
.wp-site-blocks { min-height: 100vh; }
/* Classic content may have inline pixel widths or unwrapped preformatted text. */
:where(.wp-block-post-content, .wp-block-comment-content) .wp-caption { max-width: 100%; }
:where(.wp-block-post-content, .wp-block-comment-content) img { max-width: 100%; height: auto; }
:where(.wp-block-post-content, .wp-block-comment-content) pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.wp-block-post-title a { text-decoration: none; }
.wp-block-post-title a:hover, .wp-block-post-title a:focus-visible { text-decoration: underline; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Opt-in block styles keep the default canvas quiet. */
.wp-block-image.is-style-soft-shadow img {
	box-shadow: 0 0.75rem 1.875rem rgb(23 33 43 / 12%);
}
.wp-block-group.is-style-key-point {
	background: var(--wp--preset--color--surface);
	border-inline-start: 4px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	padding: var(--wp--preset--spacing--40);
}
@media (forced-colors: active) {
	.wp-block-image.is-style-soft-shadow img { box-shadow: none; border: 1px solid CanvasText; }
	.wp-block-group.is-style-key-point { border-color: CanvasText; }
}

/* Optional composition classes shared by the editor and the front end. */
.oc-section { padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); margin-block-start: 0; }
.oc-section-inner { width: 100%; }
.oc-section-inner > * { max-width: none; }
.oc-section-inner > p { max-width: 52rem; margin-inline: 0 !important; }
.home .wp-site-blocks > main { margin-block-start: 0; }
.oc-section-inner > h2 { margin-block: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40); }
.oc-eyebrow, .oc-number, .oc-text-link, .oc-demo-note { font-family: var(--wp--preset--font-family--sans); }
.oc-eyebrow { font-size: .75rem; letter-spacing: .12em; font-weight: 650; color: var(--wp--preset--color--accent-dark); }
.oc-lead { font-size: clamp(1.15rem, 2vw, 1.35rem); }
.oc-demo-note { font-size: .75rem; line-height: 1.7; color: var(--wp--preset--color--muted); }
.oc-text-link { font-size: .9rem; font-weight: 600; }
.oc-soft { background: var(--wp--preset--color--surface); }
.oc-hero { background: var(--wp--preset--color--surface); padding-block: var(--wp--preset--spacing--60); }
.oc-hero-columns { align-items: center !important; gap: var(--wp--preset--spacing--50); }
.oc-hero h1 { font-size: clamp(2rem, 3.8vw, 3.2rem); line-height: 1.3; letter-spacing: 0; margin-block: var(--wp--preset--spacing--30); }
.oc-hero .wp-block-image img { aspect-ratio: 5 / 4; object-fit: cover; border-radius: 2px; }
.oc-hero .wp-block-buttons { margin-block: var(--wp--preset--spacing--40); }
.oc-story { gap: var(--wp--preset--spacing--50); align-items: center !important; }
.oc-story .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; }
.oc-card-grid { gap: var(--wp--preset--spacing--40); margin-block-start: var(--wp--preset--spacing--50); align-items: stretch !important; }
.oc-card-grid > .wp-block-column { display: flex; min-width: 0; }
.oc-card { width: 100%; background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--border); border-radius: 3px; overflow: hidden; }
.oc-card .wp-block-image { margin: 0; }
.oc-card .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.oc-card-body { padding: var(--wp--preset--spacing--40); margin-block-start: 0 !important; }
.oc-card-body h3 { margin-block: var(--wp--preset--spacing--20); }
.oc-card-body h3 a { color: inherit; text-decoration: none; }
.oc-card-body h3 a:hover { text-decoration: underline; }
.oc-steps { gap: var(--wp--preset--spacing--50); margin-block: var(--wp--preset--spacing--50); }
.oc-steps > .wp-block-column { border-top: 1px solid var(--wp--preset--color--border); padding-top: var(--wp--preset--spacing--40); }
.oc-number { color: var(--wp--preset--color--accent); font-size: 1.5rem; margin-block: 0 var(--wp--preset--spacing--20); }
.oc-cta { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--base); }
.oc-cta .oc-eyebrow { color: #8ed5c6; }
.oc-cta .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.oc-header { padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); border-bottom: 1px solid var(--wp--preset--color--border); }
.oc-header-row { display: flex; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--50); }
.oc-header-row > * { margin: 0 !important; }
.oc-header .wp-block-site-title { font: 700 1.1rem/1.3 var(--wp--preset--font-family--sans); flex-shrink: 0; }
.oc-header .wp-block-site-title a { text-decoration: none; }
.oc-header .wp-block-navigation { font-size: .85rem; }
.oc-header .wp-block-navigation__container { gap: var(--wp--preset--spacing--40); }
.oc-footer { padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); border-top: 1px solid var(--wp--preset--color--border); margin-block-start: 0; }
.oc-footer-columns { justify-content: space-between; gap: var(--wp--preset--spacing--60); }
.oc-footer-columns > .wp-block-column:last-child { flex-basis: 30% !important; }
.oc-footer .oc-demo-note { border-top: 1px solid var(--wp--preset--color--border); padding-top: var(--wp--preset--spacing--40); }
.oc-archive-entry { padding-block-end: var(--wp--preset--spacing--50); margin-block-end: var(--wp--preset--spacing--50); border-bottom: 1px solid var(--wp--preset--color--border); }
.oc-english { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.oc-english p { font-family: inherit; line-height: 1.75; }
.wp-block-post-content .wp-block-details { border-block-end: 1px solid var(--wp--preset--color--border); padding: var(--wp--preset--spacing--30) 0; }
.wp-block-post-content .wp-block-details summary { cursor: pointer; font-family: var(--wp--preset--font-family--sans); font-weight: 600; }
/* Tables also appear directly in templates and patterns, outside post-content.
   Keep native table semantics and allow long values to wrap at narrow widths. */
.wp-block-table { overflow-x: auto; }
.wp-block-table th { text-align: start; min-width: 6em; background: var(--wp--preset--color--surface); }
.wp-block-table :is(th, td) { padding: var(--wp--preset--spacing--30); border-color: var(--wp--preset--color--border); vertical-align: top; overflow-wrap: anywhere; }
@media (max-width: 900px) {
    .oc-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
    .oc-header .wp-block-navigation__responsive-container-open { display: flex; }
    .oc-header .wp-block-navigation__responsive-container.is-menu-open { padding: var(--wp--preset--spacing--50); }
    .oc-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: var(--wp--preset--spacing--40); font-size: 1.15rem; }
}
@media (max-width: 781px) {
    .oc-section { padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30); }
    .oc-hero h1 { font-size: clamp(1.9rem, 6.5vw, 2.6rem); }
    .oc-hero-columns, .oc-story { gap: var(--wp--preset--spacing--40); }
    .oc-card-grid { gap: var(--wp--preset--spacing--40); }
    .oc-card-body { padding: var(--wp--preset--spacing--30); }
    .oc-header { padding: var(--wp--preset--spacing--30); }
    .oc-header-row { gap: var(--wp--preset--spacing--30); }
    .oc-header .wp-block-site-title { font-size: 1rem; flex-shrink: 1; }
    .oc-footer-columns { gap: var(--wp--preset--spacing--40); }
    .wp-block-table :is(th, td) { padding: var(--wp--preset--spacing--20); }
}
