[
  {
    "id": 2501,
    "title": "料金表/月額年額対応_P-15",
    "icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewbox=\"0 0 256 256\"><path d=\"M237.66,153,153,237.66a8,8,0,0,1-11.31,0L42.34,138.34A8,8,0,0,1,40,132.69V40h92.69a8,8,0,0,1,5.65,2.34l99.32,99.32A8,8,0,0,1,237.66,153Z\" fill=\"#9aa8c9\"/><path d=\"M243.31,136,144,36.69A15.86,15.86,0,0,0,132.69,32H40a8,8,0,0,0-8,8v92.69A15.86,15.86,0,0,0,36.69,144L136,243.31a16,16,0,0,0,22.63,0l84.68-84.68a16,16,0,0,0,0-22.63Zm-96,96L48,132.69V48h84.69L232,147.31ZM96,84A12,12,0,1,1,84,72,12,12,0,0,1,96,84Z\" fill=\"#1a1a2e\"/></svg>",
    "keywords": [
      "テーブル・データ表示",
      "料金表/月額年額対応"
    ],
    "slug": "lazyblock/pricing-table",
    "description": "",
    "category": "Lazyblocks Pro",
    "category_label": "Lazyblocks Pro",
    "supports": {
      "customClassName": true,
      "anchor": false,
      "html": false,
      "multiple": true,
      "inserter": true,
      "reusable": true,
      "color": false,
      "layout": false,
      "shadow": false,
      "spacing": false,
      "dimensions": false,
      "typography": false,
      "lock": true,
      "align": [
        "wide",
        "full"
      ],
      "ghostkit": {
        "effects": false,
        "position": false,
        "spacings": false,
        "frame": false,
        "transform": false,
        "customCSS": false,
        "display": false,
        "attributes": false
      }
    },
    "controls": {
      "control_4359dc44fd": {
        "type": "panel",
        "name": "",
        "default": "",
        "label": "カラー設定",
        "help": "",
        "child_of": "",
        "placement": "inspector",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_93ab504cb9": {
        "type": "color",
        "name": "brand_color",
        "default": "",
        "label": "メインカラー",
        "help": "",
        "child_of": "",
        "placement": "inspector",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_34dade4b30": {
        "type": "message",
        "name": "",
        "default": "",
        "label": "",
        "help": "",
        "child_of": "",
        "placement": "inspector",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": "",
        "message_text": "料金表設定",
        "message_new_lines": "paragraphs"
      },
      "control_733b634eff": {
        "type": "repeater",
        "name": "plans",
        "default": "",
        "label": "プラン基本情報",
        "help": "",
        "child_of": "",
        "placement": "inspector",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_0d595c4b80": {
        "type": "text",
        "name": "plan_name",
        "default": "",
        "label": "プラン名",
        "help": "",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_fecae34029": {
        "type": "select",
        "name": "plan_icon",
        "default": "",
        "label": "プランアイコン",
        "help": "",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": "",
        "choices": [
          {
            "label": "✦ きらめき (Free向き)",
            "value": "sparkles"
          },
          {
            "label": "⚡ 稲妻 (Pro向き)",
            "value": "bolt"
          },
          {
            "label": "◆ ダイヤ (Max向き)",
            "value": "diamond"
          },
          {
            "label": "🚀 ロケット",
            "value": "rocket"
          },
          {
            "label": "👑 王冠",
            "value": "crown"
          },
          {
            "label": "★ 星",
            "value": "star"
          },
          {
            "label": "🔥 炎",
            "value": "flame"
          },
          {
            "label": "♥ ハート",
            "value": "heart"
          },
          {
            "label": "🎁 ギフト",
            "value": "gift"
          },
          {
            "label": "🏢 ビル",
            "value": "building"
          },
          {
            "label": "● サークル",
            "value": "circle"
          }
        ]
      },
      "control_5f0bf24ebd": {
        "type": "toggle",
        "name": "is_highlighted",
        "default": "",
        "label": "おすすめハイライト",
        "help": "ONにすると特別デザインになります",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_54b9374e85": {
        "type": "text",
        "name": "badge_text",
        "default": "",
        "label": "バッジテキスト",
        "help": "例: 最も人気 （※ハイライトON時のみ表示推奨）",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_216be249ee": {
        "type": "text",
        "name": "price",
        "default": "",
        "label": "【月額】金額",
        "help": "",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_ef3bfc42cd": {
        "type": "text",
        "name": "period",
        "default": "",
        "label": "【月額】期間",
        "help": "",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_66187a45ef": {
        "type": "toggle",
        "name": "has_annual",
        "default": "",
        "label": "年額の設定",
        "help": "",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_1b884146dc": {
        "type": "text",
        "name": "price_annual",
        "default": "",
        "label": "【年額】金額",
        "help": "",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": "",
        "conditional_logic": [
          [
            {
              "control": "plans.has_annual",
              "operator": "==",
              "value": "1"
            }
          ]
        ]
      },
      "control_026b3d44a3": {
        "type": "text",
        "name": "period_annual",
        "default": "",
        "label": "【年額】期間",
        "help": "例）/年",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": "",
        "conditional_logic": [
          [
            {
              "control": "plans.has_annual",
              "operator": "==",
              "value": "1"
            }
          ]
        ]
      },
      "control_d8e9044d44": {
        "type": "text",
        "name": "toggle_text",
        "default": "",
        "label": "トグル横テキスト",
        "help": "トグルスイッチの左側に表示される訴求テキストです（例：年間契約で50%節約）。",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": "",
        "conditional_logic": [
          [
            {
              "control": "plans.has_annual",
              "operator": "==",
              "value": "1"
            }
          ]
        ]
      },
      "control_e0a9b449a7": {
        "type": "text",
        "name": "sub_price",
        "default": "",
        "label": "サブ価格",
        "help": "サブ価格 (例: US$995/年)",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_3f2bdc4a78": {
        "type": "text",
        "name": "discount_text",
        "default": "",
        "label": "サブ価格_打消し線",
        "help": "（例）年間契約で17%節約 ※年額切替時のみ表示されます",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_215b9649de": {
        "type": "text",
        "name": "button_text",
        "default": "",
        "label": "ボタンテキスト",
        "help": "",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_276b2f470b": {
        "type": "url",
        "name": "button_url",
        "default": "",
        "label": "ボタンURL",
        "help": "",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      },
      "control_eec82b4f42": {
        "type": "textarea",
        "name": "features_text",
        "default": "",
        "label": "機能リスト(改行区切り)",
        "help": "",
        "child_of": "control_733b634eff",
        "placement": "content",
        "group": "settings",
        "width": "100",
        "hide_if_not_selected": "false",
        "required": "false",
        "translate": "false",
        "save_in_meta": "false",
        "save_in_meta_name": "",
        "placeholder": "",
        "characters_limit": ""
      }
    },
    "code": {
      "output_method": "php",
      "editor_html": "",
      "editor_callback": "",
      "frontend_html": "<?php\r\n// プランが空のとき：エディタ用プレースホルダー\r\nif ( empty( $attributes['plans'] ) ) :\r\n?>\r\n    <div class=\"lzb-pricing-editor-placeholder\">\r\n        <div class=\"lzb-placeholder-title\">料金表ブロックが設置されました</div>\r\n        <div class=\"lzb-placeholder-desc\">右サイドバーの<strong>「プラン基本情報」の「＋追加」</strong>からプランを追加してください。メインカラーも変更できます。</div>\r\n    </div>\r\n<?php\r\n    return;\r\nendif;\r\n\r\n// メインカラー（未設定時はデフォルトの紫）\r\n$brand_color = ! empty( $attributes['brand_color'] ) ? $attributes['brand_color'] : '#7c3aed';\r\n\r\n// プランアイコンのSVG辞書（line/outlineスタイルで統一）\r\n$lzb_icons = array(\r\n\t'sparkles' => '<path d=\"M16 18a2 2 0 0 1 2 2a2 2 0 0 1 2 -2a2 2 0 0 1 -2 -2a2 2 0 0 1 -2 2zm0 -12a2 2 0 0 1 2 2a2 2 0 0 1 2 -2a2 2 0 0 1 -2 -2a2 2 0 0 1 -2 2zm-7 12a6 6 0 0 1 6 -6a6 6 0 0 1 -6 -6a6 6 0 0 1 -6 6a6 6 0 0 1 6 6z\"/>',\r\n\t'bolt'     => '<path d=\"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11\"/>',\r\n\t'diamond'  => '<path d=\"M6 5h12l3 5l-8.5 9.5a0.7 .7 0 0 1 -1 0l-8.5 -9.5l3 -5\"/><path d=\"M10 12l-3.5 -2\"/><path d=\"M14 12l3.5 -2\"/><path d=\"M15 11l-1 -5.5\"/><path d=\"M10 11l1 -5.5\"/><path d=\"M12 11l0 8.5\"/>',\r\n\t'rocket'   => '<path d=\"M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3 -5a9 9 0 0 0 6 -8a3 3 0 0 0 -3 -3a9 9 0 0 0 -8 6a6 6 0 0 0 -5 3\"/><path d=\"M7 14a6 6 0 0 0 -3 6a6 6 0 0 0 6 -3\"/><circle cx=\"15\" cy=\"9\" r=\"1\"/>',\r\n\t'crown'    => '<path d=\"M12 6l4 6l5 -4l-2 10h-14l-2 -10l5 4z\"/>',\r\n\t'star'     => '<path d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>',\r\n\t'flame'    => '<path d=\"M12 12c2 -2.96 0 -7 -1 -8c0 3.038 -1.773 4.741 -3 6c-1.226 1.26 -2 3.24 -2 5a6 6 0 1 0 12 0c0 -1.532 -1.056 -3.94 -2 -5c-1.786 3 -2.791 3 -4 2z\"/>',\r\n\t'heart'    => '<path d=\"M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572\"/>',\r\n\t'gift'     => '<rect x=\"3\" y=\"8\" width=\"18\" height=\"4\" rx=\"1\"/><path d=\"M12 8l0 13\"/><path d=\"M19 12v7a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-7\"/><path d=\"M7.5 8a2.5 2.5 0 0 1 0 -5a4.8 8 0 0 1 4.5 5a4.8 8 0 0 1 4.5 -5a2.5 2.5 0 0 1 0 5\"/>',\r\n\t'building' => '<path d=\"M3 21l18 0\"/><path d=\"M5 21v-14l8 -4v18\"/><path d=\"M19 21v-10l-6 -4\"/><path d=\"M9 9l0 .01\"/><path d=\"M9 12l0 .01\"/><path d=\"M9 15l0 .01\"/><path d=\"M9 18l0 .01\"/>',\r\n\t'circle'   => '<circle cx=\"12\" cy=\"12\" r=\"9\"/>',\r\n);\r\n\r\n// プランのアイコンキーを安全に解決（未設定や不正値はsparklesにフォールバック）\r\n$lzb_get_icon = function( $key ) use ( $lzb_icons ) {\r\n\t$key = is_string( $key ) ? trim( $key ) : '';\r\n\treturn isset( $lzb_icons[ $key ] ) ? $lzb_icons[ $key ] : $lzb_icons['sparkles'];\r\n};\r\n\r\n// このブロック固有のIDを発番（複数設置時の競合防止）\r\n$lzb_uid = 'lzb-pt-' . substr( md5( uniqid( '', true ) ), 0, 8 );\r\n\r\n// 年額を持つプランが1つでもあるか判定（あればトグルUIを表示）\r\n$has_any_annual = false;\r\nforeach ( $attributes['plans'] as $plan ) {\r\n    if ( ! empty( $plan['has_annual'] ) && $plan['has_annual'] ) {\r\n        $has_any_annual = true;\r\n        break;\r\n    }\r\n}\r\n\r\n// トグル横テキスト（最初に設定されているものを採用）\r\n$toggle_label_monthly = '月額';\r\n$toggle_label_annual  = '年額';\r\nforeach ( $attributes['plans'] as $plan ) {\r\n    if ( ! empty( $plan['toggle_text'] ) ) {\r\n        $toggle_label_annual = $plan['toggle_text'];\r\n        break;\r\n    }\r\n}\r\n?>\r\n\r\n<div id=\"<?php echo esc_attr( $lzb_uid ); ?>\" class=\"lzb-pricing-container\" style=\"--lzb-brand: <?php echo esc_attr( $brand_color ); ?>;\">\r\n\r\n    <?php if ( $has_any_annual ) : ?>\r\n    <div class=\"lzb-billing-switch\" role=\"group\" aria-label=\"料金プランの切り替え\">\r\n        <button type=\"button\" class=\"lzb-billing-option is-active\" data-billing=\"monthly\" aria-pressed=\"true\"><?php echo esc_html( $toggle_label_monthly ); ?></button>\r\n        <button type=\"button\" class=\"lzb-billing-option\" data-billing=\"annual\" aria-pressed=\"false\"><?php echo esc_html( $toggle_label_annual ); ?></button>\r\n        <span class=\"lzb-billing-indicator\" aria-hidden=\"true\"></span>\r\n    </div>\r\n    <?php endif; ?>\r\n\r\n    <div class=\"lzb-pricing-wrapper\">\r\n        <?php foreach ( $attributes['plans'] as $plan ) :\r\n            $is_hl       = ! empty( $plan['is_highlighted'] ) && $plan['is_highlighted'];\r\n            $plan_annual = ! empty( $plan['has_annual'] ) && $plan['has_annual'];\r\n        ?>\r\n        <div class=\"lzb-pricing-card<?php echo $is_hl ? ' is-highlighted' : ''; ?>\">\r\n\r\n            <?php if ( $is_hl && ! empty( $plan['badge_text'] ) ) : ?>\r\n            <div class=\"lzb-pricing-badge\">\r\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 12c2 -2.96 0 -7 -1 -8c0 3.038 -1.773 4.741 -3 6c-1.226 1.26 -2 3.24 -2 5a6 6 0 1 0 12 0c0 -1.532 -1.056 -3.94 -2 -5c-1.786 3 -2.791 3 -4 2z\"/></svg>\r\n                <?php echo esc_html( $plan['badge_text'] ); ?>\r\n            </div>\r\n            <?php endif; ?>\r\n\r\n            <div class=\"lzb-plan-header\">\r\n                <span class=\"lzb-plan-icon\" aria-hidden=\"true\">\r\n                    <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\"><?php echo $lzb_get_icon( isset( $plan['plan_icon'] ) ? $plan['plan_icon'] : '' ); ?></svg>\r\n                </span>\r\n                <span class=\"lzb-plan-name\"><?php echo esc_html( $plan['plan_name'] ); ?></span>\r\n            </div>\r\n\r\n            <div class=\"lzb-plan-price-wrap\"<?php echo $plan_annual ? ' data-has-annual=\"1\"' : ''; ?>>\r\n                <div class=\"lzb-price-group lzb-price-monthly\">\r\n                    <span class=\"lzb-price-amount\" data-original=\"<?php echo esc_attr( $plan['price'] ); ?>\"><?php echo esc_html( $plan['price'] ); ?></span>\r\n                    <span class=\"lzb-price-period\"><?php echo esc_html( $plan['period'] ); ?></span>\r\n                </div>\r\n                <?php if ( $plan_annual ) : ?>\r\n                <div class=\"lzb-price-group lzb-price-annual\">\r\n                    <span class=\"lzb-price-amount\" data-original=\"<?php echo esc_attr( $plan['price_annual'] ); ?>\"><?php echo esc_html( $plan['price_annual'] ); ?></span>\r\n                    <span class=\"lzb-price-period\"><?php echo esc_html( ! empty( $plan['period_annual'] ) ? $plan['period_annual'] : $plan['period'] ); ?></span>\r\n                </div>\r\n                <?php endif; ?>\r\n            </div>\r\n\r\n            <div class=\"lzb-sub-price-wrap<?php echo $plan_annual ? ' is-annual-only' : ''; ?>\">\r\n                <?php if ( ! empty( $plan['discount_text'] ) ) : ?>\r\n                    <span class=\"lzb-sub-price-strike\"><?php echo esc_html( $plan['discount_text'] ); ?></span>\r\n                <?php endif; ?>\r\n                <?php if ( ! empty( $plan['sub_price'] ) ) : ?>\r\n                    <span class=\"lzb-sub-price\"><?php echo esc_html( $plan['sub_price'] ); ?></span>\r\n                <?php endif; ?>\r\n            </div>\r\n\r\n            <?php if ( ! empty( $plan['button_text'] ) ) : ?>\r\n                <a href=\"<?php echo esc_url( $plan['button_url'] ); ?>\" class=\"lzb-plan-button <?php echo $is_hl ? 'btn-primary' : 'btn-secondary'; ?>\">\r\n                    <?php echo esc_html( $plan['button_text'] ); ?>\r\n                </a>\r\n            <?php else : ?>\r\n                <div class=\"lzb-plan-button-space\"></div>\r\n            <?php endif; ?>\r\n\r\n            <div class=\"lzb-plan-divider\"></div>\r\n\r\n            <ul class=\"lzb-plan-features\">\r\n                <?php\r\n                if ( ! empty( $plan['features_text'] ) ) :\r\n                    $features_text = str_replace( array( \"\\r\\n\", \"\\r\" ), \"\\n\", $plan['features_text'] );\r\n                    $features      = explode( \"\\n\", $features_text );\r\n                    foreach ( $features as $feature ) :\r\n                        $feature = trim( strip_tags( $feature, '<b><strong><a>' ) );\r\n                        if ( '' === $feature ) {\r\n                            continue;\r\n                        }\r\n                ?>\r\n                    <li>\r\n                        <span class=\"lzb-feature-icon\" aria-hidden=\"true\">\r\n                            <svg viewBox=\"0 0 20 20\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\"/></svg>\r\n                        </span>\r\n                        <span class=\"lzb-feature-text\"><?php echo wp_kses_post( $feature ); ?></span>\r\n                    </li>\r\n                <?php\r\n                    endforeach;\r\n                endif;\r\n                ?>\r\n            </ul>\r\n\r\n        </div>\r\n        <?php endforeach; ?>\r\n    </div>\r\n</div>",
      "frontend_callback": "",
      "show_preview": "always",
      "single_output": true
    },
    "style": {
      "block": "/* =========================================================\r\n   料金表ブロック  ─  プロ仕様スタイル\r\n   ========================================================= */\r\n.lzb-pricing-container {\r\n  /* メインカラーから派生色を自動生成 */\r\n  --lzb-brand-light: color-mix(in srgb, var(--lzb-brand) 72%, white) !important;\r\n  --lzb-brand-dark:  color-mix(in srgb, var(--lzb-brand) 88%, black) !important;\r\n  --lzb-brand-tint:  color-mix(in srgb, var(--lzb-brand) 8%, white) !important;\r\n  --lzb-ink:    #0f172a !important;\r\n  --lzb-muted:  #64748b !important;\r\n  --lzb-line:   #eef0f4 !important;\r\n  --lzb-radius: 24px !important;\r\n  box-sizing: border-box !important;\r\n  width: 100% !important;\r\n  margin: 0 auto !important;\r\n  padding: 8px 0 !important;\r\n  font-family: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Segoe UI\", \"Hiragino Sans\", \"Noto Sans JP\", Roboto, Arial, sans-serif !important;\r\n  -webkit-font-smoothing: antialiased !important;\r\n}\r\n.lzb-pricing-container *,\r\n.lzb-pricing-container *::before,\r\n.lzb-pricing-container *::after { box-sizing: border-box !important; }\r\n\r\n/* ---- 月額 / 年額 切替スイッチ（中央集約・1つだけ） ---- */\r\n.lzb-billing-switch {\r\n  position: relative !important;\r\n  display: inline-flex !important;\r\n  align-items: center !important;\r\n  gap: 0 !important;\r\n  margin: 4px auto 40px auto !important;\r\n  padding: 5px !important;\r\n  background: #f1f3f7 !important;\r\n  border-radius: 999px !important;\r\n  width: max-content !important;\r\n  max-width: 100% !important;\r\n  box-shadow: inset 0 0 0 1px rgba(15,23,42,0.04) !important;\r\n  cursor: pointer !important;\r\n}\r\n/* 中央寄せ：コンテナを text-align:center にし、switch を inline-flex で中央配置 */\r\n.lzb-pricing-container { text-align: center !important; }\r\n.lzb-billing-switch { margin-left: auto !important; margin-right: auto !important; }\r\n\r\n.lzb-billing-option {\r\n  position: relative !important;\r\n  z-index: 2 !important;\r\n  border: none !important;\r\n  background: transparent !important;\r\n  cursor: pointer !important;\r\n  padding: 9px 26px !important;\r\n  font-size: 14px !important;\r\n  font-weight: 700 !important;\r\n  color: var(--lzb-muted) !important;\r\n  border-radius: 999px !important;\r\n  transition: color 0.3s ease !important;\r\n  white-space: nowrap !important;\r\n  font-family: inherit !important;\r\n  line-height: 1 !important;\r\n}\r\n.lzb-billing-option.is-active { color: var(--lzb-brand-dark) !important; }\r\n.lzb-billing-indicator {\r\n  position: absolute !important;\r\n  z-index: 1 !important;\r\n  top: 5px !important;\r\n  bottom: 5px !important;\r\n  left: 5px !important;\r\n  width: calc(50% - 5px) !important;\r\n  background: #ffffff !important;\r\n  border-radius: 999px !important;\r\n  box-shadow: 0 2px 8px rgba(15,23,42,0.10), 0 0 0 1px rgba(15,23,42,0.03) !important;\r\n  transition: transform 0.45s cubic-bezier(0.16,1,0.3,1) !important;\r\n}\r\n.lzb-pricing-container.is-annual-active .lzb-billing-indicator { transform: translateX(100%) !important; }\r\n.lzb-billing-switch:focus-visible { outline: 2px solid var(--lzb-brand) !important; outline-offset: 3px !important; }\r\n.lzb-billing-switch:hover .lzb-billing-option:not(.is-active) { color: var(--lzb-brand-dark) !important; opacity: 0.7 !important; }\r\n\r\n/* ---- カードレイアウト ---- */\r\n.lzb-pricing-wrapper {\r\n  display: grid !important;\r\n  grid-template-columns: 1fr !important;\r\n  gap: 20px !important;\r\n  width: 100% !important;\r\n  margin: 0 auto !important;\r\n  padding: 4px 0 8px 0 !important;\r\n  text-align: left !important;\r\n  align-items: stretch !important;\r\n}\r\n\r\n/* ---- カード本体 ---- */\r\n.lzb-pricing-card {\r\n  position: relative !important;\r\n  display: flex !important;\r\n  flex-direction: column !important;\r\n  background: #ffffff !important;\r\n  border: 1px solid var(--lzb-line) !important;\r\n  border-radius: var(--lzb-radius) !important;\r\n  padding: 36px 26px 32px !important;\r\n  box-shadow: 0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -16px rgba(15,23,42,0.10) !important;\r\n  transition: transform 0.4s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s cubic-bezier(0.16,1,0.3,1) !important;\r\n}\r\n.lzb-pricing-card:hover {\r\n  transform: translateY(-6px) !important;\r\n  box-shadow: 0 1px 2px rgba(15,23,42,0.04), 0 24px 48px -24px rgba(15,23,42,0.22) !important;\r\n}\r\n\r\n/* ---- おすすめハイライト ---- */\r\n.lzb-pricing-card.is-highlighted {\r\n  border: 1.5px solid transparent !important;\r\n  background:\r\n    linear-gradient(#ffffff, #ffffff) padding-box,\r\n    linear-gradient(150deg, var(--lzb-brand-light), var(--lzb-brand)) border-box !important;\r\n  box-shadow: 0 12px 40px -16px color-mix(in srgb, var(--lzb-brand) 55%, transparent), 0 2px 8px rgba(15,23,42,0.06) !important;\r\n}\r\n.lzb-pricing-card.is-highlighted:hover {\r\n  transform: translateY(-8px) !important;\r\n  box-shadow: 0 28px 56px -20px color-mix(in srgb, var(--lzb-brand) 60%, transparent), 0 2px 8px rgba(15,23,42,0.06) !important;\r\n}\r\n\r\n/* ---- バッジ（カード上辺中央） ---- */\r\n.lzb-pricing-badge {\r\n  position: absolute !important;\r\n  top: 0 !important;\r\n  left: 50% !important;\r\n  transform: translate(-50%, -50%) !important;\r\n  display: inline-flex !important;\r\n  align-items: center !important;\r\n  gap: 6px !important;\r\n  background: linear-gradient(135deg, var(--lzb-brand-light), var(--lzb-brand)) !important;\r\n  color: #ffffff !important;\r\n  font-size: 12px !important;\r\n  font-weight: 800 !important;\r\n  letter-spacing: 0.02em !important;\r\n  padding: 7px 16px !important;\r\n  border-radius: 999px !important;\r\n  white-space: nowrap !important;\r\n  line-height: 1 !important;\r\n  box-shadow: 0 6px 16px -4px color-mix(in srgb, var(--lzb-brand) 60%, transparent) !important;\r\n}\r\n.lzb-pricing-badge svg { width: 13px !important; height: 13px !important; flex-shrink: 0 !important; }\r\n\r\n/* ---- ヘッダー ---- */\r\n.lzb-plan-header {\r\n  display: flex !important;\r\n  align-items: center !important;\r\n  gap: 8px !important;\r\n  margin-bottom: 18px !important;\r\n}\r\n.lzb-plan-icon {\r\n  display: inline-flex !important;\r\n  align-items: center !important;\r\n  justify-content: center !important;\r\n  width: 34px !important; height: 34px !important;\r\n  border-radius: 10px !important;\r\n  background: var(--lzb-brand-tint) !important;\r\n  color: var(--lzb-brand) !important;\r\n  flex-shrink: 0 !important;\r\n}\r\n.lzb-plan-icon svg { width: 20px !important; height: 20px !important; display: block !important; }\r\n.lzb-plan-name {\r\n  font-size: 19px !important;\r\n  font-weight: 800 !important;\r\n  color: var(--lzb-ink) !important;\r\n  letter-spacing: -0.01em !important;\r\n  line-height: 1.2 !important;\r\n}\r\n\r\n/* ---- 価格 ---- */\r\n.lzb-plan-price-wrap { min-height: 48px !important; margin-bottom: 6px !important; }\r\n.lzb-price-group { display: flex !important; align-items: baseline !important; gap: 4px !important; }\r\n.lzb-price-annual { display: none !important; }\r\n.lzb-pricing-container.is-annual-active .lzb-price-monthly { display: none !important; }\r\n.lzb-pricing-container.is-annual-active .lzb-price-annual { display: flex !important; animation: lzbFadeIn 0.35s ease !important; }\r\n.lzb-price-amount {\r\n  font-size: clamp(34px, 9vw, 44px) !important;\r\n  font-weight: 800 !important;\r\n  color: var(--lzb-ink) !important;\r\n  letter-spacing: -0.035em !important;\r\n  font-variant-numeric: tabular-nums !important;\r\n  line-height: 1 !important;\r\n}\r\n.lzb-price-period { font-size: 14px !important; color: var(--lzb-muted) !important; font-weight: 600 !important; }\r\n\r\n/* ---- サブ価格 / 打消し（高さ固定で全カードのボタン位置を揃える） ---- */\r\n.lzb-sub-price-wrap {\r\n  display: flex !important;\r\n  flex-direction: column !important;\r\n  align-items: flex-start !important;\r\n  gap: 2px !important;\r\n  min-height: 44px !important;\r\n  margin-bottom: 4px !important;\r\n  justify-content: flex-start !important;\r\n}\r\n.lzb-sub-price { font-size: 13px !important; color: var(--lzb-muted) !important; font-weight: 500 !important; line-height: 1.4 !important; }\r\n.lzb-sub-price-strike { font-size: 13px !important; color: #b0b7c3 !important; text-decoration: line-through !important; line-height: 1.4 !important; }\r\n\r\n/* 年額用サブ価格・打消し線は、年額トグルON時のみ表示（月額時は隠す） */\r\n.lzb-sub-price-wrap.is-annual-only > .lzb-sub-price,\r\n.lzb-sub-price-wrap.is-annual-only > .lzb-sub-price-strike {\r\n  display: none !important;\r\n}\r\n.lzb-pricing-container.is-annual-active .lzb-sub-price-wrap.is-annual-only > .lzb-sub-price,\r\n.lzb-pricing-container.is-annual-active .lzb-sub-price-wrap.is-annual-only > .lzb-sub-price-strike {\r\n  display: inline !important;\r\n  animation: lzbFadeIn 0.35s ease !important;\r\n}\r\n\r\n/* ---- ボタン（高さ固定：2行でも崩れず機能リスト開始位置を揃える） ---- */\r\n.lzb-plan-button {\r\n  display: flex !important;\r\n  align-items: center !important;\r\n  justify-content: center !important;\r\n  text-align: center !important;\r\n  width: 100% !important;\r\n  box-sizing: border-box !important;\r\n  min-height: 54px !important;\r\n  padding: 12px 16px !important;\r\n  border-radius: 12px !important;\r\n  font-size: 14.5px !important;\r\n  font-weight: 700 !important;\r\n  text-decoration: none !important;\r\n  line-height: 1.35 !important;\r\n  white-space: normal !important;\r\n  word-break: keep-all !important;\r\n  overflow-wrap: anywhere !important;\r\n  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease !important;\r\n}\r\n.btn-secondary { background: #f3f4f7 !important; color: var(--lzb-ink) !important; }\r\n.btn-secondary:hover { background: #e9ebf0 !important; transform: translateY(-2px) !important; }\r\n.btn-primary {\r\n  background: linear-gradient(180deg, var(--lzb-brand-light), var(--lzb-brand)) !important;\r\n  color: #ffffff !important;\r\n  box-shadow: 0 8px 20px -8px color-mix(in srgb, var(--lzb-brand) 70%, transparent) !important;\r\n}\r\n.btn-primary:hover { transform: translateY(-2px) !important; box-shadow: 0 14px 28px -10px color-mix(in srgb, var(--lzb-brand) 75%, transparent) !important; }\r\n.lzb-plan-button-space { height: 54px !important; }\r\n\r\n/* ---- 区切り線 ---- */\r\n.lzb-plan-divider {\r\n  height: 1px !important;\r\n  background: linear-gradient(90deg, transparent, var(--lzb-line) 20%, var(--lzb-line) 80%, transparent) !important;\r\n  margin: 26px 0 !important;\r\n}\r\n\r\n/* ---- 機能リスト ---- */\r\n.lzb-plan-features { list-style: none !important; padding: 0 !important; margin: 0 !important; flex-grow: 1 !important; }\r\n.lzb-plan-features li {\r\n  display: flex !important;\r\n  align-items: flex-start !important;\r\n  gap: 11px !important;\r\n  font-size: 14px !important;\r\n  color: #475569 !important;\r\n  line-height: 1.6 !important;\r\n  overflow-wrap: break-word !important;\r\n  word-break: normal !important;\r\n  padding-bottom: 13px !important;\r\n  margin-bottom: 13px !important;\r\n  border-bottom: 1px solid rgba(15,23,42,0.05) !important;\r\n}\r\n.lzb-plan-features li:last-child { padding-bottom: 0 !important; margin-bottom: 0 !important; border-bottom: none !important; }\r\n.lzb-feature-icon { flex-shrink: 0 !important; width: 20px !important; height: 20px !important; color: var(--lzb-brand) !important; margin-top: 1px !important; }\r\n.lzb-feature-icon svg { width: 100% !important; height: 100% !important; fill: currentColor !important; }\r\n.lzb-feature-text { flex-grow: 1 !important; }\r\n\r\n@keyframes lzbFadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }\r\n\r\n/* =========================================================\r\n   レスポンシブ\r\n   ========================================================= */\r\n/* タブレット：基本2カラム。1プランなら中央1カラム */\r\n@media (min-width: 600px) and (max-width: 919px) {\r\n  .lzb-pricing-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; max-width: 720px !important; }\r\n  .lzb-pricing-wrapper:not(:has(.lzb-pricing-card:nth-child(2))) {\r\n    grid-template-columns: minmax(0, 360px) !important;\r\n    max-width: 360px !important;\r\n  }\r\n}\r\n/* PC：プラン数に応じてカラム数を自動調整。常に中央寄せで余白を均等に */\r\n@media (min-width: 920px) {\r\n  .lzb-pricing-wrapper {\r\n    grid-template-columns: repeat(3, minmax(0, 320px)) !important;\r\n    justify-content: center !important;\r\n    max-width: none !important;\r\n    gap: 24px !important;\r\n  }\r\n  .lzb-pricing-card { padding: 40px 30px 36px !important; }\r\n  .lzb-plan-name { font-size: 20px !important; }\r\n\r\n  /* プラン1つ：1カラム */\r\n  .lzb-pricing-wrapper:not(:has(.lzb-pricing-card:nth-child(2))) {\r\n    grid-template-columns: minmax(0, 360px) !important;\r\n  }\r\n  /* プラン2つ：2カラム（右の空き列をなくす） */\r\n  .lzb-pricing-wrapper:has(.lzb-pricing-card:nth-child(2)):not(:has(.lzb-pricing-card:nth-child(3))) {\r\n    grid-template-columns: repeat(2, minmax(0, 340px)) !important;\r\n  }\r\n  /* プラン3つ：3カラム（既定） */\r\n  /* プラン4つ以上：自動折返し */\r\n  .lzb-pricing-wrapper:has(.lzb-pricing-card:nth-child(4)) {\r\n    grid-template-columns: repeat(auto-fit, minmax(260px, 300px)) !important;\r\n  }\r\n}",
      "editor": "/* エディタ用プレースホルダー */\r\n.lzb-pricing-editor-placeholder { display: none; }\r\n.editor-styles-wrapper .lzb-pricing-editor-placeholder,\r\nbody.wp-admin .lzb-pricing-editor-placeholder {\r\n  display: block; background: #faf8ff; border: 2px dashed #ddd2f7;\r\n  border-radius: 18px; padding: 40px 24px; text-align: center; box-sizing: border-box;\r\n  margin: 16px 0; font-family: system-ui, -apple-system, sans-serif;\r\n}\r\n.lzb-placeholder-title { font-size: 16px; font-weight: 700; color: #1f2937; margin-bottom: 8px; }\r\n.lzb-placeholder-desc { font-size: 13px; color: #6b7280; line-height: 1.7; max-width: 460px; margin: 0 auto; }\r\n.lzb-placeholder-desc strong { color: #7c3aed; }\r\n\r\n/* =========================================================\r\n   料金表ブロック  ─  プロ仕様スタイル\r\n   ========================================================= */\r\n.lzb-pricing-container {\r\n  /* メインカラーから派生色を自動生成 */\r\n  --lzb-brand-light: color-mix(in srgb, var(--lzb-brand) 72%, white) !important;\r\n  --lzb-brand-dark:  color-mix(in srgb, var(--lzb-brand) 88%, black) !important;\r\n  --lzb-brand-tint:  color-mix(in srgb, var(--lzb-brand) 8%, white) !important;\r\n  --lzb-ink:    #0f172a !important;\r\n  --lzb-muted:  #64748b !important;\r\n  --lzb-line:   #eef0f4 !important;\r\n  --lzb-radius: 24px !important;\r\n  box-sizing: border-box !important;\r\n  width: 100% !important;\r\n  margin: 0 auto !important;\r\n  padding: 8px 0 !important;\r\n  font-family: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Segoe UI\", \"Hiragino Sans\", \"Noto Sans JP\", Roboto, Arial, sans-serif !important;\r\n  -webkit-font-smoothing: antialiased !important;\r\n}\r\n.lzb-pricing-container *,\r\n.lzb-pricing-container *::before,\r\n.lzb-pricing-container *::after { box-sizing: border-box !important; }\r\n\r\n/* ---- 月額 / 年額 切替スイッチ（中央集約・1つだけ） ---- */\r\n.lzb-billing-switch {\r\n  position: relative !important;\r\n  display: inline-flex !important;\r\n  align-items: center !important;\r\n  gap: 0 !important;\r\n  margin: 4px auto 40px auto !important;\r\n  padding: 5px !important;\r\n  background: #f1f3f7 !important;\r\n  border-radius: 999px !important;\r\n  width: max-content !important;\r\n  max-width: 100% !important;\r\n  box-shadow: inset 0 0 0 1px rgba(15,23,42,0.04) !important;\r\n  cursor: pointer !important;\r\n}\r\n/* 中央寄せ：コンテナを text-align:center にし、switch を inline-flex で中央配置 */\r\n.lzb-pricing-container { text-align: center !important; }\r\n.lzb-billing-switch { margin-left: auto !important; margin-right: auto !important; }\r\n\r\n.lzb-billing-option {\r\n  position: relative !important;\r\n  z-index: 2 !important;\r\n  border: none !important;\r\n  background: transparent !important;\r\n  cursor: pointer !important;\r\n  padding: 9px 26px !important;\r\n  font-size: 14px !important;\r\n  font-weight: 700 !important;\r\n  color: var(--lzb-muted) !important;\r\n  border-radius: 999px !important;\r\n  transition: color 0.3s ease !important;\r\n  white-space: nowrap !important;\r\n  font-family: inherit !important;\r\n  line-height: 1 !important;\r\n}\r\n.lzb-billing-option.is-active { color: var(--lzb-brand-dark) !important; }\r\n.lzb-billing-indicator {\r\n  position: absolute !important;\r\n  z-index: 1 !important;\r\n  top: 5px !important;\r\n  bottom: 5px !important;\r\n  left: 5px !important;\r\n  width: calc(50% - 5px) !important;\r\n  background: #ffffff !important;\r\n  border-radius: 999px !important;\r\n  box-shadow: 0 2px 8px rgba(15,23,42,0.10), 0 0 0 1px rgba(15,23,42,0.03) !important;\r\n  transition: transform 0.45s cubic-bezier(0.16,1,0.3,1) !important;\r\n}\r\n.lzb-pricing-container.is-annual-active .lzb-billing-indicator { transform: translateX(100%) !important; }\r\n.lzb-billing-switch:focus-visible { outline: 2px solid var(--lzb-brand) !important; outline-offset: 3px !important; }\r\n.lzb-billing-switch:hover .lzb-billing-option:not(.is-active) { color: var(--lzb-brand-dark) !important; opacity: 0.7 !important; }\r\n\r\n/* ---- カードレイアウト ---- */\r\n.lzb-pricing-wrapper {\r\n  display: grid !important;\r\n  grid-template-columns: 1fr !important;\r\n  gap: 20px !important;\r\n  width: 100% !important;\r\n  margin: 0 auto !important;\r\n  padding: 4px 0 8px 0 !important;\r\n  text-align: left !important;\r\n  align-items: stretch !important;\r\n}\r\n\r\n/* ---- カード本体 ---- */\r\n.lzb-pricing-card {\r\n  position: relative !important;\r\n  display: flex !important;\r\n  flex-direction: column !important;\r\n  background: #ffffff !important;\r\n  border: 1px solid var(--lzb-line) !important;\r\n  border-radius: var(--lzb-radius) !important;\r\n  padding: 36px 26px 32px !important;\r\n  box-shadow: 0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -16px rgba(15,23,42,0.10) !important;\r\n  transition: transform 0.4s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s cubic-bezier(0.16,1,0.3,1) !important;\r\n}\r\n.lzb-pricing-card:hover {\r\n  transform: translateY(-6px) !important;\r\n  box-shadow: 0 1px 2px rgba(15,23,42,0.04), 0 24px 48px -24px rgba(15,23,42,0.22) !important;\r\n}\r\n\r\n/* ---- おすすめハイライト ---- */\r\n.lzb-pricing-card.is-highlighted {\r\n  border: 1.5px solid transparent !important;\r\n  background:\r\n    linear-gradient(#ffffff, #ffffff) padding-box,\r\n    linear-gradient(150deg, var(--lzb-brand-light), var(--lzb-brand)) border-box !important;\r\n  box-shadow: 0 12px 40px -16px color-mix(in srgb, var(--lzb-brand) 55%, transparent), 0 2px 8px rgba(15,23,42,0.06) !important;\r\n}\r\n.lzb-pricing-card.is-highlighted:hover {\r\n  transform: translateY(-8px) !important;\r\n  box-shadow: 0 28px 56px -20px color-mix(in srgb, var(--lzb-brand) 60%, transparent), 0 2px 8px rgba(15,23,42,0.06) !important;\r\n}\r\n\r\n/* ---- バッジ（カード上辺中央） ---- */\r\n.lzb-pricing-badge {\r\n  position: absolute !important;\r\n  top: 0 !important;\r\n  left: 50% !important;\r\n  transform: translate(-50%, -50%) !important;\r\n  display: inline-flex !important;\r\n  align-items: center !important;\r\n  gap: 6px !important;\r\n  background: linear-gradient(135deg, var(--lzb-brand-light), var(--lzb-brand)) !important;\r\n  color: #ffffff !important;\r\n  font-size: 12px !important;\r\n  font-weight: 800 !important;\r\n  letter-spacing: 0.02em !important;\r\n  padding: 7px 16px !important;\r\n  border-radius: 999px !important;\r\n  white-space: nowrap !important;\r\n  line-height: 1 !important;\r\n  box-shadow: 0 6px 16px -4px color-mix(in srgb, var(--lzb-brand) 60%, transparent) !important;\r\n}\r\n.lzb-pricing-badge svg { width: 13px !important; height: 13px !important; flex-shrink: 0 !important; }\r\n\r\n/* ---- ヘッダー ---- */\r\n.lzb-plan-header {\r\n  display: flex !important;\r\n  align-items: center !important;\r\n  gap: 8px !important;\r\n  margin-bottom: 18px !important;\r\n}\r\n.lzb-plan-icon {\r\n  display: inline-flex !important;\r\n  align-items: center !important;\r\n  justify-content: center !important;\r\n  width: 34px !important; height: 34px !important;\r\n  border-radius: 10px !important;\r\n  background: var(--lzb-brand-tint) !important;\r\n  color: var(--lzb-brand) !important;\r\n  flex-shrink: 0 !important;\r\n}\r\n.lzb-plan-icon svg { width: 20px !important; height: 20px !important; display: block !important; }\r\n.lzb-plan-name {\r\n  font-size: 19px !important;\r\n  font-weight: 800 !important;\r\n  color: var(--lzb-ink) !important;\r\n  letter-spacing: -0.01em !important;\r\n  line-height: 1.2 !important;\r\n}\r\n\r\n/* ---- 価格 ---- */\r\n.lzb-plan-price-wrap { min-height: 48px !important; margin-bottom: 6px !important; }\r\n.lzb-price-group { display: flex !important; align-items: baseline !important; gap: 4px !important; }\r\n.lzb-price-annual { display: none !important; }\r\n.lzb-pricing-container.is-annual-active .lzb-price-monthly { display: none !important; }\r\n.lzb-pricing-container.is-annual-active .lzb-price-annual { display: flex !important; animation: lzbFadeIn 0.35s ease !important; }\r\n.lzb-price-amount {\r\n  font-size: clamp(34px, 9vw, 44px) !important;\r\n  font-weight: 800 !important;\r\n  color: var(--lzb-ink) !important;\r\n  letter-spacing: -0.035em !important;\r\n  font-variant-numeric: tabular-nums !important;\r\n  line-height: 1 !important;\r\n}\r\n.lzb-price-period { font-size: 14px !important; color: var(--lzb-muted) !important; font-weight: 600 !important; }\r\n\r\n/* ---- サブ価格 / 打消し（高さ固定で全カードのボタン位置を揃える） ---- */\r\n.lzb-sub-price-wrap {\r\n  display: flex !important;\r\n  flex-direction: column !important;\r\n  align-items: flex-start !important;\r\n  gap: 2px !important;\r\n  min-height: 44px !important;\r\n  margin-bottom: 4px !important;\r\n  justify-content: flex-start !important;\r\n}\r\n.lzb-sub-price { font-size: 13px !important; color: var(--lzb-muted) !important; font-weight: 500 !important; line-height: 1.4 !important; }\r\n.lzb-sub-price-strike { font-size: 13px !important; color: #b0b7c3 !important; text-decoration: line-through !important; line-height: 1.4 !important; }\r\n\r\n/* 年額用サブ価格・打消し線は、年額トグルON時のみ表示（月額時は隠す） */\r\n.lzb-sub-price-wrap.is-annual-only > .lzb-sub-price,\r\n.lzb-sub-price-wrap.is-annual-only > .lzb-sub-price-strike {\r\n  display: none !important;\r\n}\r\n.lzb-pricing-container.is-annual-active .lzb-sub-price-wrap.is-annual-only > .lzb-sub-price,\r\n.lzb-pricing-container.is-annual-active .lzb-sub-price-wrap.is-annual-only > .lzb-sub-price-strike {\r\n  display: inline !important;\r\n  animation: lzbFadeIn 0.35s ease !important;\r\n}\r\n\r\n/* ---- ボタン（高さ固定：2行でも崩れず機能リスト開始位置を揃える） ---- */\r\n.lzb-plan-button {\r\n  display: flex !important;\r\n  align-items: center !important;\r\n  justify-content: center !important;\r\n  text-align: center !important;\r\n  width: 100% !important;\r\n  box-sizing: border-box !important;\r\n  min-height: 54px !important;\r\n  padding: 12px 16px !important;\r\n  border-radius: 12px !important;\r\n  font-size: 14.5px !important;\r\n  font-weight: 700 !important;\r\n  text-decoration: none !important;\r\n  line-height: 1.35 !important;\r\n  white-space: normal !important;\r\n  word-break: keep-all !important;\r\n  overflow-wrap: anywhere !important;\r\n  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease !important;\r\n}\r\n.btn-secondary { background: #f3f4f7 !important; color: var(--lzb-ink) !important; }\r\n.btn-secondary:hover { background: #e9ebf0 !important; transform: translateY(-2px) !important; }\r\n.btn-primary {\r\n  background: linear-gradient(180deg, var(--lzb-brand-light), var(--lzb-brand)) !important;\r\n  color: #ffffff !important;\r\n  box-shadow: 0 8px 20px -8px color-mix(in srgb, var(--lzb-brand) 70%, transparent) !important;\r\n}\r\n.btn-primary:hover { transform: translateY(-2px) !important; box-shadow: 0 14px 28px -10px color-mix(in srgb, var(--lzb-brand) 75%, transparent) !important; }\r\n.lzb-plan-button-space { height: 54px !important; }\r\n\r\n/* ---- 区切り線 ---- */\r\n.lzb-plan-divider {\r\n  height: 1px !important;\r\n  background: linear-gradient(90deg, transparent, var(--lzb-line) 20%, var(--lzb-line) 80%, transparent) !important;\r\n  margin: 26px 0 !important;\r\n}\r\n\r\n/* ---- 機能リスト ---- */\r\n.lzb-plan-features { list-style: none !important; padding: 0 !important; margin: 0 !important; flex-grow: 1 !important; }\r\n.lzb-plan-features li {\r\n  display: flex !important;\r\n  align-items: flex-start !important;\r\n  gap: 11px !important;\r\n  font-size: 14px !important;\r\n  color: #475569 !important;\r\n  line-height: 1.6 !important;\r\n  overflow-wrap: break-word !important;\r\n  word-break: normal !important;\r\n  padding-bottom: 13px !important;\r\n  margin-bottom: 13px !important;\r\n  border-bottom: 1px solid rgba(15,23,42,0.05) !important;\r\n}\r\n.lzb-plan-features li:last-child { padding-bottom: 0 !important; margin-bottom: 0 !important; border-bottom: none !important; }\r\n.lzb-feature-icon { flex-shrink: 0 !important; width: 20px !important; height: 20px !important; color: var(--lzb-brand) !important; margin-top: 1px !important; }\r\n.lzb-feature-icon svg { width: 100% !important; height: 100% !important; fill: currentColor !important; }\r\n.lzb-feature-text { flex-grow: 1 !important; }\r\n\r\n@keyframes lzbFadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }\r\n\r\n/* =========================================================\r\n   レスポンシブ\r\n   ========================================================= */\r\n/* タブレット：基本2カラム。1プランなら中央1カラム */\r\n@media (min-width: 600px) and (max-width: 919px) {\r\n  .lzb-pricing-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; max-width: 720px !important; }\r\n  .lzb-pricing-wrapper:not(:has(.lzb-pricing-card:nth-child(2))) {\r\n    grid-template-columns: minmax(0, 360px) !important;\r\n    max-width: 360px !important;\r\n  }\r\n}\r\n/* PC：プラン数に応じてカラム数を自動調整。常に中央寄せで余白を均等に */\r\n@media (min-width: 920px) {\r\n  .lzb-pricing-wrapper {\r\n    grid-template-columns: repeat(3, minmax(0, 320px)) !important;\r\n    justify-content: center !important;\r\n    max-width: none !important;\r\n    gap: 24px !important;\r\n  }\r\n  .lzb-pricing-card { padding: 40px 30px 36px !important; }\r\n  .lzb-plan-name { font-size: 20px !important; }\r\n\r\n  /* プラン1つ：1カラム */\r\n  .lzb-pricing-wrapper:not(:has(.lzb-pricing-card:nth-child(2))) {\r\n    grid-template-columns: minmax(0, 360px) !important;\r\n  }\r\n  /* プラン2つ：2カラム（右の空き列をなくす） */\r\n  .lzb-pricing-wrapper:has(.lzb-pricing-card:nth-child(2)):not(:has(.lzb-pricing-card:nth-child(3))) {\r\n    grid-template-columns: repeat(2, minmax(0, 340px)) !important;\r\n  }\r\n  /* プラン3つ：3カラム（既定） */\r\n  /* プラン4つ以上：自動折返し */\r\n  .lzb-pricing-wrapper:has(.lzb-pricing-card:nth-child(4)) {\r\n    grid-template-columns: repeat(auto-fit, minmax(260px, 300px)) !important;\r\n  }\r\n}"
    },
    "script": {
      "view": "document.addEventListener('DOMContentLoaded', function () {\r\n    var containers = document.querySelectorAll('.lzb-pricing-container');\r\n    var easeOutQuart = function (t) { return 1 - Math.pow(1 - t, 4); };\r\n\r\n    // \"¥1,200/月\" のような文字列を 接頭辞・数値・接尾辞・小数桁 に分解\r\n    var parsePrice = function (str) {\r\n        if (!str) return null;\r\n        var match = str.match(/^([^0-9]*)([0-9,\\.]+)([^0-9]*)$/);\r\n        if (!match) return null;\r\n        var numStr = match[2].replace(/,/g, '');\r\n        var decimals = numStr.indexOf('.') !== -1 ? numStr.split('.')[1].length : 0;\r\n        return { prefix: match[1], val: parseFloat(numStr), suffix: match[3], decimals: decimals };\r\n    };\r\n\r\n    var formatNumber = function (num, decimals) {\r\n        return num.toLocaleString('en-US', {\r\n            minimumFractionDigits: decimals,\r\n            maximumFractionDigits: decimals\r\n        });\r\n    };\r\n\r\n    containers.forEach(function (container) {\r\n        var options = container.querySelectorAll('.lzb-billing-option');\r\n        if (options.length === 0) return;\r\n\r\n        var cards = container.querySelectorAll('.lzb-pricing-card');\r\n\r\n        // 数値カウントアップ演出（年額のみを持つカードに対して）\r\n        var animateCard = function (card, toAnnual) {\r\n            var monthlyAmt = card.querySelector('.lzb-price-monthly .lzb-price-amount');\r\n            var annualAmt  = card.querySelector('.lzb-price-annual .lzb-price-amount');\r\n            if (!monthlyAmt || !annualAmt) return;\r\n\r\n            var mData = parsePrice(monthlyAmt.dataset.original);\r\n            var aData = parsePrice(annualAmt.dataset.original);\r\n            if (!mData || !aData) return;\r\n\r\n            var targetEl  = toAnnual ? annualAmt : monthlyAmt;\r\n            var startVal  = toAnnual ? mData.val : aData.val;\r\n            var endVal    = toAnnual ? aData.val : mData.val;\r\n            var prefix    = toAnnual ? aData.prefix : mData.prefix;\r\n            var suffix    = toAnnual ? aData.suffix : mData.suffix;\r\n            var decimals  = toAnnual ? aData.decimals : mData.decimals;\r\n\r\n            var duration = 600, startTime = null;\r\n            var step = function (now) {\r\n                if (!startTime) startTime = now;\r\n                var progress = Math.min((now - startTime) / duration, 1);\r\n                var cur = startVal + (endVal - startVal) * easeOutQuart(progress);\r\n                targetEl.textContent = prefix + formatNumber(cur, decimals) + suffix;\r\n                if (progress < 1) {\r\n                    window.requestAnimationFrame(step);\r\n                } else {\r\n                    targetEl.textContent = targetEl.dataset.original;\r\n                }\r\n            };\r\n            window.requestAnimationFrame(step);\r\n        };\r\n\r\n        var setBilling = function (billing) {\r\n            var toAnnual = (billing === 'annual');\r\n            container.classList.toggle('is-annual-active', toAnnual);\r\n\r\n            options.forEach(function (opt) {\r\n                var active = opt.dataset.billing === billing;\r\n                opt.classList.toggle('is-active', active);\r\n                opt.setAttribute('aria-pressed', active ? 'true' : 'false');\r\n            });\r\n\r\n            cards.forEach(function (card) { animateCard(card, toAnnual); });\r\n        };\r\n\r\n        var isAnnual = function () { return container.classList.contains('is-annual-active'); };\r\n\r\n        options.forEach(function (opt) {\r\n            opt.addEventListener('click', function (e) {\r\n                e.stopPropagation();\r\n                var target = opt.dataset.billing;\r\n                // すでにアクティブな側をもう一度押したら反対側へトグル\r\n                if ((target === 'annual') === isAnnual()) {\r\n                    setBilling(isAnnual() ? 'monthly' : 'annual');\r\n                } else {\r\n                    setBilling(target);\r\n                }\r\n            });\r\n        });\r\n\r\n        // スイッチ本体（余白部分含む）のクリックでも月⇄年をトグル\r\n        var switchEl = container.querySelector('.lzb-billing-switch');\r\n        if (switchEl) {\r\n            switchEl.addEventListener('click', function () {\r\n                setBilling(isAnnual() ? 'monthly' : 'annual');\r\n            });\r\n            // キーボード操作（Enter / Space）対応\r\n            switchEl.setAttribute('tabindex', '0');\r\n            switchEl.addEventListener('keydown', function (e) {\r\n                if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') {\r\n                    e.preventDefault();\r\n                    setBilling(isAnnual() ? 'monthly' : 'annual');\r\n                }\r\n            });\r\n        }\r\n    });\r\n});"
    },
    "styles": [],
    "condition": [],
    "edit_url": null,
    "provide_context_to_blocks": "",
    "custom_context_slug": "",
    "allowed_blocks": "",
    "ancestor": ""
  }
]