/* DOG EYE public navigation and link usability / Ver21.01 */
main a:not([class]), main a[class=""], main .route-link, main .event-description-link, footer .footer-legal a {
 display:inline-flex;align-items:center;justify-content:center;gap:.35em;
 min-height:44px;max-width:100%;padding:8px 13px;margin:3px 0;
 border:1px solid #96aa9e;border-radius:9px;background:#f5f5ef;
 color:#36584b;font-weight:700;line-height:1.5;text-decoration:none;
 text-underline-offset:.18em;text-decoration-thickness:1px;overflow-wrap:anywhere;
 box-sizing:border-box;vertical-align:middle;
}
main a:not([class]):hover,main a[class=""]:hover,main .route-link:hover,main .event-description-link:hover,footer .footer-legal a:hover {background:#e7eee6;border-color:#36584b;}
a:focus-visible,summary:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {outline:3px solid #36584b;outline-offset:4px;}
main .button {background:#36584b;color:#fff;min-height:44px;box-sizing:border-box;text-decoration:none;line-height:1.5;overflow-wrap:anywhere;}
main .button:hover {background:#294438;}
main .button:focus-visible {outline-color:#36584b;}
main summary {cursor:pointer;min-height:44px;box-sizing:border-box;}
main [id] {scroll-margin-top:110px;}
.home-hub .hero {min-height:470px;}
.home-hub .hero-copy {padding:52px 28px;}
.home-hub .hero h1 {font-size:clamp(2.35rem,4.7vw,4rem);}
.home-hub .hero-copy>span {background:#36584b;}
.home-hub .section {padding-top:54px;padding-bottom:54px;}
.hub-actions {display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.hub-actions .button {margin-top:12px;border:1px solid transparent;}
.hub-actions .hub-secondary {background:#f5f5ef;color:#36584b;border-color:#96aa9e;}
.hub-actions .hub-secondary:hover {background:#e7eee6;}
.hub-intro {display:grid;grid-template-columns:minmax(0,1fr) 192px;gap:28px;align-items:center;}
.hub-decor {display:block;width:192px;height:128px;object-fit:contain;}
.home-hub .hub-menu {padding-top:24px;}
.hub-menu .hub-menu-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.hub-menu .feature {display:block;text-align:left;padding:22px;border:1px solid #d4ddd3;background:#fffefa;border-radius:14px;box-shadow:none;}
.hub-menu .feature:hover {border-color:#36584b;background:#eef2eb;}
.hub-menu .feature i {display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;font-size:1.2rem;font-style:normal;color:#36584b;background:#e7eee6;margin:0 0 10px;}
.hub-menu .feature h3 {margin:8px 0;font-size:1.35rem;color:#2e4036;}
.hub-menu .feature small {display:block;color:#566357;font-weight:700;}
.hub-menu .feature p {font-size:.95rem;color:#4b534a;margin:10px 0 16px;}
.hub-menu .feature span,.hub-service-card span {display:inline-block;padding:8px 12px;min-height:40px;border:1px solid #96aa9e;border-radius:8px;background:#f5f5ef;color:#36584b;font-weight:700;line-height:1.5;text-decoration:none;text-underline-offset:.18em;}
.hub-taste-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.hub-taste-grid article {padding:20px 0;border-top:2px solid #96aa9e;min-width:0;}
.hub-taste-grid h3 {font-size:1.2rem;line-height:1.5;margin:0 0 12px;}
.hub-service-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.hub-service-card {display:block;background:#fffefa;border:1px solid #d4ddd3;border-radius:14px;padding:24px;color:#2e4036;}
.hub-service-card:hover {background:#eef2eb;border-color:#36584b;}
.hub-service-card small {color:#36584b;font-weight:700;letter-spacing:.08em;}
.hub-service-card h3 {font-size:1.35rem;margin:8px 0;}
.hub-contact {display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap;padding:20px;margin-top:20px;background:#f0f3eb;border:1px solid #d4ddd3;border-radius:12px;}
.hub-contact p {margin:0;}.hub-contact .button {margin:0;}
.hub-access {display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:30px;align-items:start;}
.hub-access .home-visit-guide {min-width:0;}
.hub-service-card,.hub-menu .feature {overflow-wrap:anywhere;}
@media(max-width:850px){.hub-menu .hub-menu-cards{grid-template-columns:repeat(2,minmax(0,1fr));}.hub-taste-grid{grid-template-columns:1fr;gap:10px;}.hub-access{grid-template-columns:1fr;}}
@media(max-width:560px){.home-hub .hero{min-height:460px;}.home-hub .hero-copy{padding:40px 20px;}.home-hub .section{padding:34px 20px;}.hub-intro{grid-template-columns:minmax(0,1fr);gap:10px;}.hub-decor{width:144px;height:96px;justify-self:end;}.hub-menu .hub-menu-cards,.hub-service-grid{grid-template-columns:1fr;}.hub-actions{display:block;}.hub-actions .button{display:flex;max-width:100%;width:100%;}.hub-contact .button{width:100%;text-align:center;}.hub-service-card,.hub-menu .feature{padding:20px;}}

/* 統一した案内ボタン。既存カードの下線・擬似矢印も解除 */
main .feature,main .hub-service-card,main .grooming-post-card,main .event-description-link {text-decoration:none;}
main .button::after,main .route-link::after,.hub-menu .feature span::after,.hub-service-card span::after {content:none;}
.home-hub .orange {color:#36584b;}
.home-hub .home-visit-guide {background:#f0f3eb;border-color:#d4ddd3;}

/* Ver21.01：背景変更時に旧テンプレートの白文字を継承しない */
.home-hub .home-visit-guide,
.home-hub .home-visit-guide h3,
.home-hub .home-visit-guide p,
.home-hub .home-visit-guide li,
.home-hub .home-visit-guide li b {color:#2e4036;}
.home-hub .home-visit-guide li span {color:#4b534a;}
.home-hub .home-visit-guide li {border-bottom-color:#d4ddd3;}

/* Ver21.01：トップのカード名を通常の文字に統一 */
.home-hub .hub-card-title {display:block;font-size:1.35rem;font-weight:700;line-height:1.5;margin:8px 0;color:#2e4036;}
.home-hub .home-visit-guide .hub-card-title {color:#2e4036;}
.home-hub .hub-intro {margin-top:32px;}
.home-hub .feature i {display:none;}
.cafe-quality-page .section {max-width:1000px;margin:auto;}
.cafe-quality-page h2 {margin-top:40px;}
.cafe-quality-page p {line-height:1.9;}

/* Ver23.18: keep text separate from photographs */
.home-hub .hub-menu .feature{--menu-art:url('../images/home-menu-photo/morning.webp');--menu-size:cover;--menu-position:center center;}
.home-hub .hub-menu .feature:is([href$='/morning'],[href$='/morning/']){--menu-art:url('../images/home-menu-photo/morning.webp')}
.home-hub .hub-menu .feature:is([href$='/lunch'],[href$='/lunch/']){--menu-art:url('../images/home-menu-photo/lunch.webp')}
.home-hub .hub-menu .feature:is([href$='/grand-menu'],[href$='/grand-menu/']){--menu-art:url('../images/home-menu-photo/grand-menu.webp')}
.home-hub .hub-menu .feature:is([href$='/drink'],[href$='/drink/']){--menu-art:url('../images/home-menu-photo/strawberry-milk.webp');--menu-size:cover;--menu-position:center center;}
.home-hub .hub-menu .feature:not(:is([href$='/morning'],[href$='/morning/'],[href$='/lunch'],[href$='/lunch/'],[href$='/grand-menu'],[href$='/grand-menu/'],[href$='/drink'],[href$='/drink/'],[href$='/dessert'],[href$='/dessert/'])){--menu-size:170% auto;--menu-position:right 68%;}
.home-hub .hub-menu .feature:is([href$='/dessert'],[href$='/dessert/']){--menu-art:url('../images/home-menu-photo/dessert.webp')}
.home-hub .hub-menu .feature,.home-hub .hub-menu .feature:hover{
 box-sizing:border-box;position:relative;isolation:isolate;min-height:370px;height:auto;padding:22px 22px 218px;overflow:hidden;
 background:#fffefa;
}
.home-hub .hub-menu .feature::before{
 content:'';position:absolute;z-index:0;pointer-events:none;left:0;right:0;bottom:0;height:210px;
 background-color:#edcfac;
 background-image:linear-gradient(180deg,#fffefa 0%,rgba(255,254,250,.4) 9%,rgba(255,254,250,0) 20%),var(--menu-art);
 background-position:center,var(--menu-position);background-repeat:no-repeat;background-size:100% 100%,var(--menu-size);
}
.home-hub .hub-menu .feature>small,.home-hub .hub-menu .feature>p{position:relative;z-index:1;color:#263b32}
.home-hub .hub-menu .feature p{margin-top:10px;margin-bottom:12px}
.home-hub .hub-menu .feature:hover{border-color:#36584b;box-shadow:0 3px 12px rgba(54,88,75,.12)}
.home-hub .hub-menu .feature:focus-visible{outline:3px solid #36584b;outline-offset:3px}
.home-hub .hub-menu .feature span{position:absolute;z-index:1;left:20px;bottom:20px;max-width:calc(100% - 40px);background:#fffefa;color:#36584b}
@media(max-width:560px){.home-hub .hub-menu .feature,.home-hub .hub-menu .feature:hover{min-height:370px;padding:20px 20px 218px}}

/* Ver23.21: separate service text and dog portraits */
.home-hub #home-services .hub-service-card{--service-art:url('../images/home-services/trimming-photo.webp')}
.home-hub #home-services .hub-service-card[href*='#pet-hotel-prices']{--service-art:url('../images/home-services/hotel-photo.webp')}
.home-hub #home-services .hub-service-card,.home-hub #home-services .hub-service-card:hover{
 position:relative;isolation:isolate;overflow:hidden;background:#fffefa;min-height:220px;box-sizing:border-box;
}
.home-hub #home-services .hub-service-card::before{
 content:'';position:absolute;z-index:0;pointer-events:none;right:0;top:0;bottom:0;width:39%;
 background-color:#fffaf2;background-image:linear-gradient(90deg,#fffefa,rgba(255,254,250,0) 24%),var(--service-art);
 background-position:center,right center;background-repeat:no-repeat;background-size:100% 100%,auto 100%;
}
.home-hub #home-services .hub-service-card>p{position:relative;z-index:1;max-width:58%;}
.home-hub #home-services .hub-service-card>span{position:relative;z-index:1;box-sizing:border-box;max-width:58%;background:#fffefa;color:#36584b;}
.home-hub #home-services .hub-service-card:hover{border-color:#36584b;box-shadow:0 3px 12px rgba(54,88,75,.1)}
.home-hub #home-services .hub-service-card:focus-visible{outline:3px solid #36584b;outline-offset:3px}
@media(max-width:560px){
 .home-hub #home-services .hub-service-card,.home-hub #home-services .hub-service-card:hover{padding-bottom:210px;}
 .home-hub #home-services .hub-service-card::before{top:auto;height:190px;width:100%;background-image:linear-gradient(180deg,#fffefa,rgba(255,254,250,0) 20%),var(--service-art);background-size:100% 100%,cover;background-position:center,right center;}
 .home-hub #home-services .hub-service-card>p,.home-hub #home-services .hub-service-card>span{max-width:100%;}
}
