/* ===== フロントページ OCR スタイル ===== */

/* ===== ヘッダー ===== */
.site-header,
#masthead,
.ast-main-header-wrap,
.main-header-bar {
    background: #1a1410 !important;
    border-bottom: 3px solid #c4783a !important;
}

/* ===== カスタムロゴ ===== */
.ast-site-identity {
    display: flex;
    align-items: center;
}

#algomode-logo-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    text-decoration: none !important;
}

#algomode-logo-wrap img.logo-sym {
    height: 36px;
    width: auto;
    display: block;
}

#algomode-logo-wrap img.logo-txt {
    height: 24px;
    width: auto;
    display: block;
}

/* サイトタイトル・ディスクリプション非表示 */
.ast-site-identity .site-title,
.ast-site-identity .site-description,
.ast-site-identity p.site-title {
    display: none !important;
}

/* ナビゲーション */
.main-header-menu .menu-item > a {
    color: #cce4ff !important;
}

@media (max-width: 768px) {
    #algomode-logo-wrap img.logo-sym { height: 28px; }
    #algomode-logo-wrap img.logo-txt { height: 18px; }
}

.ocr-container {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 32px;
}

.ocr-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #c4783a;
    margin-bottom: 12px;
}

/* ===== ヒーロー ===== */
.ocr-hero {
    background: #1a1410;
    color: #fff;
    padding: 110px 0 90px;
    text-align: center;
}

.ocr-hero__inner {
    max-width: 680px;
    margin: 0 auto;
    padding: 0 32px;
}

.ocr-hero__eyebrow {
    font-size: 12px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #a07858;
    margin-bottom: 28px;
}

.ocr-hero__title {
    font-size: clamp(28px, 4vw, 46px);
    font-weight: 700;
    color: #fff !important;
    line-height: 1.4;
    margin-bottom: 28px;
    letter-spacing: -0.5px;
}

.ocr-hero__desc {
    font-size: 16px;
    color: #b09078;
    line-height: 2;
    margin-bottom: 44px;
}

.ocr-btn {
    display: inline-block;
    padding: 13px 32px;
    border: 1px solid #8a6448;
    border-radius: 4px;
    color: #d4a882 !important;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    letter-spacing: 0.5px;
    transition: all 0.2s ease;
}

.ocr-btn:hover {
    background: rgba(255,255,255,0.06);
    border-color: #a08060;
    color: #fff !important;
}

/* ===== 私たちについて ===== */
.ocr-about {
    padding: 90px 0;
    background: #fff;
}

.ocr-about__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
}

.ocr-about__text h2 {
    font-size: 26px;
    font-weight: 700;
    color: #1a1410;
    margin-bottom: 20px;
}

.ocr-about__text h2::after {
    display: none !important;
}

.ocr-about__text p {
    font-size: 15px;
    color: #5a4a3a;
    line-height: 1.9;
    margin-bottom: 16px;
}

/* ドキュメントビジュアル */
.ocr-doc-visual {
    background: #faf7f2;
    border: 1px solid #e8ddd0;
    border-radius: 8px;
    padding: 36px 32px;
    position: relative;
    overflow: hidden;
}

.ocr-doc-visual__line {
    height: 10px;
    background: #e8ddd0;
    border-radius: 4px;
    margin-bottom: 14px;
}

.ocr-doc-visual__line--short { width: 60%; }
.ocr-doc-visual__line--mid   { width: 80%; }

.ocr-doc-visual__scan {
    position: absolute;
    left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, #c4783a, transparent);
    top: 0;
    animation: scanDoc 2.4s ease-in-out infinite;
    opacity: 0.7;
}

@keyframes scanDoc {
    0%   { top: 10%; opacity: 0; }
    10%  { opacity: 0.7; }
    90%  { opacity: 0.7; }
    100% { top: 90%; opacity: 0; }
}

/* ===== 取り組み ===== */
.ocr-features {
    padding: 90px 0;
    background: #faf7f2;
}

.ocr-features h2 {
    font-size: 26px;
    font-weight: 700;
    color: #1a1410;
    margin-bottom: 40px;
}

.ocr-features h2::after { display: none !important; }

.ocr-features__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
}

.ocr-feature-card {
    background: #fff;
    border: 1px solid #e8ddd0;
    border-radius: 8px;
    padding: 28px 26px;
    transition: border-color 0.2s;
}

.ocr-feature-card:hover {
    border-color: #c4783a;
}

.ocr-feature-card h3 {
    font-size: 16px;
    font-weight: 600;
    color: #1a1410;
    margin-bottom: 10px;
}

.ocr-feature-card p {
    font-size: 14px;
    color: #5a4a3a;
    line-height: 1.85;
}

/* ===== 現在の状況 ===== */
.ocr-status {
    padding: 90px 0;
    background: #fff;
}

.ocr-status h2 {
    font-size: 26px;
    font-weight: 700;
    color: #1a1410;
    margin-bottom: 40px;
}

.ocr-status h2::after { display: none !important; }

.ocr-status__list {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-left: 2px solid #e8ddd0;
    margin-left: 16px;
    padding-left: 32px;
}

.ocr-status__item {
    display: flex;
    gap: 20px;
    padding: 20px 0;
    position: relative;
}

.ocr-status__icon {
    position: absolute;
    left: -44px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
    top: 22px;
}

.ocr-status__item--done .ocr-status__icon {
    background: #f4ede3;
    color: #8a6428;
    border: 2px solid #8a6428;
}

.ocr-status__item--active .ocr-status__icon {
    background: #c4783a;
    color: #fff;
    border: 2px solid #c4783a;
}

.ocr-status__item--upcoming .ocr-status__icon {
    background: #fff;
    color: #aab;
    border: 2px solid #e8ddd0;
}

.ocr-status__item strong {
    font-size: 15px;
    color: #1a1410;
    display: block;
    margin-bottom: 4px;
}

.ocr-status__item p {
    font-size: 14px;
    color: #5a4a3a;
    line-height: 1.7;
    margin: 0;
}

/* ===== LLM活用 ===== */
.ocr-llm {
    padding: 90px 0;
    background: #faf7f2;
}

.ocr-llm h2 {
    font-size: 26px;
    font-weight: 700;
    color: #1a1410;
    margin-bottom: 36px;
}

.ocr-llm h2::after { display: none !important; }

.ocr-llm__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start;
}

.ocr-llm__text p {
    font-size: 15px;
    color: #5a4a3a;
    line-height: 1.9;
    margin-bottom: 16px;
}

.ocr-llm__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 8px;
}

.ocr-tag {
    display: inline-block;
    padding: 7px 16px;
    border: 1px solid #c4783a;
    border-radius: 20px;
    font-size: 13px;
    color: #c4783a;
    font-weight: 500;
    letter-spacing: 0.3px;
}

@media (max-width: 768px) {
    .ocr-llm__grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ===== お問い合わせ ===== */
.ocr-contact {
    padding: 90px 0;
    background: #1a1410;
}

.ocr-contact h2 {
    font-size: 26px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 16px;
}

.ocr-contact h2::after { display: none !important; }

.ocr-contact__desc {
    font-size: 15px;
    color: #b09078;
    line-height: 1.9;
    margin-bottom: 36px;
}

/* ===== お問い合わせフォーム ===== */
.ocr-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.ocr-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: end;
}

.ocr-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
    color: #c8b8a8;
    font-weight: 500;
}

.ocr-form label span { color: #c4783a; margin-left: 2px; }

.ocr-form input[type="text"],
.ocr-form input[type="email"],
.ocr-form textarea {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 5px;
    color: #fff;
    font-size: 14px;
    padding: 10px 14px;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.2s;
    font-family: inherit;
}

.ocr-form input::placeholder,
.ocr-form textarea::placeholder { color: rgba(255,255,255,0.25); }

.ocr-form input:focus,
.ocr-form textarea:focus { outline: none; border-color: #c4783a; }

.ocr-form textarea { resize: vertical; }

.ocr-submit {
    align-self: flex-start;
    padding: 13px 36px;
    background: transparent;
    border: 1px solid #8a6448;
    border-radius: 4px;
    color: #d4a882;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    letter-spacing: 0.5px;
    transition: all 0.2s;
}

.ocr-submit:hover {
    background: rgba(255,255,255,0.06);
    border-color: #c4783a;
    color: #fff;
}

.ocr-form-success {
    background: rgba(196,120,58,0.15);
    border: 1px solid rgba(196,120,58,0.35);
    border-radius: 6px;
    color: #e8b888;
    padding: 16px 20px;
    font-size: 14px;
}

.ocr-form-error {
    background: rgba(200,80,80,0.15);
    border: 1px solid rgba(200,80,80,0.3);
    border-radius: 6px;
    color: #f0a0a0;
    padding: 16px 20px;
    font-size: 14px;
}

@media (max-width: 768px) {
    .ocr-form__row { grid-template-columns: 1fr; }
    .ocr-submit { width: 100%; text-align: center; }
}

/* ===== カスタムヘッダー ===== */
#ocr-header {
    background: #1a1410;
    border-bottom: 3px solid #c4783a;
    position: sticky;
    top: 0;
    z-index: 1000;
}

#ocr-header__inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 32px;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#ocr-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

#ocr-logo .ocr-logo__combined {
    height: 36px;
    width: auto;
}

#ocr-nav ul {
    display: flex;
    gap: 28px;
    list-style: none;
    margin: 0;
    padding: 0;
}

#ocr-nav a {
    color: #c8b49a;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.3px;
}

#ocr-nav a:hover {
    color: #e8a84a;
}

/* ===== カスタムフッター ===== */
#ocr-footer {
    background: #1a1410;
    border-top: 3px solid #c4783a;
    padding: 28px 0;
    text-align: center;
}

#ocr-footer p {
    color: #8a7a6a;
    font-size: 13px;
    margin: 0;
}

/* ===== レスポンシブ ===== */
@media (max-width: 768px) {
    /* コンテナ */
    .ocr-container { padding: 0 18px; }

    /* ヘッダー */
    #ocr-header__inner { padding: 0 16px; height: 56px; }
    #ocr-logo .ocr-logo__combined { height: 26px; }
    #ocr-nav { display: none; }

    /* ヒーロー */
    .ocr-hero { padding: 64px 0 52px; }
    .ocr-hero__title { font-size: clamp(24px, 7vw, 32px); letter-spacing: -0.3px; }
    .ocr-hero__desc { font-size: 14px; }
    .ocr-btn { padding: 12px 26px; font-size: 13px; }

    /* セクション共通 */
    .ocr-features,
    .ocr-about,
    .ocr-status,
    .ocr-llm,
    .ocr-contact { padding: 56px 0; }

    /* 見出し */
    .ocr-about__text h2,
    .ocr-features h2,
    .ocr-status h2,
    .ocr-llm h2 { font-size: 22px; }

    /* グリッド */
    .ocr-about__grid { grid-template-columns: 1fr; gap: 32px; }
    .ocr-about__visual { display: none; }
    .ocr-llm__grid { grid-template-columns: 1fr; gap: 28px; }

    /* ステータスリスト */
    .ocr-status__list { margin-left: 12px; padding-left: 24px; }
    .ocr-status__icon { left: -36px; width: 20px; height: 20px; font-size: 10px; }

    /* タグ */
    .ocr-tag { font-size: 12px; padding: 6px 12px; }

    /* CF7フォーム */
    .wpcf7-form input[type="text"],
    .wpcf7-form input[type="email"],
    .wpcf7-form textarea { width: 100% !important; box-sizing: border-box; }
    .wpcf7-form input[type="submit"] { width: 100%; }
}
