.wp-block-etd-excel-table-designer,
.etd-table-block {
    --etd-header-bg: #1e3a8a;
    --etd-header-text: #ffffff;
    --etd-body-bg: #ffffff;
    --etd-text-color: #111827;
    --etd-border-color: #d1d5db;
    --etd-stripe-bg: #f8fafc;
    --etd-hover-bg: #eef2ff;
    --etd-font-size: 15px;
    --etd-cell-padding: 12px;
    --etd-cell-padding-x: 12px;
    --etd-cell-padding-y: 10px;
    --etd-border-width: 1px;
    --etd-border-style: solid;
    --etd-radius: 12px;
    --etd-table-width: 100%;
    --etd-min-width: 520px;
    --etd-text-align: left;
    --etd-outer-padding: 0px;
    color: var(--etd-text-color);
    padding: var(--etd-outer-padding);
    box-sizing: border-box;
}

.etd-table-block * {
    box-sizing: border-box;
}

.etd-table-wrap {
    width: 100%;
    max-width: 100%;
}

.etd-responsive-scroll .etd-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.etd-table {
    width: var(--etd-table-width);
    min-width: var(--etd-min-width);
    border-collapse: separate;
    border-spacing: 0;
    font-size: var(--etd-font-size);
    line-height: 1.65;
    color: var(--etd-text-color);
    background: var(--etd-body-bg);
    text-align: var(--etd-text-align);
    overflow: hidden;
}

.etd-align-left .etd-table {
    margin-left: 0;
    margin-right: auto;
}

.etd-align-center .etd-table {
    margin-left: auto;
    margin-right: auto;
}

.etd-align-right .etd-table {
    margin-left: auto;
    margin-right: 0;
}

.etd-table caption {
    caption-side: top;
    text-align: left;
    font-weight: 700;
    margin-bottom: 0.6em;
    color: var(--etd-text-color);
}

.etd-table th,
.etd-table td {
    padding: var(--etd-cell-padding-y, var(--etd-cell-padding)) var(--etd-cell-padding-x, var(--etd-cell-padding));
    border-right: var(--etd-border-width) var(--etd-border-style) var(--etd-border-color);
    border-bottom: var(--etd-border-width) var(--etd-border-style) var(--etd-border-color);
    vertical-align: middle;
    background: var(--etd-body-bg);
    overflow-wrap: anywhere;
}

.etd-table thead th {
    background: var(--etd-header-bg);
    color: var(--etd-header-text);
    font-weight: 700;
}

/* 外枠は表示せず、内側の罫線のみ表示 */
.etd-table tr > *:first-child {
    border-left: 0;
}

.etd-table tr > *:last-child {
    border-right: 0;
}

.etd-table thead tr:first-child th,
.etd-table tbody:first-child tr:first-child td {
    border-top: 0;
}

.etd-table tbody tr:last-child td {
    border-bottom: 0;
}

.etd-table thead tr:first-child th:first-child,
.etd-table tbody:first-child tr:first-child td:first-child {
    border-top-left-radius: var(--etd-radius);
}

.etd-table thead tr:first-child th:last-child,
.etd-table tbody:first-child tr:first-child td:last-child {
    border-top-right-radius: var(--etd-radius);
}

.etd-table tbody tr:last-child td:first-child {
    border-bottom-left-radius: var(--etd-radius);
}

.etd-table tbody tr:last-child td:last-child {
    border-bottom-right-radius: var(--etd-radius);
}

.etd-table-block.is-striped .etd-table tbody tr:nth-child(even) td {
    background: var(--etd-stripe-bg);
}

.etd-table-block.is-hover .etd-table tbody tr:hover td {
    background: var(--etd-hover-bg);
}

.etd-table-block.is-sticky-first-column .etd-table th:first-child,
.etd-table-block.is-sticky-first-column .etd-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
}

.etd-table-block.is-sticky-first-column .etd-table thead th:first-child {
    z-index: 3;
}

.etd-shadow-soft .etd-table {
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.10);
}

.etd-shadow-medium .etd-table {
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.14);
}

.etd-shadow-strong .etd-table {
    box-shadow: 0 20px 48px rgba(15, 23, 42, 0.22);
}

.etd-preset-card .etd-table,
.etd-preset-soft .etd-table,
.etd-preset-green .etd-table,
.etd-preset-warm .etd-table,
.etd-preset-sakura .etd-table,
.etd-preset-dark .etd-table {
    border-radius: var(--etd-radius);
}

.etd-preset-card .etd-table th,
.etd-preset-card .etd-table td {
    border-left: 0;
    border-right: 0;
}

.etd-preset-document .etd-table {
    border-collapse: collapse;
    border-spacing: 0;
    font-family: inherit;
}

.etd-preset-document .etd-table th,
.etd-preset-document .etd-table td {
    border-radius: 0 !important;
}

.etd-preset-document .etd-table caption {
    border-left: 4px solid var(--etd-header-bg);
    padding-left: 0.7em;
}

.etd-preset-minimal .etd-table th,
.etd-preset-minimal .etd-table td {
    border-left: 0 !important;
    border-right: 0 !important;
}

.etd-preset-minimal .etd-table thead th {
    background: transparent;
    color: var(--etd-text-color);
    border-top: 0;
    border-bottom-width: calc(var(--etd-border-width) + 1px);
}

.etd-preset-minimal .etd-table tbody tr:last-child td {
    border-bottom: 0;
}

.etd-preset-executive .etd-table thead th {
    letter-spacing: 0.04em;
}

.etd-preset-executive .etd-table th,
.etd-preset-executive .etd-table td {
    border-color: var(--etd-border-color);
}

.etd-preset-dark .etd-table {
    color: var(--etd-text-color);
}

.etd-preset-dark .etd-table caption {
    color: var(--etd-text-color);
}

.etd-preset-dark .etd-table td {
    background: var(--etd-body-bg);
}

@media (max-width: 640px) {
    .etd-responsive-stack .etd-table-wrap {
        overflow: visible;
    }

    .etd-responsive-stack .etd-table {
        min-width: 0 !important;
        width: 100% !important;
        border-collapse: separate;
    }

    .etd-responsive-stack .etd-table thead {
        display: none;
    }

    .etd-responsive-stack .etd-table,
    .etd-responsive-stack .etd-table tbody,
    .etd-responsive-stack .etd-table tr,
    .etd-responsive-stack .etd-table td {
        display: block;
    }

    .etd-responsive-stack .etd-table tr {
        margin-bottom: 14px;
        border: var(--etd-border-width) var(--etd-border-style) var(--etd-border-color);
        border-radius: var(--etd-radius);
        overflow: hidden;
        background: var(--etd-body-bg);
    }

    .etd-responsive-stack .etd-table td {
        border: 0;
        border-bottom: var(--etd-border-width) var(--etd-border-style) var(--etd-border-color);
        border-radius: 0 !important;
        display: grid;
        grid-template-columns: minmax(8em, 38%) 1fr;
        gap: 10px;
        text-align: left;
    }

    .etd-responsive-stack .etd-table td:last-child {
        border-bottom: 0;
    }

    .etd-responsive-stack .etd-table td::before {
        content: attr(data-label);
        font-weight: 700;
        color: var(--etd-text-color);
        opacity: 0.75;
    }

    .etd-table {
        font-size: min(var(--etd-font-size), 15px);
    }
}

/* =========================================================
   外枠線の強制非表示
   テーマ側の table CSS によって外枠が付く場合でも、
   このブロック内では外側の線を出さず、内側の罫線だけを残します。
   ========================================================= */
.wp-block-etd-excel-table-designer,
.etd-table-block,
.etd-table-block .etd-table-wrap,
.etd-table-block .etd-table {
    border: 0 !important;
    outline: 0 !important;
}

.etd-table-block .etd-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.etd-table-block.etd-shadow-none .etd-table {
    box-shadow: none !important;
}

.etd-table-block .etd-table th,
.etd-table-block .etd-table td {
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: var(--etd-border-width) var(--etd-border-style) var(--etd-border-color) !important;
    border-bottom: var(--etd-border-width) var(--etd-border-style) var(--etd-border-color) !important;
}

/* 右端・下端の線を消して、一番外側の四角い枠を作らない */
.etd-table-block .etd-table tr > *:last-child {
    border-right: 0 !important;
}

.etd-table-block .etd-table tbody tr:last-child > td,
.etd-table-block .etd-table:not(:has(tbody tr)) thead tr:last-child > th {
    border-bottom: 0 !important;
}

/* テーマが疑似要素で枠を付けるケースへの対策 */
.etd-table-block .etd-table::before,
.etd-table-block .etd-table::after,
.etd-table-block .etd-table-wrap::before,
.etd-table-block .etd-table-wrap::after {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}
