 /* ==========================================================================
   Premium Footer Styling (Plugin Override)
   ========================================================================== */
 .premium-footer {
     background: #070707 !important;
     color: var(--ep-white) !important;
     padding: var(--ep-space-16) 0 var(--ep-space-8) !important;
     font-family: var(--ep-font-sans);
     width: 100%;
 }

 .premium-footer .footer-inner {
     width: min(1180px, calc(100% - 32px));
     margin: 0 auto;
 }

 .premium-footer .footer-brand {
     text-align: center;
     margin: 0 auto var(--ep-space-12);
     max-width: 820px;
 }

 .premium-footer .footer-kicker {
     color: var(--ep-gold) !important;
     font-size: var(--ep-text-sm) !important;
     font-weight: 700;
     letter-spacing: 0.16em;
     margin: 0 0 var(--ep-space-3) !important;
     opacity: 1 !important;
 }

 .premium-footer .footer-brand h2 {
     font-family: var(--ep-font-serif) !important;
     color: var(--ep-gold) !important;
     font-size: var(--ep-text-3xl) !important;
     margin: 0 0 var(--ep-space-3) !important;
     background: none !important;
     padding: 0 !important;
     border: none !important;
     letter-spacing: 0 !important;
     box-shadow: none !important;
     overflow: visible !important;
     position: relative;
     width: auto !important;
     max-width: none !important;
     text-align: center !important;
 }
 .premium-footer .footer-brand h2::before,
 .premium-footer .footer-brand h2::after {
     content: none !important;
     display: none !important;
 }
 .premium-footer .footer-brand h2 .epsc-h2-text-frame {
     display: inline !important;
     padding: 0 !important;
     border: none !important;
     background: transparent !important;
     box-shadow: none !important;
     color: inherit !important;
 }

 .premium-footer .footer-brand p {
     color: var(--ep-white) !important;
     font-size: var(--ep-text-lg);
     opacity: 0.8;
     margin: 0;
     line-height: 1.8;
 }

 .premium-footer .footer-cta-row {
     display: flex;
     flex-wrap: wrap;
     justify-content: center;
     gap: var(--ep-space-3);
     margin-top: var(--ep-space-6);
 }

 /* Buttons follow DESIGN_RULES §17.4: 角丸4px / ink地×gold文字×1px gold枠。ゴールドのベタ塗り禁止。 */
 .premium-footer .footer-cta {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     min-height: 44px;
     padding: 0 var(--ep-space-6);
     border: 1px solid rgba(188, 149, 92, 0.55);
     border-radius: var(--ep-radius);
     background: transparent;
     color: var(--ep-gold) !important;
     text-decoration: none !important;
     font-size: var(--ep-text-sm);
     font-weight: 700;
     letter-spacing: 0.04em;
     transition: background var(--ep-transition-fast), border-color var(--ep-transition-fast), color var(--ep-transition-fast);
 }

 .premium-footer .footer-cta:hover {
     background: rgba(188, 149, 92, 0.12);
     border-color: var(--ep-gold);
 }

 .premium-footer .footer-cta-primary {
     background: var(--ep-ink);
     color: var(--ep-gold) !important;
     border-color: var(--ep-gold);
 }

 .premium-footer .footer-cta-primary:hover {
     background: var(--ep-ink);
     color: var(--ep-gold-light) !important;
     border-color: var(--ep-gold-light);
 }

 .premium-footer .footer-grid {
     margin: 0 auto var(--ep-space-10);
     display: grid;
     grid-template-columns: repeat(4, minmax(0, 1fr));
     gap: var(--ep-space-8) var(--ep-space-8);
     border-top: 1px solid rgba(255, 255, 255, 0.1);
     padding: var(--ep-space-10) 0 0;
 }

 .premium-footer .footer-column h3 {
     color: var(--ep-gold) !important;
     font-size: var(--ep-text-base) !important;
     margin: 0 0 var(--ep-space-5) !important;
     background: none !important;
     padding: 0 0 var(--ep-space-2) !important;
     border: none !important;
     border-bottom: 1px solid rgba(188, 149, 92, 0.3) !important;
     border-left: none !important;
     letter-spacing: 0.05em !important;
     box-shadow: none !important;
 }

 .premium-footer .footer-column ul {
     list-style: none;
     padding: 0;
     margin: 0;
 }

 .premium-footer .footer-column li {
     margin-bottom: var(--ep-space-2);
     padding: 0;
 }

 .premium-footer .footer-column a {
     color: #d6d6d6 !important;
     text-decoration: none !important;
     font-size: var(--ep-text-sm);
     line-height: 1.7;
     transition: color var(--ep-transition-fast);
 }

 .premium-footer .footer-column a:hover {
     color: var(--ep-gold) !important;
 }

 .premium-footer .footer-company {
     display: grid;
     grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.2fr);
     gap: var(--ep-space-8);
     margin: 0 auto var(--ep-space-8);
     padding: var(--ep-space-7) 0;
     border-top: 1px solid rgba(255, 255, 255, 0.1);
     border-bottom: 1px solid rgba(255, 255, 255, 0.1);
 }

 .premium-footer .footer-company p {
     margin: var(--ep-space-2) 0 0;
     font-size: var(--ep-text-sm);
     line-height: 1.7;
     color: #cfcfcf !important;
 }

 .premium-footer .footer-company strong {
     display: block;
     font-size: var(--ep-text-lg);
     color: var(--ep-gold);
 }

 .premium-footer .footer-company dl {
     display: grid;
     grid-template-columns: repeat(2, minmax(0, 1fr));
     gap: var(--ep-space-3) var(--ep-space-6);
     margin: 0;
 }

 .premium-footer .footer-company dl div {
     min-width: 0;
 }

 .premium-footer .footer-company dt {
     color: #8e8e8e;
     font-size: var(--ep-text-xs);
     margin: 0 0 2px;
 }

 .premium-footer .footer-company dd {
     color: #e8e8e8;
     font-size: var(--ep-text-sm);
     line-height: 1.55;
     margin: 0;
 }

 .premium-footer .footer-company dd a {
     color: #e8e8e8 !important;
     text-decoration: none !important;
 }

 .premium-footer .footer-address {
     font-style: normal;
 }

 .premium-footer .footer-cta-tel {
     flex-direction: column;
     gap: 2px;
     line-height: 1.2;
 }

 .premium-footer .footer-cta-tel-num {
     font-size: var(--ep-text-xs);
     font-weight: 700;
     letter-spacing: 0.02em;
     color: inherit;
 }

 .premium-footer .footer-language,
 .premium-footer .footer-legal,
 .premium-footer .footer-copy {
     text-align: center;
     margin-bottom: var(--ep-space-4);
     font-size: var(--ep-text-sm);
 }

 .premium-footer .footer-language a,
 .premium-footer .footer-legal a {
     color: #888 !important;
     margin: 0 var(--ep-space-3);
     text-decoration: none !important;
 }

 .premium-footer .footer-language a:hover,
 .premium-footer .footer-legal a:hover {
     color: var(--ep-gold) !important;
 }

 .premium-footer .footer-copy p {
     color: #555 !important;
     margin-top: var(--ep-space-5);
 }

 @media (max-width: 1024px) {
     .premium-footer .footer-grid {
         grid-template-columns: repeat(2, minmax(0, 1fr));
         gap: var(--ep-space-8);
     }
 }

 @media (max-width: 768px) {
     .premium-footer .footer-grid {
         grid-template-columns: 1fr;
         gap: var(--ep-space-8);
     }

     .premium-footer .footer-company,
     .premium-footer .footer-company dl {
         grid-template-columns: 1fr;
     }

     .premium-footer .footer-brand h2 {
         font-size: var(--ep-text-2xl) !important;
     }

     .premium-footer .footer-brand p {
         font-size: var(--ep-text-base);
     }

     .premium-footer .footer-cta {
         width: 100%;
     }
 }
