/* =====================================================
   SailingDay Pattern Styles
   patterns/ 配下の各パターンが使う共通スタイル。
   アイコンは FontAwesome（<i class="fas fa-...">）で統一。
   ===================================================== */

/* ============================================================
   Header (parts/header.html + shortcode sailingday_header)
   ============================================================ */

.sd-header-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
    max-width:1280px;
    margin:0 auto;
    flex-wrap:nowrap;
    position:relative;
}

/* Brand */
.sd-brand {
    display:flex;
    align-items:center;
    gap:0.6rem;
    flex-shrink:0;
}
.sd-brand-logo { display:flex; align-items:center; }
.sd-brand-logo img,
.sd-brand-logo .custom-logo,
.sd-brand-logo .custom-logo-link img {
    display:block; height:40px; width:auto; max-height:40px;
}
.sd-brand-text { display:flex; flex-direction:column; line-height:1.1; }
.sd-brand-title {
    font-size:1.25rem; font-weight:700;
    color:var(--wp--preset--color--primary, #004D3C);
    text-decoration:none; line-height:1.1;
}
.sd-brand-title:hover { text-decoration:none; opacity:0.85; }
.sd-brand-subtitle {
    display:block; font-size:0.72rem; line-height:1.2;
    color:var(--wp--preset--color--text-muted, #6B7280);
    margin-top:0.2rem;
}

/* Primary Navigation (Desktop) */
.sd-primary-nav { flex:1; display:flex; justify-content:center; }
.sd-primary-nav .sd-nav-list,
.sd-primary-nav ul.sd-nav-list,
.sd-primary-nav .menu {
    display:flex; flex-wrap:wrap; gap:1.4rem;
    list-style:none; margin:0; padding:0;
}
.sd-primary-nav .sd-nav-list li,
.sd-primary-nav .menu li { list-style:none; }
.sd-primary-nav .sd-nav-list a,
.sd-primary-nav .menu a {
    color:var(--wp--preset--color--text, #111111);
    text-decoration:none; font-weight:500; font-size:0.92rem;
    padding:0.25rem 0; display:inline-block; transition:color .15s ease;
}
.sd-primary-nav .sd-nav-list a:hover,
.sd-primary-nav .menu a:hover,
.sd-primary-nav .current-menu-item > a {
    color:var(--wp--preset--color--primary, #004D3C);
}

/* Header Actions */
.sd-header-actions {
    display:flex; align-items:center; gap:0.5rem;
    flex-wrap:nowrap; flex-shrink:0;
}

/* Button base */
.sd-btn {
    display:inline-flex; align-items:center; justify-content:center; gap:0.4rem;
    padding:0.5rem 1.1rem; border-radius:9999px;
    font-weight:600; font-size:0.88rem;
    text-decoration:none; white-space:nowrap;
    transition:all .15s ease;
    border:1px solid transparent; line-height:1.2;
    cursor:pointer;
}
.sd-btn-outline {
    background:#ffffff; color:var(--wp--preset--color--text, #111111);
    border-color:var(--wp--preset--color--border, #E5E7EB);
}
.sd-btn-outline:hover {
    border-color:var(--wp--preset--color--primary, #004D3C);
    color:var(--wp--preset--color--primary, #004D3C);
}
.sd-btn-primary {
    background:var(--wp--preset--color--primary, #004D3C);
    color:#ffffff; border-color:var(--wp--preset--color--primary, #004D3C);
}
.sd-btn-primary:hover {
    background:var(--wp--preset--color--primary-dark, #00352A);
    color:#ffffff; text-decoration:none;
}
.sd-btn-primary i { color:#ffffff; }
.sd-btn-large { padding:0.95rem 2.2rem; font-size:1rem; font-weight:700; }
.sd-btn-block { display:flex; width:100%; }

/* Hero CTAs */
.sd-hero-ctas { display:flex; gap:1rem; flex-wrap:wrap; margin-top:0.5rem; }
.sd-hero-ctas .sd-btn { box-shadow:0 4px 14px rgba(0,77,60,0.14); }
.sd-hero-ctas .sd-btn-outline { box-shadow:none; }

/* ============================================================
   Hamburger + Drawer (Mobile)
   ============================================================ */
.sd-menu-toggle-input { display:none; }

.sd-menu-toggle-btn {
    display:none;
    width:40px; height:40px;
    flex-direction:column; justify-content:center; align-items:center; gap:5px;
    cursor:pointer; z-index:1002;
    flex-shrink:0;
}
.sd-menu-toggle-btn span {
    display:block; width:22px; height:2px;
    background:var(--wp--preset--color--text, #111111);
    border-radius:2px; transition:all .25s ease;
}

/* Overlay (半透明背景) */
.sd-menu-overlay {
    display:none;
    position:fixed; inset:0;
    background:rgba(0,0,0,0.5);
    z-index:1000;
    cursor:pointer;
    opacity:0; transition:opacity .25s ease;
}

/* Drawer */
.sd-drawer {
    display:flex; flex-direction:column;
    position:fixed; top:0; right:-320px; bottom:0;
    width:320px; max-width:85vw;
    background:#ffffff;
    z-index:1001;
    padding:5rem 1.5rem 2rem;
    box-shadow:-4px 0 24px rgba(0,0,0,0.1);
    transition:right .3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y:auto;
    visibility:hidden;
}

.sd-drawer-close {
    position:absolute; top:1.25rem; right:1.25rem;
    width:36px; height:36px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:#F5F7F6; color:var(--wp--preset--color--text, #111111);
    cursor:pointer; font-size:1.1rem;
    transition:background .15s ease;
}
.sd-drawer-close:hover { background:var(--wp--preset--color--border, #E5E7EB); }

.sd-drawer-nav { margin-bottom:1.5rem; }
.sd-drawer-list,
.sd-drawer-nav ul {
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column;
}
.sd-drawer-list li,
.sd-drawer-nav ul li {
    list-style:none;
    border-bottom:1px solid var(--wp--preset--color--border, #E5E7EB);
}
.sd-drawer-list a,
.sd-drawer-nav ul a {
    display:block; padding:1rem 0.5rem;
    color:var(--wp--preset--color--text, #111111);
    text-decoration:none; font-weight:600; font-size:0.95rem;
}
.sd-drawer-list a:hover,
.sd-drawer-nav ul a:hover { color:var(--wp--preset--color--primary, #004D3C); }

.sd-drawer-actions {
    display:flex; flex-direction:column; gap:0.75rem;
    margin-top:auto; padding-top:1.5rem;
}

/* Drawer active state via checkbox trick */
.sd-menu-toggle-input:checked ~ .sd-menu-overlay {
    display:block; opacity:1;
}
.sd-menu-toggle-input:checked ~ .sd-drawer {
    right:0; visibility:visible;
}
/* body scroll lock (hover trick, best effort — 完全ロックは JS 必要) */
.sd-menu-toggle-input:checked ~ .sd-menu-toggle-btn span:nth-child(1) {
    transform:translateY(7px) rotate(45deg);
}
.sd-menu-toggle-input:checked ~ .sd-menu-toggle-btn span:nth-child(2) { opacity:0; }
.sd-menu-toggle-input:checked ~ .sd-menu-toggle-btn span:nth-child(3) {
    transform:translateY(-7px) rotate(-45deg);
}

/* ============================================================
   Section badge & shared
   ============================================================ */
.sd-section-badge {
    display:inline-flex; align-items:center; justify-content:center;
    width:2.2rem; height:2.2rem; border-radius:9999px;
    background:var(--wp--preset--color--primary, #004D3C);
    color:#ffffff; font-weight:700; font-size:1.1rem; line-height:1;
    margin-right:0.6rem; vertical-align:middle;
}
.sd-section-heading {
    display:flex; align-items:center; gap:0.4rem; flex-wrap:wrap;
}

/* ============================================================
   Challenges icon circles
   ============================================================ */
.sd-icon-circle {
    width:110px; height:110px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 1rem;
}
.sd-icon-circle i { font-size:2.6rem; }
.sd-icon-circle--yellow  { background-color:#FFF4E5; color:#F5A623; }
.sd-icon-circle--pink    { background-color:#FFE5EC; color:#E91E63; }
.sd-icon-circle--mint    { background-color:#E0F5EE; color:#009688; }
.sd-icon-circle--blue    { background-color:#E3F2FD; color:#1976D2; }
.sd-icon-circle--purple  { background-color:#F0E5F7; color:#673AB7; }
.sd-icon-circle--orange  { background-color:#FFF3E0; color:#FF7043; }

.sd-challenge-text {
    text-align:center; font-weight:600; font-size:0.92rem; line-height:1.5;
    color:var(--wp--preset--color--text, #111111);
}

/* ============================================================
   Impact cards
   ============================================================ */
.sd-impact-card {
    background:#ffffff; border:1px solid var(--wp--preset--color--border, #E5E7EB);
    border-radius:12px; padding:1.5rem 1rem;
    height:100%; box-sizing:border-box;
    display:flex; flex-direction:column;
}
.sd-impact-label { text-align:center; font-weight:700; font-size:0.95rem; margin:0 0 1rem; }
.sd-impact-number { text-align:center; color:var(--wp--preset--color--accent, #00875A); font-weight:700; }
.sd-impact-number .num { font-size:2.6rem; line-height:1; }
.sd-impact-number .unit { font-size:1.2rem; margin-left:0.3rem; font-weight:700; }
.sd-impact-desc { text-align:center; font-size:0.82rem; color:var(--wp--preset--color--text, #111111); margin:1rem 0; line-height:1.6; flex:1; }
.sd-impact-cite { text-align:center; font-size:0.7rem; color:var(--wp--preset--color--text-muted, #6B7280); margin:0; }

/* ============================================================
   Hero section (full width)
   ============================================================ */

.sd-hero-full {
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding-left:0 !important;
    padding-right:0 !important;
}
.sd-hero-full > .wp-block-cover__inner-container {
    max-width:1180px; margin:0 auto;
    padding-left:clamp(1.25rem, 4vw, 3rem);
    padding-right:clamp(1.25rem, 4vw, 3rem);
    box-sizing:border-box;
}
.sd-hero-full .wp-block-cover__inner-container > .wp-block-group {
    align-items:center !important;
}

/* Stats card: 完全レイアウト（純PHP出力） */
.sd-stats-card {
    background:#ffffff;
    border:2px solid var(--wp--preset--color--border, #E5E7EB);
    border-radius:16px;
    padding:1.75rem 1.25rem;
    max-width:100%;
    box-sizing:border-box;
    height:auto;
    align-self:center;
}
.sd-stats-grid {
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:0.75rem;
}
.sd-stat-col {
    text-align:center; min-width:0;
    display:flex; flex-direction:column; align-items:center;
    gap:0.35rem;
}
.sd-mini-icon-circle {
    display:inline-flex;
    align-items:center; justify-content:center;
    width:48px; height:48px; border-radius:50%;
    background:var(--wp--preset--color--accent, #00875A); color:#fff;
    line-height:1; vertical-align:middle;
    margin:0 auto;
}
.sd-mini-icon-circle i { font-size:1.4rem; line-height:1; }

.sd-stat-label {
    font-size:0.82rem; font-weight:700;
    color:var(--wp--preset--color--text-muted, #6B7280);
    margin:0;
}
.sd-stat-number {
    display:block; white-space:nowrap; overflow:hidden;
    font-size:clamp(1.5rem, 2.6vw, 2.4rem);
    line-height:1.1;
    font-weight:700;
    color:var(--wp--preset--color--accent, #00875A);
    margin:0.2rem 0;
    text-align:center;
}
.sd-stat-unit {
    font-size:0.75rem;
    color:var(--wp--preset--color--text-muted, #6B7280);
    margin:0;
}
.sd-stats-note {
    text-align:right; font-size:0.7rem;
    color:var(--wp--preset--color--text-muted, #6B7280);
    margin:0.8rem 0 0;
}

/* ============================================================
   Company Logos strip (社会的証明)
   ============================================================ */
.sd-company-logos-section {
    border-top:1px solid var(--wp--preset--color--border, #E5E7EB);
    border-bottom:1px solid var(--wp--preset--color--border, #E5E7EB);
}
.sd-logos-heading {
    text-transform:uppercase;
}
.sd-logo-strip {
    display:grid;
    grid-template-columns:repeat(8, 1fr);
    gap:1.5rem;
    align-items:center;
    max-width:1180px;
    margin:0 auto;
}
.sd-logo-item {
    display:flex; align-items:center; justify-content:center;
    padding:0.5rem;
    filter:grayscale(30%);
    opacity:0.75;
    transition:all .2s ease;
}
.sd-logo-item:hover {
    filter:grayscale(0%);
    opacity:1;
}
.sd-logo-item img {
    max-width:100%; max-height:60px; width:auto; height:auto;
    display:block;
}

/* ============================================================
   Categories section (CSS-only tabs)
   ============================================================ */
.sd-tab-input {
    position:absolute; opacity:0; pointer-events:none; width:0; height:0;
}
.sd-tab-bar {
    display:flex; flex-wrap:wrap; gap:0.5rem; justify-content:center; margin-bottom:1.5rem;
}
.sd-tab {
    display:inline-flex; align-items:center; gap:0.5rem;
    padding:0.7rem 1.4rem; border-radius:9999px;
    background:#ffffff; border:1px solid var(--wp--preset--color--border, #E5E7EB);
    cursor:pointer; font-weight:600; font-size:0.95rem;
    color:var(--wp--preset--color--text, #111111);
    transition:all .15s ease; user-select:none;
}
.sd-tab i { color:var(--wp--preset--color--primary, #004D3C); font-size:1.05rem; }

#sd-tab-1:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-1"],
#sd-tab-2:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-2"],
#sd-tab-3:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-3"],
#sd-tab-4:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-4"],
#sd-tab-5:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-5"],
#sd-tab-6:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-6"],
#sd-tab-7:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-7"] {
    background: var(--wp--preset--color--primary,#004D3C);
    color:#ffffff; border-color: var(--wp--preset--color--primary,#004D3C);
    box-shadow:0 4px 14px rgba(0,77,60,0.18);
}
#sd-tab-1:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-1"] i,
#sd-tab-2:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-2"] i,
#sd-tab-3:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-3"] i,
#sd-tab-4:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-4"] i,
#sd-tab-5:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-5"] i,
#sd-tab-6:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-6"] i,
#sd-tab-7:checked ~ .sd-tab-bar .sd-tab[for="sd-tab-7"] i { color:#ffffff; }

.sd-tab-panel { display:none; }
.sd-tab-panel-inner {
    background:#ffffff; border:1px solid var(--wp--preset--color--border, #E5E7EB);
    border-radius:16px; padding:2rem;
}
#sd-tab-1:checked ~ .sd-tab-panels .sd-panel-1,
#sd-tab-2:checked ~ .sd-tab-panels .sd-panel-2,
#sd-tab-3:checked ~ .sd-tab-panels .sd-panel-3,
#sd-tab-4:checked ~ .sd-tab-panels .sd-panel-4,
#sd-tab-5:checked ~ .sd-tab-panels .sd-panel-5,
#sd-tab-6:checked ~ .sd-tab-panels .sd-panel-6,
#sd-tab-7:checked ~ .sd-tab-panels .sd-panel-7 { display:block; }

.sd-effects-panel h3 { font-size:1.4rem; font-weight:700; margin:0 0 1.5rem; color:var(--wp--preset--color--primary,#004D3C); }
.sd-effects-list { list-style:none; padding:0; margin:0 0 2rem; }
.sd-effects-list li {
    display:flex; align-items:center; gap:0.6rem; font-size:1rem; font-weight:500;
    padding:0.5rem 0; color:var(--wp--preset--color--text,#111111);
}
.sd-effects-list li i { color:var(--wp--preset--color--accent,#00875A); font-size:0.9rem; }

.sd-ill-illustration {
    width:100%; max-width:280px; aspect-ratio:1/1; margin:1.5rem auto 0;
    border-radius:16px; background:linear-gradient(135deg,#EEF2F0 0%,#D6E2DC 100%);
    display:flex; align-items:center; justify-content:center;
    color:var(--wp--preset--color--text-muted,#6B7280); font-size:0.85rem; text-align:center;
}

.sd-panel-header { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:1rem; margin-bottom:1.5rem; }
.sd-panel-header h3 { font-size:1.2rem; font-weight:700; margin:0; }
.sd-link-arrow { color:var(--wp--preset--color--primary,#004D3C); font-weight:600; font-size:0.9rem; text-decoration:none; }
.sd-link-arrow:hover { text-decoration:underline; }

.sd-service-rail {
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; position:relative;
}
.sd-service-card {
    background:#ffffff; border:1px solid var(--wp--preset--color--border,#E5E7EB);
    border-radius:12px; padding:1rem; display:flex; flex-direction:column; gap:0.5rem;
    position:relative; transition:box-shadow .15s ease;
}
.sd-service-card:hover { box-shadow:0 8px 20px rgba(0,0,0,0.06); }
.sd-rank-badge {
    position:absolute; top:-10px; left:-10px;
    background:var(--wp--preset--color--primary,#004D3C); color:#ffffff;
    width:28px; height:28px; border-radius:6px;
    display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.95rem;
}
.sd-service-head { display:flex; align-items:center; gap:0.6rem; margin-bottom:0.3rem; }
.sd-service-logo {
    width:56px; height:56px; border-radius:8px; background:#F5F7F6;
    display:flex; align-items:center; justify-content:center;
    color:var(--wp--preset--color--text-muted,#6B7280); font-size:1.2rem; font-weight:700; flex-shrink:0;
}
.sd-service-name-block { display:flex; flex-direction:column; }
.sd-service-name { font-size:1.05rem; font-weight:700; margin:0 0 0.2rem; }
.sd-service-rating { font-size:0.78rem; color:var(--wp--preset--color--text-muted,#6B7280); display:flex; align-items:center; gap:0.4rem; }
.sd-service-rating i { color:#F5A623; }
.sd-service-desc { font-size:0.84rem; color:var(--wp--preset--color--accent,#00875A); margin:0.4rem 0; line-height:1.5; }
.sd-case-label { font-weight:700; font-size:0.85rem; margin:0.4rem 0 0.2rem; color:var(--wp--preset--color--text,#111111); }
.sd-case-meta { font-size:0.78rem; color:var(--wp--preset--color--text-muted,#6B7280); margin:0 0 0.5rem; }
.sd-stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:0.5rem; margin:0.6rem 0; padding:0.5rem 0; border-top:1px solid var(--wp--preset--color--border,#E5E7EB); }
.sd-stat-item { text-align:center; }
.sd-stat-item .sd-stat-label { font-size:0.65rem; color:var(--wp--preset--color--text-muted,#6B7280); margin-bottom:0.2rem; }
.sd-stat-item .sd-stat-value { font-size:1.1rem; font-weight:700; color:var(--wp--preset--color--accent,#00875A); }
.sd-cta-row { display:flex; gap:0.5rem; margin-top:auto; }
.sd-cta-detail, .sd-cta-case {
    flex:1; text-align:center; padding:0.5rem 0.4rem; border-radius:6px;
    font-size:0.78rem; font-weight:600; cursor:pointer; border:1px solid var(--wp--preset--color--border,#E5E7EB);
    text-decoration:none; transition:all .15s ease;
}
.sd-cta-detail { background:#ffffff; color:var(--wp--preset--color--text,#111111); }
.sd-cta-detail:hover { border-color:var(--wp--preset--color--primary,#004D3C); color:var(--wp--preset--color--primary,#004D3C); }
.sd-cta-case { background:var(--wp--preset--color--primary,#004D3C); color:#ffffff; border-color:var(--wp--preset--color--primary,#004D3C); }
.sd-cta-case:hover { background:var(--wp--preset--color--primary-dark,#00352A); }

.sd-nav-arrow {
    position:absolute; right:-0.6rem; top:50%; transform:translateY(-50%);
    width:36px; height:36px; border-radius:50%; background:#ffffff;
    border:1px solid var(--wp--preset--color--border,#E5E7EB);
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    box-shadow:0 2px 6px rgba(0,0,0,0.06);
}
.sd-nav-arrow:hover { background:var(--wp--preset--color--primary,#004D3C); color:#fff; }

.sd-pagination { display:flex; justify-content:center; gap:0.6rem; margin-top:1.5rem; }
.sd-dot { width:10px; height:10px; border-radius:50%; background:var(--wp--preset--color--border,#E5E7EB); cursor:pointer; }
.sd-dot.active { background:var(--wp--preset--color--primary,#004D3C); width:24px; border-radius:9999px; }

/* ============================================================
   Concierge (Section 4)
   ============================================================ */
.sd-concierge-shell {
    background:linear-gradient(135deg,#F8FAF9 0%,#ECF2EF 100%);
    border:1px solid var(--wp--preset--color--border,#E5E7EB);
    border-radius:16px; padding:2.5rem 2rem;
}
.sd-concierge-grid { display:grid; grid-template-columns:280px 1fr 280px; gap:2rem; align-items:start; }
.sd-concierge-photo {
    width:100%; aspect-ratio:3/4;
    background:linear-gradient(135deg,#E3EDE9 0%,#C9DDD5 100%);
    border-radius:14px;
    display:flex; align-items:center; justify-content:center;
    color:var(--wp--preset--color--text-muted,#6B7280);
    font-size:0.85rem; text-align:center; padding:1rem;
}
.sd-concierge-photo i { display:block; font-size:3rem; color:var(--wp--preset--color--primary,#004D3C); margin-bottom:0.6rem; }

.sd-concierge-features { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin:2rem 0; text-align:center; }
.sd-concierge-feature { display:flex; flex-direction:column; align-items:center; gap:0.6rem; }
.sd-concierge-feature .sd-feat-icon {
    width:64px; height:64px; border-radius:12px;
    background:var(--wp--preset--color--accent,#00875A); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:1.6rem;
}
.sd-concierge-feature .sd-feat-title { font-weight:700; font-size:0.85rem; color:var(--wp--preset--color--accent,#00875A); margin:0.2rem 0; }
.sd-concierge-feature .sd-feat-desc { font-size:0.78rem; line-height:1.5; color:var(--wp--preset--color--text,#111111); margin:0; }

.sd-concierge-cta { text-align:center; margin-top:1.5rem; }
.sd-concierge-cta-btn {
    display:inline-flex; align-items:center; gap:0.6rem;
    background:var(--wp--preset--color--primary,#004D3C); color:#fff;
    padding:1rem 2.5rem; border-radius:9999px;
    font-weight:700; font-size:1rem; text-decoration:none;
    box-shadow:0 6px 20px rgba(0,77,60,0.2);
    transition:all .2s ease;
}
.sd-concierge-cta-btn:hover { background:var(--wp--preset--color--primary-dark,#00352A); transform:translateY(-1px); }

.sd-kpi-rail { display:flex; flex-direction:column; gap:1rem; }
.sd-kpi-card {
    background:#ffffff; border:1px solid var(--wp--preset--color--border,#E5E7EB);
    border-radius:12px; padding:1.25rem 1rem; text-align:center;
}
.sd-kpi-label { font-size:0.8rem; font-weight:700; margin:0 0 0.4rem; color:var(--wp--preset--color--text,#111111); }
.sd-kpi-value {
    font-size:2.2rem; font-weight:700; color:var(--wp--preset--color--accent,#00875A);
    line-height:1; margin:0.2rem 0;
}
.sd-kpi-unit { font-size:0.95rem; margin-left:0.2rem; }
.sd-kpi-note { text-align:right; font-size:0.7rem; color:var(--wp--preset--color--text-muted,#6B7280); margin:0.6rem 0 0; }

/* ============================================================
   Steps (Section 5)
   ============================================================ */
.sd-steps-rail { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; align-items:start; position:relative; }
.sd-step { text-align:center; padding:1rem 0.5rem; position:relative; z-index:1; }
.sd-step-icon-circle {
    width:72px; height:72px; border-radius:50%; margin:0 auto 0.6rem;
    background:#ffffff; border:2px solid var(--wp--preset--color--accent,#00875A);
    color:var(--wp--preset--color--accent,#00875A);
    display:flex; align-items:center; justify-content:center; font-size:1.8rem;
    position:relative;
}
.sd-step-icon-circle::after {
    content:""; position:absolute; top:-2px; left:-2px;
    width:24px; height:24px; border-radius:50%;
    background:var(--wp--preset--color--accent,#00875A); color:#fff;
    font-size:0.72rem; font-weight:700;
    display:flex; align-items:center; justify-content:center;
}
.sd-step[data-step="1"] .sd-step-icon-circle::after { content:"1"; }
.sd-step[data-step="2"] .sd-step-icon-circle::after { content:"2"; }
.sd-step[data-step="3"] .sd-step-icon-circle::after { content:"3"; }
.sd-step[data-step="4"] .sd-step-icon-circle::after { content:"4"; }
.sd-step[data-step="5"] .sd-step-icon-circle::after { content:"5"; }

.sd-step-label {
    font-size:0.7rem; font-weight:700; letter-spacing:0.08em;
    color:var(--wp--preset--color--accent,#00875A);
    text-transform:uppercase; margin:0.4rem 0 0.2rem;
}
.sd-step-title { font-size:0.95rem; font-weight:700; margin:0 0 0.4rem; color:var(--wp--preset--color--primary,#004D3C); }
.sd-step-desc { font-size:0.78rem; line-height:1.5; color:var(--wp--preset--color--text-muted,#6B7280); margin:0; }

.sd-step::after {
    content:"\f054"; font-family:"Font Awesome 6 Free"; font-weight:900; font-size:0.85rem;
    position:absolute; right:-0.7rem; top:60%; transform:translateY(-50%);
    color:var(--wp--preset--color--accent,#00875A); z-index:0;
}
.sd-step:last-child::after { content:none; }

/* ============================================================
   Final CTA Banner
   ============================================================ */
.sd-final-cta {
    background:var(--wp--preset--color--primary,#004D3C); color:#ffffff;
    border-radius:14px; padding:2rem 2.5rem;
    display:grid; grid-template-columns:80px 1fr auto; gap:1.5rem;
    align-items:center;
}
.sd-final-cta-photo {
    width:80px; height:80px; border-radius:10px;
    background:rgba(255,255,255,0.12);
    display:flex; align-items:center; justify-content:center;
    color:rgba(255,255,255,0.7); font-size:1.8rem;
}
.sd-final-cta-title { font-size:1.25rem; font-weight:700; margin:0 0 0.4rem; line-height:1.4; }
.sd-final-cta-desc { font-size:0.95rem; margin:0; opacity:0.92; line-height:1.5; }
.sd-final-cta-btn {
    display:inline-flex; align-items:center; gap:0.6rem;
    background:#F5A623; color:#ffffff;
    padding:1rem 2rem; border-radius:9999px;
    font-weight:700; font-size:1rem; text-decoration:none;
    white-space:nowrap;
    box-shadow:0 4px 14px rgba(0,0,0,0.2);
    transition:all .2s ease;
}
.sd-final-cta-btn:hover { background:#E8951B; transform:translateY(-1px); }

/* ============================================================
   Contact Form
   ============================================================ */
.sd-contact-section { max-width:100%; }

.sd-contact-form-wrapper { margin-top:1rem; }

.sd-alert {
    display:flex; align-items:flex-start; gap:0.8rem;
    padding:1.25rem 1.5rem; border-radius:12px;
    margin-bottom:1.5rem;
}
.sd-alert i { font-size:1.5rem; flex-shrink:0; margin-top:0.15rem; }
.sd-alert strong { display:block; font-weight:700; font-size:1rem; margin-bottom:0.25rem; }
.sd-alert p { margin:0; font-size:0.9rem; line-height:1.6; }
.sd-alert-success {
    background:#E0F5EE; border:1px solid #009688; color:#004D3C;
}
.sd-alert-success i { color:#009688; }
.sd-alert-error {
    background:#FDEAEA; border:1px solid #E53935; color:#B71C1C;
}
.sd-alert-error i { color:#E53935; }

.sd-contact-form { display:flex; flex-direction:column; gap:1.25rem; }

.sd-form-row-2 {
    display:grid; grid-template-columns:1fr 1fr; gap:1rem;
}

.sd-form-field { display:flex; flex-direction:column; gap:0.4rem; }
.sd-form-field label {
    font-size:0.88rem; font-weight:700;
    color:var(--wp--preset--color--text, #111111);
    display:flex; align-items:center; gap:0.5rem;
}
.sd-required {
    display:inline-block; font-size:0.7rem; font-weight:700;
    background:#E53935; color:#ffffff;
    padding:0.15rem 0.5rem; border-radius:4px;
}
.sd-optional {
    display:inline-block; font-size:0.7rem; font-weight:600;
    background:#F5F7F6; color:var(--wp--preset--color--text-muted, #6B7280);
    padding:0.15rem 0.5rem; border-radius:4px;
}
.sd-form-field input[type="text"],
.sd-form-field input[type="email"],
.sd-form-field input[type="tel"],
.sd-form-field input[type="url"],
.sd-form-field select,
.sd-form-field textarea {
    width:100%; box-sizing:border-box;
    padding:0.75rem 1rem;
    font-size:0.95rem;
    font-family:inherit;
    border:1px solid var(--wp--preset--color--border, #E5E7EB);
    border-radius:8px;
    background:#ffffff;
    color:var(--wp--preset--color--text, #111111);
    transition:border-color .15s ease, box-shadow .15s ease;
}
.sd-form-field input:focus,
.sd-form-field select:focus,
.sd-form-field textarea:focus {
    outline:none;
    border-color:var(--wp--preset--color--primary, #004D3C);
    box-shadow:0 0 0 3px rgba(0,77,60,0.1);
}
.sd-form-field textarea { resize:vertical; min-height:140px; }

.sd-checkbox-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr));
    gap:0.6rem;
}
.sd-checkbox-item {
    display:flex !important; align-items:center; gap:0.5rem;
    padding:0.6rem 0.9rem;
    background:#F5F7F6; border:1px solid var(--wp--preset--color--border, #E5E7EB);
    border-radius:8px; cursor:pointer;
    font-size:0.88rem; font-weight:500;
    transition:all .15s ease;
}
.sd-checkbox-item:hover {
    background:#EBF0EE; border-color:var(--wp--preset--color--primary, #004D3C);
}
.sd-checkbox-item input[type="checkbox"] {
    width:16px; height:16px; margin:0;
    accent-color:var(--wp--preset--color--primary, #004D3C);
    cursor:pointer; flex-shrink:0;
}
.sd-checkbox-item input[type="checkbox"]:checked + span {
    color:var(--wp--preset--color--primary, #004D3C); font-weight:700;
}

.sd-form-agree {
    background:#F5F7F6; padding:1rem 1.25rem; border-radius:8px;
}
.sd-form-agree .sd-checkbox-item {
    background:transparent; border:none; padding:0;
}
.sd-form-agree a { color:var(--wp--preset--color--primary, #004D3C); font-weight:600; }

.sd-error {
    color:#E53935; font-size:0.8rem; font-weight:600;
    margin-top:0.25rem;
}

.sd-form-submit {
    text-align:center; margin-top:1rem;
    padding-top:1.5rem;
    border-top:1px solid var(--wp--preset--color--border, #E5E7EB);
}
.sd-form-submit .sd-btn-large {
    padding:1.1rem 3rem; font-size:1.05rem;
    box-shadow:0 6px 20px rgba(0,77,60,0.2);
}
.sd-form-note {
    font-size:0.82rem; color:var(--wp--preset--color--text-muted, #6B7280);
    margin:0.8rem 0 0;
}

/* ============================================================
   Company info table (会社概要ページ)
   ============================================================ */
.sd-company-table {
    width:100%; border-collapse:collapse;
    margin:1.5rem 0;
}
.sd-company-table tr {
    border-bottom:1px solid var(--wp--preset--color--border, #E5E7EB);
}
.sd-company-table th {
    text-align:left; padding:1rem 1rem 1rem 0;
    font-weight:700; font-size:0.9rem;
    color:var(--wp--preset--color--primary, #004D3C);
    width:160px; vertical-align:top;
}
.sd-company-table td {
    padding:1rem 0;
    font-size:0.95rem;
    color:var(--wp--preset--color--text, #111111);
    vertical-align:top;
}

/* ============================================================
   Footer
   ============================================================ */
.site-footer {
    background: var(--wp--preset--color--primary-dark, #00352A);
    color:#ffffff;
    padding:3.5rem 2rem 1.5rem;
}
.site-footer a { color:#ffffff; opacity:0.88; text-decoration:none; }
.site-footer a:hover { opacity:1; text-decoration:underline; }

.footer-inner {
    max-width:1180px; margin:0 auto;
    display:grid; grid-template-columns:1.3fr 2fr;
    gap:3rem; align-items:start;
}
.footer-brand .brand-title { color:#ffffff; font-size:1.4rem; }
.footer-brand-desc { font-size:0.92rem; line-height:1.7; opacity:0.85; margin:0.8rem 0 1.2rem; }
.footer-social { display:flex; gap:0.6rem; margin-top:1rem; }
.footer-social a {
    width:38px; height:38px; border-radius:50%;
    background:rgba(255,255,255,0.1);
    display:flex; align-items:center; justify-content:center;
    transition:background .15s ease;
}
.footer-social a:hover { background:rgba(255,255,255,0.2); text-decoration:none; opacity:1; }
.footer-social i { font-size:0.95rem; }

.footer-nav-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.footer-nav-col h4 {
    font-size:0.78rem; font-weight:700; letter-spacing:0.08em;
    text-transform:uppercase; margin:0 0 1rem;
    opacity:0.7; color:#ffffff;
}
.footer-nav-col ul {
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column; gap:0.6rem;
    font-size:0.88rem;
}

.footer-meta {
    max-width:1180px; margin:2.5rem auto 0;
    padding-top:1.5rem;
    border-top:1px solid rgba(255,255,255,0.12);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
    font-size:0.78rem; opacity:0.75;
}
.footer-meta-links { display:flex; gap:1.2rem; flex-wrap:wrap; }

/* ============================================================
   Section padding
   ============================================================ */
.sd-section { padding:4rem 0; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1180px) {
    .sd-logo-strip { grid-template-columns:repeat(4, 1fr); }
}

@media (max-width:960px) {
    .sd-primary-nav { display:none; }
    .sd-header-actions .sd-btn-outline { display:none; }
    .sd-menu-toggle-btn { display:flex; }

    .sd-concierge-grid { grid-template-columns:1fr; }
    .sd-concierge-features { grid-template-columns:repeat(2,1fr); }
    .sd-kpi-rail { flex-direction:row; flex-wrap:wrap; }
    .sd-kpi-card { flex:1 1 calc(33% - 0.7rem); min-width:160px; }
    .sd-steps-rail { grid-template-columns:repeat(2,1fr); }
    .sd-step::after { content:none; }
    .sd-final-cta { grid-template-columns:1fr; text-align:center; }
    .sd-final-cta-photo { margin:0 auto; }
    .footer-inner { grid-template-columns:1fr; gap:2rem; }
    .footer-nav-grid { grid-template-columns:repeat(2,1fr); gap:1.5rem; }
}

@media (max-width:768px) {
    .sd-icon-circle { width:80px; height:80px; }
    .sd-icon-circle i { font-size:2rem; }
    .sd-impact-number .num { font-size:2.1rem; }
    .sd-impact-number .unit { font-size:1rem; }
    .sd-logo-strip { grid-template-columns:repeat(2, 1fr); gap:1rem; }
    .sd-form-row-2 { grid-template-columns:1fr; }
}

@media (max-width:560px) {
    .sd-header-actions .sd-btn-primary { display:none; }
    .sd-tab-bar { gap:0.3rem; }
    .sd-tab { padding:0.5rem 0.9rem; font-size:0.85rem; }
    .sd-service-rail { grid-template-columns:1fr; }
    .sd-ill-illustration { max-width:200px; }
    .sd-concierge-features { grid-template-columns:1fr; }
    .sd-steps-rail { grid-template-columns:1fr; }
    .sd-checkbox-grid { grid-template-columns:repeat(2, 1fr); }
    .sd-company-table th { width:auto; display:block; padding-bottom:0.3rem; }
    .sd-company-table td { display:block; padding-top:0; padding-bottom:1rem; }
}
